True-RMS Digital Multimeter Uni-T UT61E

Based on the Cyrustek ES51922 chip (see useful info and datasheet).

How my USB-Adapter shows up on Linux

With OpenSuse 13.1 dmesg reveals:

[673.821024] usb 6-1: new full-speed USB device number 2 using uhci_hcd
[674.182048] usb 6-1: New USB device found, idVendor=1a86, idProduct=e008
[674.182054] usb 6-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[674.182058] usb 6-1: Product: USB to Serial
[674.182061] usb 6-1: Manufacturer: WCH.CN 
[674.196449] hid-generic 0003:1A86:E008.0004: hiddev0,hidraw3: USB HID v1.00 Device [WCH.CN  USB to Serial] on usb-0000:00:1d.0-1/input0

On Arch Linux it shows up as:

[  159.503342] usb 1-1: new full-speed USB device number 2 using uhci_hcd
[  159.683987] hid-generic 0003:1A86:E008.0004: hiddev0,hidraw3: USB HID v1.00 Device [WCH.CN  USB to Serial] on usb-0000:00:1d.0-1/input0

This is an IR USB/HID adapter based on the Winchiphead chip WCH CH9325.

From various sites found on the Internet, you can read that older versions of the multimeter came with a USB cable providing directly a virtual serial port. Newer ones such as mine come with a cable announcing itself as a HID device. This means that on Windows they do not need any special drivers (.INF files). The same is true for Linux / Mac. Instead, you now have to talk to the HID USB device directly.
The USB/HID cables seem to come in slightly different flavours. I have the version which advertises that it's self-powered but isn't.

The USB IR Adapter is named UNI-T UT-D04 and uses the Winchiphead WCH CH9325 chip (the WCH CH9326 seems to be its successor). A previous version of this IR adapter (but already the USB/HID variant) were based on the Hoitek HE2325U

My own Python-based software

Please check out pklaus/ut61e_python on Github. It contains my own adaption of the Python tool dmm_es51922.py. I adapted it to my needs (USB/HID cable instead of plain virtual serial cable).

Getting ut61e-linux-sw-0.02 to run on OpenSUSE

I found the C-based software ut61e-linux-sw-0.02.tar.gz which supports reading from the USB/HID device. Here is how you get it running on OpenSuse 13.1:

sudo zypper in libusb-devel libudev-devel
cd ~/Downloads
wget -O ut61e-linux-sw-0.02.tar.gz http://diyftw.de/wiki/lib/exe/fetch.php?media=projekte:ut61e-linux-sw-0.02.tar.gz
tar -xf ut61e-linux-sw-0.02.tar.gz
cd ut61e-linux-sw-0.02
cd he2325u/
cat readme.txt
git clone git://github.com/signal11/hidapi.git
cd hidapi/
less README.txt
./bootstrap
./configure
make
cd ..
vim Makefile # change the line with hid-libusb.o to COBJS=./hidapi/linux/hid.o
make
sudo ./he2325u
cd ../es51922
vim main.cpp # add   #include <unistd.h>   to the list of includes
make
cd ..
sudo he2325u/he2325u | es51922/es51922

I forked the software dmm_ut61e on Github and integrated ut61e-linux-sw-0.02 in a separate branch: pklaus/dmm_ut61e.

Capturing USB Frames

sudo tshark -i usbmon6 -V

while running

sudo he2325u/he2325u

Troubelshooting

If you have a problem getting data from the cable, you may have to suspend the device first:

#!/bin/bash
# see http://www.erste.de/UT61/index.html
for dat in /sys/bus/usb/devices/*; do 
  if test -e $dat/manufacturer && grep -q "WCH.CN" $dat/manufacturer; then
    echo "Suspending ${dat}."
    echo auto > ${dat}/power/control
    echo 0 > ${dat}/power/autosuspend 
  fi      
done

Tips'n'Tricks

If you keep HOLD pressed while switching the meter on, it will keep all LCD segments lit until you release the button.

Resources