Logging from meters

New update V0.23, this includes some updates based on user input. It also includes a debug function to easier see the device communication.
Use:
#debug device - this will list the items that can be debugged
#debug device item - this will set debug status for a device (It is possible to list multiple devices).
To see the initial connection use a device called *idn

I have written a document describing the format of the device configuration files: https://lygte-info.dk/project/TestControllerConfigDevice%20UK.html there is a link to it from the introduction document.

Thanks for the documentation. I’ll refine my config files a bit and upload them later.

I checked the config files for the Aim TTI PSUs, but one thing wasn’t clear. How would I go about limiting the indicated Voltage/Current range depending on the selected range?

Meaning if I had the 20V/10A range selected, the text next to the voltage input field would say “Volt 0-20” and change to “Volt 0-40” when the upper range was selected. Same for current.

I have not implement anything to handle that, you can fake it with two similar controls and the :visible: tag to change between them, but I do not really like that solution (I did use it on SDG2122X to change between duty cycle, symmetry and nothing).

I have a power supply that can deliver 1200W, 50A and 60V. To do a limit for that I would have to open up for expression as limits. For now I have decided not to do it. My ARB is also rather tricky, there maximum output level depends on frequency and maximum frequency depends on selected waveform.

It is fairly easy to implement, if people start asking after it.

V0.24 is up, changes are:

  • It includes 3 new device definition: Siglent SDM3065X, Agilent 34401A, Hewlett-Packard 34401A, Rigol DP811A
  • Modified startup code to avoid missing device data in the comboBox
  • debug option on command line that will turn all debug options on, this includes a debug bat startup file
  • Command line options to change the directories used, see in bat file for a description

V0.29 is up.
It got a new way to make the interface wait for devices to process their commands: [*OPC], it can be used between SCPI commands and will wait until all commands before it is processed.
The startup debug mode has been improved a bit, it did not log all communication before.
I have been looking a bit on the interface section and added a test form for them, it is on the “Popups” button. The test form can also generate a configuration script for a device.
I have explained the #interfaceType in the documentation.

V0.30 is up.

A added a readout of a value that can be placed anywhere on the screen (See in “Popups”):

In the above I have placed two of them. It is possible to adjust size, colors, transparency and what value to show. Click and drag on them to move, right click to adjust settings.

V0.32 is up.

It has support for Brymen meters with USB interface and the rebrands of these.

My supported* hardware list:
Agilent 34401A, Agilent U1252B, Agilent U1272A, B&K Precision BK8500, B&K Precision BK8502, B&K Precision BK8510, B&K Precision BK8512, B&K Precision BK8514, B&K Precision BK8518, B&K Precision BK8520, B&K Precision BK8522, B&K Precision BK8524, B&K Precision BK8526, Brymen BM521s, Brymen BM525s, Brymen BM821s, Brymen BM822s, Brymen BM827s, Brymen BM829s, Brymen BM867s, Brymen BM869s, Elma BM525s, Elma BM821s, Elma BM829s, Elma BM869s, Fluke 187, Fluke 189, Fluke 287, Fluke 289, Fluke 87, Fluke 8846A, Fluke 89, Greenlee DM-810A, Greenlee DM-820A, Greenlee DM-830A, Greenlee DML-430A, HKJ Discharger, HKJ SS-Relay, HKJ ThermoAndMore, HKJ ThermoSensor, Hewlett-Packard 34401A, Itech IT8511, Itech IT8511A, Itech IT8511B, Itech IT8512, Itech IT8512A, Itech IT8512B, Itech IT8512C, Itech IT8512H, Itech IT8513C, Itech IT8514B, Itech IT8514C, Itech IT8516C, Keithley 2280S-32-6, Keithley DMM6500, Keithley DMM7510, Keysight 34461A, Keysight 34465A, Keysight 34470A, Keysight U1231A, Keysight U1232A, Keysight U1233A, Keysight U1251A, Keysight U1252A, Keysight U1252B, Keysight U1253A, Keysight U1271A, Keysight U1272A, Keysight U1273A, Keysight U1273AX, Keysight U1281A, Keysight U1282A, Keysight U1461A, Mastech MS8040, Mastech MS8218, Rigol DP811A, Siglent SDG2122X, Siglent SDM3045X, Siglent SDM3055, Siglent SDM3065X, TTi CPX400DP, TTi QL355P, TTi QPX1200SP, Tenma 72-7730, Tenma 72-7732, Tenma 72-9380A, UNI-T UT61E, UNI-T UT71A, UNI-T UT71B, UNI-T UT71C, UNI-T UT71D, UNI-T UT71E, Vici VC8145, VirtualRampGenerator, VirtualSinusGenerator, VirtualSquareGenerator, Voltcraft VC-920, Voltcraft VC-940 COM, Voltcraft VC-960

