Close
0%
0%

Data logger device for DM3058 digital multimeter

Small device to be connected to serial port of DM3058 bench top multimeter for retrieving measurement data

Similar projects worth following
411 views
0 followers
Goal of the project is to create data logger device for Rigol ® DM3058 bench top multimeter. It connects to serial port on DM3058 to retrieve measurement data and if plugged to PC USB it shows up as storage device where data logged can be copied and examined.

Data logging from DM3000 multimeters is somewhat pain. Rigol ® data logging software is not for free. Although other software based solutions are possible they are quite unstable and requires having software running on PC while data is logged. DM3058E as entry level model lacks more advanced connection interfaces and built in data memory is limited as well. It has, however, (voila!) humble 9-pin serial port. Serial port on this device has some unique connections, though. Besides data connection it can also pass trigger and data ready signals and has 5V supply as well. It quickly appeared to me that by utilizing serial port data logging device might be created. Such device would greatly expand the use of multimeter.

Device is based on Texas Instruments ® MSP430F5510 micro controller. It communicates with DM3058 multi meter through serial connection. Queried measurement data is saved in SPI flash. 520 K measurement records can be logged and retrieved from device as text files. Measurement triggering rate can be set from range of tenths of milliseconds to 90 seconds, although at the moment it seems to be a problem to read fast measurement rates at exact timing. Additional SPI EEPROM is used to store disk partition and file allocation table information while connected to PC as USB mass storage device.

Firmware for the device is being developed using Code Composer Studio version 6.2.0. It is now somewhat obsolete, however, full license of compiler is available free of charge (link). Functionality is ready by parts but it is not yet merged in single project. Code does not use any open source libraries at the moment. MSP430 Driver Library and MSP430 USB Developers Package code is licensed under Modified BSD License.

