Difference between revisions of "ZKETECH EBD-USB"

From sigrok
Jump to navigation Jump to search
(lsusb)
(→‎Protocol: document protocol)
Line 25: Line 25:
== Protocol ==
== Protocol ==


TODO.
Messages are exchanged between host and devices:
* they start with 0xfa
* they end with 0xf8
* these two bytes values can't be used in the rest of the message (the maximum value is 240)
* the second byte encodes the message type
* all two-byte values are in base 240 (e.g. 01 0a = 250)
* the second last byte is a XOR checksum of the message (excluding first and last byte).
 
The communication is prone to byte loss on both directions.
Always verify the message length, checksum, and don't send the bytes too fast.
Resend messages until the one expected next is received.
 
Messages:
 
* <code>fa 05 00 00 00 00 00 00 05 f8</code>
** direction: host to device
** description: start measurements
* <code>fa 06 00 00 00 00 00 00 06 f8</code>
** direction: host to device
** description: stop measurements
* <code>fa 01 00 64 00 0a 00 00 6f f8</code>
** direction: host to device
** description: start load
** content:
*** <code>00 64</code>: current limit in 0.001 A
*** <code>00 0a</code>: cutoff voltage in 0.01 V
*** <code>00 00</code>: time limit in minutes
** note: the time limit is not enforced on the device. the device will report the minutes passed, and the host needs to stop the load
* <code>fa 02 00 00 00 00 00 00 02 f8</code>
** direction: host to device
** description: toggle load on/off
* <code>fa 07 00 64 00 0a 00 00 69 f8</code>
** direction: host to device
** description: update load
** content:
*** <code>00 64</code>: current limit in 0.001 A
*** <code>00 0a</code>: cutoff voltage in 0.01 V
*** <code>00 00</code>: time limit in minutes
** note: the time limit is not enforced on the device. the device will report the minutes passed, and the host needs to stop the load
* <code>fa 04 00 14 c8 00 00 00 d8 f8</code>
** direction: host to device
** description: calibrate
** content:
*** <code>00</code>: 0x00 = low voltage, 0x01 = high voltage, 0x02 = low current, 0x03 = high current
*** <code>14 c8</code>: voltage in 0.001 V or current in 0.0001 A
* <code>fa 00 00 00 14 c5 07 a9 07 ad 00 64 00 0a 00 00 1a a1 f8</code>
** direction: device to host
** description: measurement (without load)
** content:
*** <code>00 00</code>: current in 0.0001 A
*** <code>14 c5</code>: voltage in 0.001 V
*** <code>07 a9</code>: voltage of D+ 0.001 V
*** <code>07 ad</code>: voltage of D- 0.001 V
*** <code>00 64</code>: current limit in 0.001 A
*** <code>00 0a</code>: cutoff voltage in 0.01 V
*** <code>00 00</code>: time limit in minutes
*** <code>1a</code>: device (0x1a = EBD-USB+)
* <code>fa 0a 00 00 14 c5 07 a9 07 ad 00 64 00 0a 00 00 1a ab f8</code>
** direction: device to host
** description: load measurement
** content:
*** <code>00 00</code>: current in 0.0001 A
*** <code>14 c5</code>: voltage in 0.001 V
*** <code>07 a9</code>: voltage of D+ 0.001 V
*** <code>07 ad</code>: voltage of D- 0.001 V
*** <code>00 64</code>: current limit in 0.001 A
*** <code>00 0a</code>: cutoff voltage in 0.01 V
*** <code>00 00</code>: time limit in minutes
*** <code>1a</code>: device (0x1a = EBD-USB+)
* <code>fa 0a 00 0a 00 00 00 00 00 f8</code>
** direction: device to host
** description: load timer
** content:
*** <code>00 0a</code>: time minutes passed since load start
* <code>fa 64 00 00 00 00 01 3b 00 e7 01 50 09 6f 10 a0 1a 24 f8</code>
** direction: device to host
** description: device measurement
** content:
*** <code>00 00</code>: current in 0.0001 A
*** <code>00 00</code>: voltage in 0.001 V
*** <code>01 3b</code>: voltage of D+ 0.001 V
*** <code>00 e7</code>: voltage of D- 0.001 V
*** <code>01 50</code>: version in 0.01
*** <code>09 6f</code>: unknown (seems constant)
*** <code>10 a0</code>: unknown (seems constant)
*** <code>1a</code>: device (0x1a = EBD-USB+)


== Photos ==
== Photos ==