*Not everything is tested.

V0.60 is up

The program has gotten a lot of updates in since the above post, it supports more equipment, it has an export function to modify what is saved in the csv file.
Generally it looks the same, but there is many small changes.

Current support hardware list:
Agilent 34401A, Agilent U1252B, Agilent U1272A, B&K Precision BK8500, B&K Precision BK8502, B&K Precision BK8510, B&K Precision BK8512, B&K Precision BK8514, B&K Precision BK8518, B&K Precision BK8520, B&K Precision BK8522, B&K Precision BK8524, B&K Precision BK8526, Brymen BM521s, Brymen BM525s, Brymen BM821s, Brymen BM822s, Brymen BM827s, Brymen BM829s, Brymen BM867s, Brymen BM869s, Elma BM525s, Elma BM821s, Elma BM829s, Elma BM869s, Fluke 187, Fluke 189, Fluke 287, Fluke 289, Fluke 87, Fluke 8846A, Fluke 89, GWInstek GPP-4323, GWInstek PSM-2010, Greenlee DM-810A, Greenlee DM-820A, Greenlee DM-830A, Greenlee DM-860A, Greenlee DML-430A, HKJ Discharger, HKJ SS-Relay, HKJ ThermoAndMore, HKJ ThermoSensor, Hewlett-Packard 34401A, Itech IT8511, Itech IT8511A, Itech IT8511B, Itech IT8512, Itech IT8512A, Itech IT8512B, Itech IT8512C, Itech IT8512H, Itech IT8513C, Itech IT8514B, Itech IT8514C, Itech IT8516C, Keithley 2000, Keithley 2280S-32-6, Keithley DMM6500, Keithley DMM7510, Keysight 34461A, Keysight 34465A, Keysight 34470A, Keysight U1231A, Keysight U1232A, Keysight U1233A, Keysight U1251A, Keysight U1252A, Keysight U1252B, Keysight U1253A, Keysight U1271A, Keysight U1272A, Keysight U1273A, Keysight U1273AX, Keysight U1281A, Keysight U1282A, Keysight U1461A, Mastech MS8040, Mastech MS8218, Maynuo M9712C, Protek 506, R&S HMC8043, Riden RD6006, Rigol DP811A, Siglent SDG1032X, Siglent SDG1062X, Siglent SDG2042X, Siglent SDG2082X, Siglent SDG2122X, Siglent SDG6022X, Siglent SDG6032X, Siglent SDG6052X, Siglent SDM3045X, Siglent SDM3055, Siglent SDM3065X, TTi CPX400DP, TTi QL355P, TTi QPX1200SP, Tenma 72-7730, Tenma 72-7732, Tenma 72-9380A, UNI-T UT61E, UNI-T UT71A, UNI-T UT71B, UNI-T UT71C, UNI-T UT71D, UNI-T UT71E, Vici VC8145, VirtualRampGenerator, VirtualSinusGenerator, VirtualSquareGenerator, Voltcraft VC-920, Voltcraft VC-940 COM, Voltcraft VC-960

V0.97 is up

I now supports two Lux meters, one from UNI-T (Cheap meter: UT382) and one from Gossen (Expensive meter). This means it is possible to log voltage/current for led together with a lux measurement and make curves with lux/voltage or lux/current directly from TestController.

