Difference between revisions of "Hantek 6022BE"

From sigrok
Jump to navigation Jump to search
(→‎Hardware: set hardware types)
(→‎Protocol: Add protocol info)
Line 20: Line 20:
== Protocol ==
== Protocol ==


The protocol was reverse engineered and documented in: https://github.com/rpcope1/Hantek6022API/blob/master/REVERSE_ENGINEERING.md


Copied from that page the main data:
{| class="wikitable"
!|Oscilloscope Command
!| bRequest Value
!|Other Notes
|-
|Set CH0 voltage range ||0xE0 ||Possible values: 1,2,5,10 (5V, 2.5V, 1V, 500mV).
|-
|Set CH1 voltage range ||0xE1 ||Possible values: 1,2,5,10 (5V, 2.5V, 1V, 500mV).
|-
|Set Sampling Rate ||0xE2 ||Possible values: 48, 30, 24, 16, 8, 4, 1 (MHz) and 50,20,10 (*10kHz).
|-
|Trigger Oscilloscope ||0xE3 ||Clear the FIFO on the FX2LP
|-
|Read/Write EEPROM ||0xA2 ||Read or write the eeprom built into the scope.
|-
|Read/Write Firmware ||0xA0 ||Read or write the scope firmware. Must be done on scope initialization
|-
|}
All commands are sent with index = 0x00, the calibration commands are sent with value 0x08, the 0xEx requests are sent with value 0x00, and the value for R/W command is dependent on the Cypress protocol for interacting with the firmware.
Additionally, a bulk read from end point 0x86 reads the current contents of the FIFO, which the ADC is filling. The reference Python libusb code should give further insight into the means for which to interact with the device.


== Extracting the firmware ==
== Extracting the firmware ==

Revision as of 19:41, 27 May 2015

Hantek 6022BE

The Hantek 6022BE is a USB-based, 2-channel oscilloscope with an analog bandwidth of 20MS/s sampling rate.

Hardware

  • Main chip + USB: FX2LP
  • Main oscillator: unknown

Photos

Protocol

The protocol was reverse engineered and documented in: https://github.com/rpcope1/Hantek6022API/blob/master/REVERSE_ENGINEERING.md

Copied from that page the main data:

Oscilloscope Command bRequest Value Other Notes
Set CH0 voltage range 0xE0 Possible values: 1,2,5,10 (5V, 2.5V, 1V, 500mV).
Set CH1 voltage range 0xE1 Possible values: 1,2,5,10 (5V, 2.5V, 1V, 500mV).
Set Sampling Rate 0xE2 Possible values: 48, 30, 24, 16, 8, 4, 1 (MHz) and 50,20,10 (*10kHz).
Trigger Oscilloscope 0xE3 Clear the FIFO on the FX2LP
Read/Write EEPROM 0xA2 Read or write the eeprom built into the scope.
Read/Write Firmware 0xA0 Read or write the scope firmware. Must be done on scope initialization

All commands are sent with index = 0x00, the calibration commands are sent with value 0x08, the 0xEx requests are sent with value 0x00, and the value for R/W command is dependent on the Cypress protocol for interacting with the firmware.

Additionally, a bulk read from end point 0x86 reads the current contents of the FIFO, which the ADC is filling. The reference Python libusb code should give further insight into the means for which to interact with the device.

Extracting the firmware

Resources