Difference between revisions of "Victor 70C"

From sigrok
Jump to navigation Jump to search
m
Line 1: Line 1:
[[File:Victor 70C.jpg|thumb|right|Victor 70C]]
[[File:Victor 70C.jpg|thumb|right|Victor 70C]]


The [http://www.china-victor.com/english/en/product_data.aspx?ClassID=168&ID=121 Victor 70C] is a 4000 counts, CAT II handheld digital multimeter with USB connectivity. It is also sold as the '''EZA EZ-735'''
The [http://www.china-victor.com/english/en/product_data.aspx?ClassID=168&ID=121 Victor 70C] is a 4000 counts, CAT II handheld digital multimeter with USB connectivity. It is also sold as the [http://github.com/mvneves/victor70c#victor70c-software-for-linux EZA EZ-735].


See [[Victor 70C/Info]] for more details (such as '''lsusb -vvv''' output) about the device.
See [[Victor 70C/Info]] for more details (such as '''lsusb -vvv''' output) about the device.
Line 28: Line 28:
== Protocol ==
== Protocol ==


The device registers on the USB host as a HID-class device. The protocol payload is 14 bytes of data which can be read from endpoint 1, at no more than 1 Hz.
The device registers on the USB host as a HID-class device ("Boot Interface" subclass), see [[Victor_70C/Info#lsusb|lsusb]]. Note: The USB/HID chip is ''in the multimeter'' (not in the USB cable/connector) for this device. The device is connected to the PC using a standard USB cable (without any internal logic/chip).
 
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: '''<code>jodenxunickxia</code>'''. Then reshuffle the bytes into different positions, according to the following table:
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: '''<code>jodenxunickxia</code>'''. Then reshuffle the bytes into different positions, according to the following table:


{| border="0" width="50%" style="font-size: smaller" class="alternategrey sortable sigroktable"
{| border="0" width="50%" style="font-size: smaller" class="alternategrey sigroktable"
|-
|-
| Original position
| Original position
Line 70: Line 72:


The deobfuscated payload is then structured as follows:
The deobfuscated payload is then structured as follows:
{| border="0" width="95%" style="font-size: smaller" class="alternategrey sortable sigroktable"
 
{| border="0" width="95%" style="font-size: smaller" class="alternategrey sigroktable"
|-
|-
! style="width: 3em;" | Byte
! style="width: 3em;" | Byte
Line 79: Line 82:
| 0
| 0
|
|
| ''Unused (always contains 0x50)''
| ''Unused (always contains 0x50).''


|-
|-
| 1
| 1
|
|
| ''Unused (always contains 0xb0)''
| ''Unused (always contains 0xb0).''


|-
|-
| 2
| 2
|
|
| ''Flags''
| ''Flags.''


|-
|-
|
|
| 0
| 0
| Minus
| Minus.


|-
|-
Line 104: Line 107:
| 3
| 3
|
|
| ''Major measurement modes''
| ''Major measurement modes.''
|-
|-
|
|
Line 132: Line 135:
|
|
| 6
| 6
| Temperate measurement mode, in Celcius.
| Temperature measurement mode, in degrees Celcius.
|-
|-
|
|
Line 141: Line 144:
| 4
| 4
|
|
| ''Value factors and extra measurement modes''
| ''Value factors and extra measurement modes.''
|-
|-
|
|
| 0
| 0
| µ (Micro)
| µ (Micro).
|-
|-
|
|
| 1
| 1
| m (Milli)
| m (Milli).
|-
|-
|
|
| 2
| 2
| k (Kilo)
| k (Kilo).
|-
|-
|
|
| 3
| 3
| M (Mega)
| M (Mega).
|-
|-
|
|
| 4
| 4
| Continuity (in combination with resistance mode in byte 3)
| Continuity (in combination with resistance mode in byte 3).
|-
|-
|
|
| 5
| 5
| Diode (in combination with voltage mode in byte 3)
| Diode (in combination with voltage mode in byte 3).
|-
|-
|
|
Line 173: Line 176:
|
|
| 7
| 7
| unused.
| Unused.


|-
|-
| 5
| 5
|  
|  
| ''Extra flags and value factors''
| ''Extra flags and value factors.''
|-
|-
|
|
| 0
| 0
| unused.
| Unused.
|-
|-
|
|
| 1
| 1
| unused.
| Unused.
|-
|-
|
|
Line 198: Line 201:
|
|
| 4
| 4
| unused.
| Unused.
|-
|-
|
|
| 5
| 5
| unused.
| Unused.
|-
|-
|
|
| 6
| 6
| n (Nano)
| n (Nano).
|-
|-
|
|
| 7
| 7
| unused.
| Unused.


|-
|-
| 6
| 6
|  
|  
| ''Flags''
| ''Flags.''
|-
|-
|
|
| 0
| 0
| unused.
| Unused.
|-
|-
|
|
| 1
| 1
| unused.
| Unused.
|-
|-
|
|
Line 247: Line 250:
|
|
| 7
| 7
| unused.
| Unused.


|-
|-
| 7
| 7
|  
|  
| ''Decimal point position''
| ''Decimal point position.''
|-
|-
|
|
| 0
| 0
| No decimal point
| No decimal point.
|-
|-
|
|
| 1
| 1
| Rightmost (1 digit after point)
| Rightmost (1 digit after point).
|-
|-
|
|
| 2
| 2
| Middle (2 digits after point)
| Middle (2 digits after point).
|-
|-
|
|
| 3
| 3
| Leftmost (3 digits after point)
| Leftmost (3 digits after point).
|-
|-
|
|
| 4
| 4
| unused.
| Unused.
|-
|-
|
|
| 5
| 5
| unused.
| Unused.
|-
|-
|
|
| 6
| 6
| unused.
| Unused.
|-
|-
|
|
| 7
| 7
| unused.
| Unused.


|-
|-
| 8
| 8
|  
|  
| ''Unused (always contains 0x04)''
| ''Unused (always contains 0x04).''


|-
|-
Line 314: Line 317:
| 13
| 13
|  
|  
| ''Unused (always contains 0xd4)''
| ''Unused (always contains 0xd4).''


|}
|}

Revision as of 23:32, 10 September 2012

Victor 70C

The Victor 70C is a 4000 counts, CAT II handheld digital multimeter with USB connectivity. It is also sold as the EZA EZ-735.

See Victor 70C/Info for more details (such as lsusb -vvv output) about the device.

Hardware

Photos

Protocol

The device registers on the USB host as a HID-class device ("Boot Interface" subclass), see lsusb. Note: The USB/HID chip is in the multimeter (not in the USB cable/connector) for this device. The device is connected to the PC using a standard USB cable (without any internal logic/chip).

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).

Resources