OpenHantek6022 is a free software for Hantek and compatible (Voltcraft/Darkwire/Protek/Acetech) USB digital signal oscilloscopes. It was initially developed by David Gräff and others on github.com/OpenHantek/openhantek. After David stopped maintaining the programm I cloned the repo to provide updates - but only for Hantek 6022BE/BL.
- Supported devices:
- Hantek 6022BE and 6022BL as well as compatible scopes (e.g. Voltcraft DSO-2020).
- SainSmart DDS120 (thx msiegert) - this device has a different analog front end and uses the slightly improved sigrok firmware, which has some limitations compared to the Hantek scopes (see #69).
- Demo mode is provided by the
-d
or--demoMode
command line option. - Fully supported operating system: Linux; developed under debian stable for amd64 architecture.
- Raspberry Pi packages (raspbian stable) are available on the Releases page, check this setup requirement.
- Compiles under FreeBSD (packaging / installation: work in progress, thx tspspi).
- Other operating systems builds: Windows (partly tested) & MacOSX (untested).
- Uses free open source firmware, no longer dependent on nonfree Hantek firmware.
- Extensive User Manual with technical specs and schematics.
- Voltage and Spectrum view for all device supported chanels.
- CH1 and CH2 name becomes red when input is clipped (bottom left).
- Settable probe attenuation factor 1..1000 to accommodate a variety of different probes.
- Measure and display Vpp, RMS, DC (average), AC (rms) and AC as dB values as well as frequency of active channels.
- Math channel modes: CH1+CH2, CH1-CH2, CH2-CH1, CH1*CH2 and AC part of CH1 or CH2.
- Time base 100 ms/div .. 10 ns/div.
- Sample rates 10, 20, 50, 100, 200, 500 kS/s, 1, 2, 5, 10, 12, 15, 24, 30 MS/s (24 & 30 MS/s in CH1-only mode).
- 48 MS/s not supported due to unstable USB data streaming.
- Downsampling (up to 100x) increases solution and SNR.
- Calibration output square wave signal frequency can be selected between 50 Hz .. 100 kHz in 1/2/5 steps.
- Trigger modes: Normal, Auto and Single with green/red status display (top left).
- Calibration values loaded from eeprom or a model configuration file.
- Calibration program to create these values automatically.
- Digital phosphor effect to notice even short spikes; simple eye-diagram display with alternating trigger slope.
- Histogram function for voltage channels on right screen margin.
- A zoom view with a freely selectable range.
- Cursor measurement function for voltage, time, amplitude and frequency.
- Export of the graphs to CSV, JPG, PNG file or to the printer.
- Freely configurable colors.
- Automatic adaption of iconset for light and dark themes.
- The dock views on the main window can be customized by dragging them around and stacking them. This allows a minimum window size of 640*480 for old workstation computers.
- All settings can be saved to a configuration file and loaded again.
- French, German, Russian and Spanish localisation complete, Italian and Portuguese translation ongoing.
- A little HW modification adds AC coupling. OpenHantek6022 supports this feature since v2.17-rc5 / FW0204.
- Download Linux, Raspberry Pi, Win and MacOSX packages from the Releases page.
(The RPi, Win and MacOSX packages are not tested, neither is the installation of the
*.rpm
packages. For RPi4 see also issue #28.) - If you want to follow ongoing development, packages built from the last commit are available in the unstable release.
- As I develop on a Debian stable system the preferred (native) package format is
*.deb
. - To install the downloaded
*.deb
package, open a terminal window, go to the download directory and enter the command (as root)apt install ./openhantek_..._amd64.deb
. This command will automatically install all dependencies of the program as well. - For installation of
*.rpm
packages follow similar rules, e.g.dnf install ./openhantek-...-1.x86_64.rpm
. - The
*.tar.gz
achives contain only the binary for quick testing, they do not work without an recently installed complete package. Do not report any issues about the*.tar.gz
! - Get MacOSX packages from macports - thx ra1nb0w.
- Get Fedora rpm packages - thx Vascom.
- Download (untested) Windows build from last commit.
You need the following software, to build OpenHantek from source:
- CMake 3.5+
- Qt 5.4+
- FFTW 3+ (prebuild files will be downloaded on windows)
- libusb-1.0, version >= 1.0.16 (prebuild files will be used on windows)
- A compiler that supports C++11 - tested with gcc, clang and msvc
We have build instructions available for Linux, Raspberry Pi, Apple MacOSX and Microsoft Windows.
On a Linux system start the program via the menu entry OpenHantek (Digital Storage Oscilloscope) or from a terminal window as OpenHantek
.
You can explore the look and feel of OpenHantek6022 without the need for real scope hardware by running it from the command line as: OpenHantek --demoMode
.
OpenHantek6022 runs also on legacy HW/SW that supports at least OpenGL 2.1+ or OpenGL ES 1.2+.
OpenGL is preferred, select OpenGL ES by starting OpenHantek
from the command line like this: OpenHantek --useGLES
.
Raspberry Pi uses OpenGL ES automatically, check also the graphics driver setup.
USB access for the device is required (unless using demo mode):
- As seen on the Microsoft Windows build instructions page, you have to assign an usb driver to the device. The original Hantek driver doesn't work.
- On Linux, you need to copy the file
utils/udev_rules/60-hantek.rules
to/etc/udev/rules.d/
or/lib/udev/rules.d/
and replug your device. If OpenHantek is installed from a *.deb or *.rpm package this file is installed automatically into/lib/udev/rules.d/
.
The scope doesn't store the firmware permanently in flash or eeprom, it must be uploaded after each power-up and is kept in ram 'til power-down. If the scope was used with a different software (old openhantek, sigrok or the windows software) the scope must be unplugged and replugged one-time before using it with OpenHantek6022 to enable the automatic loading of the correct firmware. The top line of the program must display the correct firmware version (FW0206).
I use this project mainly to explore how DSP software can improve and extend the limitations of this kind of low level hardware. It would have been easy to spend a few bucks more to buy a powerful scope - but it would be much less fun :) Please refer also to the developer documentation pages.
We welcome any reported GitHub issue if you have a problem with this software. Send us a pull request for enhancements and fixes. Some random notes:
- Read how to properly contribute to open source projects on GitHub.
- Create a separate branch other than master for your changes. It is not possible to directly commit to master on this repository.
- Write good commit messages.
- Use the same coding style and spacing -> install clang-format and use make target:
make format
or execute directly:clang-format -style=file -i *.cpp *.h
. - It is mandatory that your commits are Signed-off-by:, e.g. use git's command line option
-s
to append it automatically to your commit message:git commit -s -m 'This is my good commit message'
- Open a pull request with a clear title and description.
- Read Add a new device if you want to know how to add a device.
- We recommend QtCreator as IDE on all platforms. It comes with CMake support, a decent compiler, and Qt out of the box.
- Firmware used by OpenHantek and python bindings for 6022BE/BL
- sigrok
- Software for the Hantek 6022BE/BL (win only)
- HScope for Android A one-channel basic version is available free of charge (with in-app purchases).