Current objective for the project is to make several working prototypes and see how much interest such device sparks among DM3000 multimeter users. It may also be possible to adapt data logger for “classic” HP/Agilent 34401A multimeter.

  • Rigol tech support (un)response

    Krists09/26/2019 at 04:14 0 comments

    While testing measurement recording I realized it is not really possible to read data at exact short intervals using external triggering mode. Sampling rate for DM3058 ranges from 400 ms in SLOW reading rate to 8 ms in FAST reading rate. But in case of external triggering it does not mean that sampling is done exactly at external trigger pulse. It seems that sampling runs on its own internal clock and on external trigger pulse multimeter just returns value of measurement that it currently is sampling. But it does not correspond to exact time when trigger pulse was sent. It does not really matter for logging lengthy battery discharge curve every few seconds or so. But it seems not possible to accurately log measurements anywhere close to sampling rate of DM3058.

    I realized that for short intervals I could use internal triggering mode of multimeter and read out measurements when they are ready. It is possible to set custom internal trigger period in the range from minimum sampling time up to 2000 ms. But as I found out internal trigger period is not accurate either, not at least on my device. In fact it does not trigger at exact interval that is set using menu or serial command, but at some other time period that most likely depends on internal software or hardware constraints. I tested it with sampling slowly changing sine wave voltage at various intervals and different measurement rate modes. Sine wave period was fixed to 2 seconds. By saving built in measurement history (up to 2000 readings on DM3058) to USB device I examined voltage wave forms using excel graph. There it was easy to see how many measurements were taken over one full sine wave period. I found out that while some trigger interval settings were logged as expected, most of them did use some other interval value that did change with changing measurement rate mode as well.

    I though I would just post this to Rigol tech support helpdesk, as these settings are set according to user manual and description but they don’t seem to work for me. I did not have very high hopes for it but response was unexpectedly helpless – see screenshot below. I wonder if any one from Rigol did actually try to read my message or did Mr. Christian Rau just wrote it of as ‘solved’ without bothering himself. It is so ignorant and somewhat rude, that I found it amusing. They made my day.

  • Supply voltage issues

    Krists09/06/2019 at 07:22 0 comments

    Serial port on DM3058E has additional non standard connection, that is just labeled “+5V OUT”. I was expecting to take 5V for powering schematic from there, although specs sheet does not really say anything about capabilities of this pin. It now seems that it is not real connection to 5V supply rail but more like output from 5V logic high level. It reads 4.8 V and drops rapidly if anything more than 10 mA is taken from this pin.

    It is enough to power MCU and supporting ICs of data logger, but it is not really fit for powering LCD backlight. Truth is, although I did run bread board setup powered from this pin, I did not test it with LCD backlight on.

    So device will have to be supplied with its own 5V power supply adapter. I was hoping to avoid this and keep all connections simple. Other option would be to take 5V from USB port of multi meter. “+5V OUT” signal in this case can be used just as reference that multimeter is connected and switched on.

  • Controls and pcb layout

    Krists08/09/2019 at 12:32 0 comments

    Having schematic seemingly working on breadboard it was time to move on to PCB. This required some decision on layout and controls for the device. Controls would be power on button, recessed firmware upgrade mode button next to USB connector and four controls next to LCD. One for starting and stopping data logging, other for changing trigger period and two more for up down for navigation where necessary. Main PCB would hold all elements and connector for LCD with its own PCB on top. Pig tail cable to serial port of muiltimeter would go on back of main PCB. With controls besides screen this sets form factor for device. Device would stand vertically on bottom edge. It seems that main controls might be operated single handed.

    I opted for standard tact switches with silicone like material caps I sourced from eBay. Enclosure around this layout could be designed and 3D printed. Although it would be great to have front panel overlay it adds to expense and is separate part.

    Read more »

  • LCD display for data logger device

    Krists08/05/2019 at 10:19 0 comments

    Data logger can function without a display, but I realized that having one will make it much more understandable and easier to use. I shopped around for small graphic LCD with white backlight and black text. What I got was Zolen ZLE12864A LCD module from eBay seller in China. Although units with these exact colors were not listed after some discussion I got what I was looking for. Seller was able to look up exact LCD module for me with 3.3V logic level voltage. There is decent datasheet with setup commands and dimensional drawing as well. It has ST7565P controller – although cheap it does not have any font memory built it. Size of PCB will most likely define size of data logger.

    It did take some months to arrive as I did not pay for express shipping. Manufacturing looks very clean and nice. First impression of LCD itself was not so great, though. Regardless of tweaking it has some vertical and horizontal shadows around displayed text and appearance changes a bit depending on viewing angle. But after a while I got used to it. If they look somewhat cheap that’s because they are. I got five for just $6 per item. They will be good enough for initial data logger prototypes. Main bottleneck might be code space and memory needed to operate them.

    Read more »

  • Functional and data logging considerations

    Krists08/05/2019 at 10:05 0 comments

    Initial development on data logger device started sometime by the end of last year. First steps were to test serial commands according to programming manual and see how they can be used. After some tweaking it seemed that correct way would be let data logger to trigger measurement, wait when it’s ready and issue command to read value. All measurements from multimeter are reported as numbers in scientific notation like 1,506540-E10 so that text string is uniform regardless of actual value. To have values meaningful in log files data logger should query active measurement mode as well. Fitting reasonable amount of data in 16-megabit SPI flash requires converting values to binary format. When mounted as USB mass storage logger would decode these records and present them as text files in file system. I had some knowledge on how FAT file system works, but had to do a good refresh. About the X-mass time I was thinking more about FAT entries and partition records that anything else. It was fun time though and I got it working. I was able to built virtual file system on the fly, as there is no real memory available for data in plain text format. It works not very fast, though.

    So it looks that device should have some pig-tail connection to serial port on back of muiltimeter so it can be connected and removed as needed rather fast. I might use RJ45 connector for this. I don’t quite like that locking tab on RJ45 plug is prone to breaking but sockets, connectors and protective boots as well are readily available. I would need just 6 wires for connection. So called British Telecom telephone plug looks like a good choice, but solderable small sized PCB sockets for these are not widely available.

  • Early design decisions

    Krists08/01/2019 at 16:15 0 comments

    From hardware viewpoint device would operate in two modes – first as serial console to DM3058 multimeter and then as USB mass storage device when connected to PC. Early on I decided to use Texas Instruments ® MSP430F55xx micro controller for this task as it has stable USB support in hardware and I had some experience playing around with USB devices on MSP430F5529 LaunchPad board. For data storage I would use SPI flash chip, then I would need RS232 transceiver and some input protection ICs. I wanted to use lowest spec devices still adequate for the task. Parts would be SMD but still suitable for hand soldering, except for switches and alike that would be though hole, at least for first prototype. I ended up choosing MSP430F5510 micro controller for which I could use nicely designed Olimex ® MSP430-T5510 development board and set up rest of schematic on a bread board. For data storage immediate choice was to use somewhat outdated but still available Atmel ® AT45DB161 16-megabit SPI flash IC. I would see where it all will take me. Renesas ® ICL3221 would serve as RS-232 transceiver for connecting to DM3058E serial port. It has single RX/TX pair instead of classic MAX232 dual driver and receiver arrangement. It is also a bit cheaper than other similar ICs and ICL3221E version has somewhat better ESD protection specs on RS232 pins.

    Quite a lot of wiring. MSP430-T5510 development board can be seen in red and RS232 transceiver on breakout board. SPI data flash and EEPROM ics are hanging out on wires.

    To clear any doubts I would not consider device I am working on as a hack of any sort. Serial port specification and data exchange protocol for DM3058E is readily available at Rigol ® website. I am also not affiliated with the company in any way except that I have bought DM3058E multimeter through their product clearance web site.

View all 6 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates