Bug 1320 (3d_time)

Summary: 6022BL logic analyzer mode does not display any signal on the channel pins
Product: libsigrok Reporter: learn2kab
Component: Driver: hantek-6xxxAssignee: Nobody <nobody>
Status: CONFIRMED ---    
Severity: major CC: andrew-ccc, austin.hibdon, benzqn, derick, ejukated, grobinson6000, guenter.lang, rmh3093, the.littleman, uwe
Priority: Normal    
Version: 0.5.1   
Target Milestone: ---   
Hardware: x86   
OS: Windows   
Attachments: dmesg and lsusb outputs for Hantek 6022BL with H/P button released and pressed modes

Description learn2kab 2018-11-08 16:44:07 CET
Hello,

I was trying to use hantek 6022BL with PULSEview.
Integration in the oscilloscope mode (H/P button pressed down) went 
well and the signal on ch1 was visible (connected CH1 with 1KHz,2Vp-p pin on 
the device).

For Logic Analyzer mode, the driver for the device was updated with Zadig.
Pulseview recognized the Hantek 6022BL as a CYPRESS FX2 type.In this mode,
16 channels were displayed (though 6022BL mentions that only 8 channels are working in Logic Analyzer mode).

Though we have connected one of the channel pins (0x11) on the 6022BL to a
square wave generator pin, output was not visible on the pulseview GUI.


vendor : device ids
oscilloscope:04b5-602A
logic analyzer:04b4-8613

Should I re-configure any of the files?How do I make the pulse view display 
the content on the Logic Analyzer pins?? Kindly guide.

Regards,
Adarsh
Comment 1 Uwe Hermann 2018-11-09 00:49:07 CET
Hi, can you please confirm a few things?

 - If you used an installer from a few days or so ago, you probably mean PulseView 0.4.1 (which includes libsigrok 0.5.1), not libsigrok 0.4.1, right?

 - Please attach a "lsusb -v" (as root) from a Linux system, if possible, so we can compare the USB properties.

The 6022BL devices we know of have a USB VID/PID of 0925:3881 in the logic analyzer mode, which is the VID/PID of an 8-channel Saleae Logic LA.

If your lsusb from Linux really shows 04b4:8613 in logic analyzer mode, that's potentially a new hardware version of the 6022BL then. If yes, please join us on IRC for a wiki account, would be great to add the "lsusb -v" to the wiki page, as well as new device/PCB photos:

https://sigrok.org/wiki/Hantek_6022BL

With 04b4:8613 (the default Cypress FX2 VID/PID), libsigrok (and the fx2lafw firmware) will indeed assume a 16-channel logic analyzer. That *should* also work fine, but it depends on what exactly (if anything) they changed in the new hardware revision.
Comment 2 Uwe Hermann 2018-11-09 00:50:14 CET
Nevermind, it's libsigrok 0.5.2 indeed, fixing that.
Comment 3 learn2kab 2018-11-09 16:34:59 CET
Created attachment 480 [details]
dmesg and lsusb outputs for Hantek 6022BL with H/P button released and pressed modes
Comment 4 learn2kab 2018-11-09 16:50:38 CET
(In reply to Uwe Hermann from comment #1)
> Hi, can you please confirm a few things?
> 
>  - If you used an installer from a few days or so ago, you probably mean
> PulseView 0.4.1 (which includes libsigrok 0.5.1), not libsigrok 0.4.1, right?
> 
[adarsh]:PulseView-0.4.1 from downloads for Windows-7 64-bit version.
 
>  - Please attach a "lsusb -v" (as root) from a Linux system, if possible, so
> we can compare the USB properties.
> 
[adarsh]: output in attached files

> The 6022BL devices we know of have a USB VID/PID of 0925:3881 in the logic
> analyzer mode, which is the VID/PID of an 8-channel Saleae Logic LA.
> 
> If your lsusb from Linux really shows 04b4:8613 in logic analyzer mode,
> that's potentially a new hardware version of the 6022BL then. If yes, please
> join us on IRC for a wiki account, would be great to add the "lsusb -v" to
> the wiki page, as well as new device/PCB photos:
> 
> https://sigrok.org/wiki/Hantek_6022BL
> 
[adarsh]:Sure,will join the IRC.

> With 04b4:8613 (the default Cypress FX2 VID/PID), libsigrok (and the fx2lafw
> firmware) will indeed assume a 16-channel logic analyzer. That *should* also
> work fine, but it depends on what exactly (if anything) they changed in the
> new hardware revision.

Hi,

Please find the inline answers above
Comment 5 Nae Botis 2018-11-18 09:16:38 CET
I have the same problem. Received the 6022BL in november 2018.

The documentation on sigrok is lacking in regards to how do you actually change the modes between oscilloscope and logic analyzer.
I assume I have to disconnect the unit, press the H/P button, reconnect again, and upload again the firmware with Zadig (and presumably this is the driver to be used: WinUSB (v6.1.7600.16385)). This is how I get the unit alive every time.
Regardless of the state of the H/P button, it's always in oscilloscope mode.

I've tried loading the other drivers from Zadig (libusb-win32 (v1.2.6.0), libusbK (v3.0.7.0) and USB Serial (CDC)) with no luck, in this cases even the oscilloscope mode was not working anymore (which probably is expected, as it's not the correct driver).