Revision as of 10:54, 18 August 2019

ZKETECH EBD-USB+
Ztetech-ebd-usb+.png
Status supported
Source code zketech-ebd-usb
Channels 1
Voltage/current (CH1) 35W / 0-4A / 0-21V
Connectivity USB/serial
Features DC constant current load
Website zketech.com

The ZKETECH EBD-USB+ is a programmable DC electronic load (0~4A, 0~21V) with serial connectivity over USB.

The electronic load can only be used together with a computer, because it has no external controls.

Currently only the "plus" version is supported. Contact us for support if you own a "non-plus" version (25W / 13.5V).

See ZKETECH EBD-USB/Info for more details (such as lsusb -v output) about the device.

Hardware

Protocol

Messages are exchanged between host and devices:

  • they start with 0xfa
  • they end with 0xf8
  • these two bytes values can't be used in the rest of the message (the maximum value is 240)
  • the second byte encodes the message type
  • all two-byte values are in base 240 (e.g. 01 0a = 250)
  • the second last byte is a XOR checksum of the message (excluding first and last byte).

The communication is prone to byte loss on both directions. Always verify the message length, checksum, and don't send the bytes too fast. Resend messages until the one expected next is received.

Messages:

  • fa 05 00 00 00 00 00 00 05 f8
    • direction: host to device
    • description: start measurements
  • fa 06 00 00 00 00 00 00 06 f8
    • direction: host to device
    • description: stop measurements
  • fa 01 00 64 00 0a 00 00 6f f8
    • direction: host to device
    • description: start load
    • content:
      • 00 64: current limit in 0.001 A
      • 00 0a: cutoff voltage in 0.01 V
      • 00 00: time limit in minutes
    • note: the time limit is not enforced on the device. the device will report the minutes passed, and the host needs to stop the load
  • fa 02 00 00 00 00 00 00 02 f8
    • direction: host to device
    • description: toggle load on/off
  • fa 07 00 64 00 0a 00 00 69 f8
    • direction: host to device
    • description: update load
    • content:
      • 00 64: current limit in 0.001 A
      • 00 0a: cutoff voltage in 0.01 V
      • 00 00: time limit in minutes
    • note: the time limit is not enforced on the device. the device will report the minutes passed, and the host needs to stop the load
  • fa 04 00 14 c8 00 00 00 d8 f8
    • direction: host to device
    • description: calibrate
    • content:
      • 00: 0x00 = low voltage, 0x01 = high voltage, 0x02 = low current, 0x03 = high current
      • 14 c8: voltage in 0.001 V or current in 0.0001 A
  • fa 00 00 00 14 c5 07 a9 07 ad 00 64 00 0a 00 00 1a a1 f8
    • direction: device to host
    • description: measurement (without load)
    • content:
      • 00 00: current in 0.0001 A
      • 14 c5: voltage in 0.001 V
      • 07 a9: voltage of D+ 0.001 V
      • 07 ad: voltage of D- 0.001 V
      • 00 64: current limit in 0.001 A
      • 00 0a: cutoff voltage in 0.01 V
      • 00 00: time limit in minutes
      • 1a: device (0x1a = EBD-USB+)
  • fa 0a 00 00 14 c5 07 a9 07 ad 00 64 00 0a 00 00 1a ab f8
    • direction: device to host
    • description: load measurement
    • content:
      • 00 00: current in 0.0001 A
      • 14 c5: voltage in 0.001 V
      • 07 a9: voltage of D+ 0.001 V
      • 07 ad: voltage of D- 0.001 V
      • 00 64: current limit in 0.001 A
      • 00 0a: cutoff voltage in 0.01 V
      • 00 00: time limit in minutes
      • 1a: device (0x1a = EBD-USB+)
  • fa 0a 00 0a 00 00 00 00 00 f8
    • direction: device to host
    • description: load timer
    • content:
      • 00 0a: time minutes passed since load start
  • fa 64 00 00 00 00 01 3b 00 e7 01 50 09 6f 10 a0 1a 24 f8
    • direction: device to host
    • description: device measurement
    • content:
      • 00 00: current in 0.0001 A
      • 00 00: voltage in 0.001 V
      • 01 3b: voltage of D+ 0.001 V
      • 00 e7: voltage of D- 0.001 V
      • 01 50: version in 0.01
      • 09 6f: unknown (seems constant)
      • 10 a0: unknown (seems constant)
      • 1a: device (0x1a = EBD-USB+)

Photos

Resources