Victor protocol

From sigrok
Revision as of 09:09, 29 September 2012 by Bert (talk | contribs)
Jump to navigation Jump to search

Many digital multimeters made by Victor share the same protocol. At least the Victor 70C and Victor 86C support this protocol. In the 70C this is generated by a chip inside the device, on the 86C it's in the cable.

USB interface chip

Reverse engineered pinout of the unknown USB/HID chip:

RXD 1-   O -20
2- -19
3- -18
4- -17 5V
5- -16
6- -15
GND 7- -14 D+/-
8- -13 D+/-
9- -12
10- -11 ~6MHz clock (?)

Protocol

The device registers on the USB host as a HID-class device ("Boot Interface" subclass), see lsusb.

The protocol payload is 14 bytes of data which can be read from endpoint 1, at no more than 1 Hz. The 14-byte chunk is somewhat obfuscated. To deobfuscate, subtract the ASCII value of the following string from each of the 14 bytes in turn: jodenxunickxia. Then reshuffle the bytes into different positions, according to the following table:

Original position  0  1  2  3  4  5  6  7  8  9 10 11 12 13
Final position  6 13  5 11  2  7  9  8  3 10 12  0  4  1

The deobfuscated payload is then structured as follows:

Byte Bit Value
0 Unused (always contains 0x50).
1 Unused (always contains 0xb0).
2 Flags.
0 Minus.
1-7 Unused.
3 Major measurement modes.
0 Voltage measurement mode, combined with AC or DC flags in byte 6. In combination with the Diode flag in byte 4, signifies diode testing mode.
1 Current measurement mode, combined with AC or DC flags in byte 6.
2 Resistance measurement mode. In combination with the Continuity flag in byte 4, signifies continuity testing mode.
3 Unused.
4 Frequency measurement mode.
5 Capacitance measurement mode.
6 Temperature measurement mode, in degrees Celcius.
7 Temperature measurement mode, in Fahrenheit.
4 Value factors and extra measurement modes.
0 µ (Micro).
1 m (Milli).
2 k (Kilo).
3 M (Mega).
4 Continuity (in combination with resistance mode in byte 3).
5 Diode (in combination with voltage mode in byte 3).
6 Duty cycle measurement mode.
7 Unused.
5 Extra flags and value factors.
0 Unused.
1 Unused.
2 Max measurement mode.
3 Min measurement mode.
4 Unused.
5 Unused.
6 n (Nano).
7 Unused.
6 Flags.
0 Unused.
1 Unused.
2 Auto-ranging mode.
3 DC measurement.
4 AC measurement.
5 Relative measurement.
6 Hold mode.
7 Unused.
7 Decimal point position.
0 No decimal point.
1 Rightmost (1 digit after point).
2 Middle (2 digits after point).
3 Leftmost (3 digits after point).
4 Unused.
5 Unused.
6 Unused.
7 Unused.
8 Unused (always contains 0x04).
9 Least significant digit on display.
10 Second digit from right.
11 Second digit from left.
12 Most significant digit.
13 Unused (always contains 0xd4).