Hi,
there are several ways to get all 16 channels of a Hantek 6022bl working.
Methode one:
– copy fx2lafw-sigrok-fx2-16ch.fw to fx2lafw-saleae-logic.fw. But for me this is NOT RELIABLE:
This must be done each time you connect the Hantek to the PC!
Backup firmware
1 | cp /usr/share/sigrok-firmware/fx2lafw-saleae-logic .fw /usr/share/sigrok-firmware/fx2lafw-saleae-logic .fw.bak |
Copy 16 Channel firmware over fx2lafw-saleae-logic.fw
1 | cp /usr/share/sigrok-firmware/fx2lafw-sigrok-fx2-16ch .fw /usr/share/sigrok-firmware/fx2lafw-saleae-logic .fw |
Load firmware to the device
1 2 3 | sigrok-cli --scan ..... fx2lafw:conn=1.15 - Saleae Logic [S /N : Saleae Logic] with 16 channels: D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 |
Then ( I ) have to copy the old firmware back
1 | cp /usr/share/sigrok-firmware/fx2lafw-saleae-logic .fw.bak /usr/share/sigrok-firmware/fx2lafw-saleae-logic .fw |
And pulsview can be started. As I said really applicable.
Methode two:
– Changing the eeprom Hantek 6022bl => To difficult, see this link
In my opinion the best way is to build an own package. But be aware that the full speed of 24Mhz is not reachable with 16 channels.
1 | michael@debdev ~ # mkdir fx2lafw-build |
Add Source repository to
1 | deb-src http://archive.ubuntu.com/ubuntu noble main restricted universe multiverse |
to
1 | /etc/apt/sources.list.d/official-package-repositories.list |
Update repository
1 2 | michael@debdev ~ # sudo apt update michael@debdev ~ # sudo apt install build-essential fakeroot sigrok-cli sigrok-firmware-fx2lafw pulseview |
1 2 | michael@debdev ~ # cd fx2lafw-build michael@debdev ~ /fx2lafw-build # apt-get source libsigrok |
Install build depedencies
1 2 | michael@debdev ~ /fx2lafw-build # cd libsigrok-0.5.2 michael@debdev ~ /fx2lafw-build/libsigrok-0 .5.2 # sudo apt-get build-dep libsigrok |
Apply the patch to src/hardware/fx2lafw/api.c
1 | michael@debdev ~ /fx2lafw-build/libsigrok-0 .5.2 # cp src/hardware/fx2lafw/api.c src/hardware/fx2lafw/api.c.org |
Modifing src/hardware/fx2lafw/api.c. Open for edit, go to line 74 and replace
1 | 0, NULL, NULL}, |
with
1 | DEV_CAPS_16BIT, NULL, NULL}, |
To create a patch for further usage use:
1 | michael@debdev ~ /fx2lafw-build/libsigrok-0 .5.2 # diff -Nuar ~/software/fx2lafw-build-org/libsigrok-0.5.2/src/hardware/fx2lafw/api.c src/hardware/fx2lafw/api.c > ~/fx2lafw.patch > ~/hantek-6022bl-16ch.patch |
This creates a file like this
1 2 3 4 5 6 7 8 9 10 11 | --- src/hardware/fx2lafw/api.c 2019-12-25 21:29:19.000000000 +0100 +++ src/hardware/fx2lafw/api.c 2025-03-31 20:30:26.463457393 +0200 @@ -71,7 +71,7 @@ */ { 0x0925, 0x3881, "Saleae", "Logic", NULL, "fx2lafw-saleae-logic.fw", - 0, NULL, NULL}, + DEV_CAPS_16BIT, NULL, NULL}, /* * Default Cypress FX2 without EEPROM, e.g.: |
which can be later applied by
1 | michael@debdev ~ /fx2lafw-build/libsigrok-0 .5.2 # patch -p1 src/hardware/fx2lafw/api.c < ~/hantek-6022bl-16ch.patch |
then update the change log
1 2 3 4 5 6 7 | michael@debdev ~ /fx2lafw-build/libsigrok-0 .5.2 # dch -i libsigrok (0.5.2-5.1ubuntu1) UNRELEASED; urgency=medium * Build for 16 channel support. -- Michael Albert <michael@albert-hetzles.de> Wed, 19 Mar 2025 21:17:34 +0100 |
Start build
1 2 3 | michael@debdev ~ /fx2lafw-build/libsigrok-0 .5.2 # dpkg-source --commit michael@debdev ~ /fx2lafw-build/libsigrok-0 .5.2 # dpkg-buildpackage -us -uc michael@debdev ~ /fx2lafw-build/libsigrok-0 .5.2 # cd .. |
Remove sigrok and pulseview
1 2 3 4 | michael@debdev ~ /fx2lafw-build # sudo apt autoremove pulseview and sigrok michael@debdev ~ /fx2lafw-build # sudo apt autoremove libsigrok4 michael@debdev ~ /fx2lafw-build # sudo apt autoclean michael@debdev ~ /fx2lafw-build # sudo apt autoremove |
Install libsigrok4 and libsigrokcxx4, may be you must adjust the version
1 2 3 | michael@debdev ~ /fx2lafw-build # ls -l *.deb michael@debdev ~ /fx2lafw-build # sudo dpkg -i libsigrok4t64_0.5.2-5.1ubuntu1_amd64.deb michael@debdev ~ /fx2lafw-build # sudo dpkg -i libsigrokcxx4t64_0.5.2-5.1ubuntu1_amd64.de |
And install sigrok again
1 | michael@debdev ~ /fx2lafw-build # sudo apt install sigrok-cli sigrok-firmware-fx2lafw pulseview |
Be aware that the manual installation of deb package could break some update dependencies. If happens: simply remove libsigrok4, update your system and rebuild and install a new libsigrok4.
Michael