Before trying sigrok, I've tested the unit with the manufacturer software, and worked properly, without any issues. Although the Logic Analyzer part of the software is appalling.

This is the output of sigrok CLI (sorry, I have no Linux machine to test it on):

C:\Programs\sigrok\sigrok-cli>sigrok-cli --scan
sr: ftdi-la: Failed to get the FTDI strings: -4
The following devices were found:
demo - Demo device with 12 channels: D0 D1 D2 D3 D4 D5 D6 D7 A0 A1 A2 A3
hantek-6xxx:conn=3.6 - Hantek 6022BL with 2 channels: CH1 CH2

C:\Programs\sigrok\sigrok-cli>sigrok-cli -d hantek-6xxx --show
Driver functions:
    Oscilloscope
Scan options:
    conn
hantek-6xxx:conn=3.6 - Hantek 6022BL with 2 channels: CH1 CH2
Channel groups:
    CH1: channel CH1
    CH2: channel CH2
Supported configuration options across all channel groups:
    conn: 3.6 (current)
    limit_samples: 0 (current)
    limit_time: 0 (current)
    samplerate - supported samplerates:
      48 MHz
      30 MHz
      24 MHz
      16 MHz
      8 MHz
      4 MHz
      1 MHz
      500 kHz
      200 kHz
      100 kHz
    num_vdiv


Is this issue a work in progress? I'd really like to have the Logic Analyzer functional back again.

Thank you!
Comment 6 Benk 2019-01-02 04:48:08 CET
Hello,

I also have this problem with my recently delivered Hantek 6022BL.

The PCB looks to be the same as on the wiki, there are 2x 24BL02 EEPROMs onboard however it always reports the same USB ID 04B5:602A regardless of the position of the H/P switch.

The EEPROMs are still switched via the H/P switch to the processor and still accessible via the FX2 however it doesnt seem to load the VID/PID off the EEPROMs as the data in the EPROMs are correct for each position of the switch.

Is it possible that there is a mod in the driver in the new versions to make it report a different VID:PID to whats in the EPROMs?

I guess this is why sigrok is only loading the Scope function as the VID:PID is the same in both positions.