The support list is now:
Agilent 34401A, Agilent U1252B, Agilent U1272A, Ametek XG 600-1.4, Ametek XG 80-10.5, B&K Precision BK8500, B&K Precision BK8502, B&K Precision BK8510, B&K Precision BK8512, B&K Precision BK8514, B&K Precision BK8518, B&K Precision BK8520, B&K Precision BK8522, B&K Precision BK8524, B&K Precision BK8526, Brymen BM521s, Brymen BM525s, Brymen BM821s, Brymen BM822s, Brymen BM827s, Brymen BM829s, Brymen BM867s, Brymen BM869s, DigiTek DT-9602R, EZA EZ-735, East Tester ET3240, Elma BM525s, Elma BM821s, Elma BM829s, Elma BM869s, FeelElec FY6600-20M, FeelElec FY6600-30M, FeelElec FY6600-50M, FeelElec FY6600-60M, FeelElec FY6800-20M, FeelElec FY6800-30M, FeelElec FY6800-50M, FeelElec FY6800-60M, FeelElec FY6900-20M, FeelElec FY6900-30M, FeelElec FY6900-50M, FeelElec FY6900-60M, Fluke 187, Fluke 189, Fluke 287, Fluke 289, Fluke 87, Fluke 8846A, Fluke 89, GWInstek GPP-4323, GWInstek PSM-2010, Gossen M5032, Greenlee DM-810A, Greenlee DM-820A, Greenlee DM-830A, Greenlee DM-860A, Greenlee DML-430A, HKJ Discharger, HKJ SS-Relay, HKJ ThermoAndMore, HKJ ThermoSensor, Hewlett-Packard 34401A, Itech IT8511, Itech IT8511A, Itech IT8511B, Itech IT8512, Itech IT8512A, Itech IT8512B, Itech IT8512C, Itech IT8512H, Itech IT8513C, Itech IT8514B, Itech IT8514C, Itech IT8516C, Keithley 2000, Keithley 2280S-32-6, Keithley DMM6500, Keithley DMM7510, Keysight 34461A, Keysight 34465A, Keysight 34470A, Keysight U1231A, Keysight U1232A, Keysight U1233A, Keysight U1251A, Keysight U1252A, Keysight U1252B, Keysight U1253A, Keysight U1271A, Keysight U1272A, Keysight U1273A, Keysight U1273AX, Keysight U1281A, Keysight U1282A, Keysight U1461A, Kollmorgen AKD2G Servo, Lux meter, Mastech MS8040, Mastech MS8218, Maynuo M9712C, Owon ODP3033, Owon ODP3063, Owon ODP6033, Peaktech 2025, ProsKit MT-1820, Protek 506, R&S HMC8043, Riden RD6006, Riden RD6012, Rigol DM3058, Rigol DM3058E, Rigol DM3068, Rigol DP811A, Siglent SDG1032X, Siglent SDG1062X, Siglent SDG2042X, Siglent SDG2082X, Siglent SDG2122X, Siglent SDG6022X, Siglent SDG6032X, Siglent SDG6052X, Siglent SDM3045X, Siglent SDM3055, Siglent SDM3065X, Siglent SDS1052A, Siglent SDS1052DL, Siglent SDS1072A, Siglent SDS1072CFL, Siglent SDS1072X-E, Siglent SDS1074CFL, Siglent SDS1074X-E, Siglent SDS1102A, Siglent SDS1102CFL, Siglent SDS1102CML, Siglent SDS1102X, Siglent SDS1102X, Siglent SDS1102X-C, Siglent SDS1102X-E, Siglent SDS1104CFL, Siglent SDS1104X-C, Siglent SDS1104X-E, Siglent SDS1122E, Siglent SDS1152A, Siglent SDS1152CML, Siglent SDS1202CFL, Siglent SDS1202F, Siglent SDS1202X, Siglent SDS1202X, Siglent SDS1202X-C, Siglent SDS1202X-E, Siglent SDS1204CFL, Siglent SDS1204X-C, Siglent SDS1204X-E, Siglent SDS1302CFL, Siglent SDS1304CFL, Siglent SDS2072, Siglent SDS2072X, Siglent SDS2074, Siglent SDS2074X, Siglent SDS2102, Siglent SDS2102X, Siglent SDS2102X-E, Siglent SDS2104, Siglent SDS2104X, Siglent SDS2202, Siglent SDS2202X, Siglent SDS2202X-E, Siglent SDS2204, Siglent SDS2204X, Siglent SDS2302, Siglent SDS2302X, Siglent SDS2304, Siglent SDS2304X, Siglent SDS2352X-E, SparkFun 70C, TTi CPX400DP, TTi QL355P, TTi QPX1200SP, Tenma 72-7730, Tenma 72-7732, Tenma 72-9380A, UNI-T UT382, UNI-T UT60A, UNI-T UT60D, UNI-T UT61B, UNI-T UT61C, UNI-T UT61D, UNI-T UT61E, UNI-T UT71A, UNI-T UT71B, UNI-T UT71C, UNI-T UT71D, UNI-T UT71E, Vici VC8145, Victor 70C, Victor 86C, VirtualRampGenerator, VirtualSinusGenerator, VirtualSquareGenerator, Voltcraft VC-920, Voltcraft VC-940 COM, Voltcraft VC-960, Voltcraft VC850

I have posted an article on how to test batteries with a resistor and a computer connected DMM.

http://lygte-info.dk/project/TestControllerDemoBattWithResistor%20UK.html

It, of course, uses TestController for logging and calculating on the data.

Result can look like this (Use the Save button to get an image in any size without a program around it):

Thanks for all the updates HKJ! That is wonderful stuff.

I wish I had the tools, interest and patience to do that stuff to increase the value of my flashlight reviews even more. But it's not really my thing. I usually explode when things go as I want ;)

Hopefully more people make use of the software you are making. Appreciate all the hard work!

Hello,
Wonderfull program!
I equipped BSIDE ZT-300AB multimeter with the second BT module, so it could
successfully connects with desktop PC.
It sends packets at 9600 which looks like:

It is definitelly 7-segment coding, because bytes 4-8 chaged according each digit on LCD.
I’m very sorry, but trying to adapt this device with BrymenBM250 Test Example, I understand nothing.
At the moment, I only could connect to device and observe Table fillinngs with infinity signs.

My device file looks like:

Maybe, you could assist as possible?
I will provide any possible info.

Thanks in advance,
Vladimir

First simplify the definition:

Then work on getting the numbers to display correctly (Do not worry about the point).

It is a question about move the letters a-f around in the #segments definition. The eight position matches a bit each, the first one bit 7 or 0x80 and the last one bit 0 or 0x01

You say byte 4 to 8 changes, it is 5 position, but a four digit meter will usually use 4 positions or 8 in some cases.

Thanks a lot, HKJ

I guess Byte 4 relates to range setting.
It also changing with AC/DC switching.
Maybe bit fields.

I have Riden RD6006 and could use it’s SW for generating programming
voltage/current sequences.
I’ll try to compare packets with the voltage sequences.

I would expect a lot of bit fields.
The idea is to get the digits working, then add the point (It is very likely the unused bit in the digits).
When that is ok start adding ranges and range multipliers (numkM) and sign
As the last item add a check on the last byte, this prevents sporadic results.

I’m getting very strange result.
Actually Bytes 3-7 carry info.
I could not interpretate relation.

Sorry, I could not format the table properly.

I can see that, usually the change from 0 to 1 is easy to detect because it is 4 bits. 2 has 3 bit different from a 0.
It looks like the segments are mixed all over the bytes

This can also be defined, but requires more work. You still use the segments definitions, but must list each digit:
#segments 1 “…….” 2 “………” 3 “………”

Each string can be 8-16-24-32 characters long and will match that many bytes, the number in front is the index of the first byte. The “#digits 1 4” will number the digits as they are listed in the #segments definition and not by the byte offset.

I have not tried this decoded in praxis, only made (untested) code for it.

Hello again,
after some time I tryed to run the latest SW and got the following:

I suspect it concern with yesterday installed Visual Studio 2019.
Is there a solution?

Java update solved the problem

Try installing a newer Java, 1.2 is very old (About 20 years).
I do not require a new version of Java, it will work with V8 (1.8) that is more than 6 years old.