Cheers
Comment 7 Benk 2019-01-02 04:49:00 CET
(In reply to Uwe Hermann from comment #2)
> Nevermind, it's libsigrok 0.5.2 indeed, fixing that.

Hello, was there any further findings?
Comment 8 learn2kab 2019-04-08 13:01:37 CEST
(In reply to Uwe Hermann from comment #2)
> Nevermind, it's libsigrok 0.5.2 indeed, fixing that.

Hello Uwe,

Do we have any updated sigrok software for the recent versions of hantek6022bl ?? Please let me know if you need any support to test any softwares.

Regards,
Adarsh
Comment 9 learn2kab 2019-04-08 14:01:01 CEST
(In reply to Uwe Hermann from comment #2)
> Nevermind, it's libsigrok 0.5.2 indeed, fixing that.

Hello Uwe,

I have tried again today with the pulseview  available on the website,just to check if the libsigrok got updated and support is available.

The new chip did not get detected.

Regards,
Comment 10 gus 2019-12-27 09:59:48 CET
Any progress on this? would really like to be able to use the Logic Analyzer functions of this version of 6022BL's

Have tried latest and previous versions of sigrok cli and firmware, always just get 2 channel scope functions

Can confirm the H/P button does not change VID:PID on these recent devices

Thanks
Comment 11 Ryan Hope 2020-02-08 20:41:30 CET
Its now Feb 8 2020 and this still seems to be an issue in the latest version of sigrok available on Ubuntu. What exactly is the status of this? Are devs waiting on more info or what?
Comment 12 Ben 2020-04-12 14:38:12 CEST
I installed sigrok on MacOS.  When Pulsview opens it was in oscilloscope mode - no logic analyser.  I discounted power on the Hantek 6022BL and pressed the HP button, then restarted Pulseview.

Pulsview now detected Salae Logic and the Logic Analyer 8 channels show up!

So maybe try choosing the Salae Logic rather than the Hantek 6xxx Device.
Comment 13 Austin 2021-03-10 20:08:20 CET
It is nearly a 322 days since there has been any comment on this. Has this been fixed? Did it get moved to a new ticket? Did everyone stop caring?  Should I return my hanktek because being forced to use the hantek provided software is... well the reason I am trying to use this software?
Comment 14 guenter.lang 2021-04-16 19:33:55 CEST
@ Ben: thank you so much for this hint!! made my day :)
working on Linux Mint;
no-more sure hat else I did (e.g. I did install Sigrok-firmware-fx2lafw from the 'Softwareverwaltung', maybe restarting the computer and the hantek...), but finally it works.
btw: I really like PulseView; not to compare with the garbage provided by Hantek - not mentioning, that it only works on Windows (and you need also some tricks to make it work on Win10; latest version is from 2015!)
Comment 15 Andrés 2021-04-20 19:00:06 CEST
Hey Everyone, I have a new Hantek BL/BE 6022 and apparently it has some changes as others have noted.   I want to make the logic analyzer work with all 16 channels can someone point me to the best way to get started?   

I should note I'm an embedded systems developer and familiar with DSP logic.   It seems the USB ID (VID/PID) has changed in this model or that the DSP (one of them? ) is compatible with an 8 channel Saleae. 

I'm willing to volunteer my time to develop a modified driver (hopefully backward compatible) but I don't have a great deal of free time.   

Can someone point me to where I should be looking in the code to fix this issue?
Comment 16 Andrés 2021-04-20 19:05:53 CEST
And before anyone says look at the developer docs or the driver source (I have) ...   I'm looking for the code that identifies and/or enumerates and/or enables the channel functionalities in the DSP.   I have yet to find this specific bit of code.    

OR is Sigrok limited to only 8 channels?   I guess I could look back at the FAQ for this....
Comment 17 grob6k 2021-10-08 04:47:53 CEST
I have a workaround/solution for getting sigrok to read all 16ch from a hantek 6022BL. Basically, we swap the salae-logic firmware file for the generic 16ch firmware file, which works fine with the 6022BL. I'm using windows, but linux people will be able to adapt the below to suit.

(1) Find the sigrok-firmware directory. For sigrok-cli, this is something like: C:\Program Files\sigrok\sigrok-cli\share\sigrok-firmware; and for pulseview it is something like C:\Program Files\sigrok\PulseView\share\sigrok-firmware. If you want to use either, do steps (2) and (3) for both!
(2) Make a backup of "fx2lafw-saleae-logic.fw" (e.g. change name to .fw.bak)
(3) Copy "fx2lafw-sigrok-fx2-16ch.fw", and rename the copy to "fx2laf2-salae-logic.fw".
(4) On the device, set the H/P switch to P (out) for logic analyzer mode, and plug in the USB cable.

Now, if you're using sigrok-cli:

(5a) Scan for fx2lafw devices. Command line: "sigrok-cli --scan". libsigrok will upload the 'wrong' firmware but report a 'Salae Logic with 8 channels'
(6a) If you're using windows, and this is the first time with this device, use Zadig to install the WinUSB driver for the new device that has appeared (name: 'fx2lafw', VID:1D50, PID:608D).
(7a) Now, scan again (sigrok-cli --scan) and device "sigrok FX2 LA (16ch)" will appear and work.

Or if you're using pulseview:

(5b) Start pulseview. During the start-up scan, the 'wrong' firmware is uploaded.
(6b) If you're using windows, and this is the first time with this device, use Zadig to install the WinUSB driver for the new device that has appeared (name: 'fx2lafw', VID:1D50, PID:608D).
(7b.i) Click the arrow next to <No Device> and then 'Connect to Device...' from the dropdown, select 'fx2lafw' from the driver list, then 'scan for devices...', and 'sigrok FX2 LA (16ch) with 16 channels' should appear in the device list. Click OK, and ready to work.
-- OR --
(7b.ii) Quit and restart pulseview, which should find and connect the 16ch firmware automatically.

More notes:
* Obviously if you also use Salae Logic hardware, it will now do the same 'wrong firmware' loading as above. Presumably (I don't have one to test) it will report 16 channels but only 8 will work.
* You can still use the Salae Logic software with the 6022BL if you like - just plug the device in, DON'T RUN SIGROK OR PULSEVIEW. Salae Logic will identify the device and load it's own firmware, and you can use the first 8 channels.