OpenHantek / OpenHantek6022

OpenHantek6022 is a DSO software for Hantek USB digital signal oscilloscopes 6022BE / BL. Development OS is Debian Linux, but the program also works on FreeBSD, MacOS, RaspberryPi and Windows. No support for non-Linux related issues unless a volunteer steps in!
GNU General Public License v3.0
858 stars 152 forks source link

OpenHantek6022 on Debian (fresh install, latest version) requires multi launch, shows FW209; crashes when I touch the probe #316

Closed rechnermusik closed 2 years ago

rechnermusik commented 2 years ago

Running a Debian VM on MacOS. When I plug in my 6022BE, the light is off. I need to launch OpenHantek6022 a couple times to get it to flash red, then eventually green.

Once the software opens, it shows FW209 in the title bar. Software seems stable until I even pick up the probe with my hand.

Does this seem like a software issue, hardware issue, or both?

Please let me know how I can provide more detailed information for troubleshooting. Thank you!

https://user-images.githubusercontent.com/50645813/178927149-4289a3a8-bcbf-49a8-aec9-fdb3e480c0e0.mov

rechnermusik commented 2 years ago

I also tried natively in MacOS version and natively on Windows with the exact same results.

The crappy Hantek OEM software seems to be working fine.

Ho-Ro commented 2 years ago

Strange, this commit 1033 should show FW 0210 (the FW is intrinsic part of the binary). Latest FW 0210 was updated on 2-April. How did you install? Do you have some older version installed in parallel? image

rechnermusik commented 2 years ago

I installed latest with apt on a fresh image of Debian from osboxes.org. It looks like I'm running the same version as you.

Never had another version installed.

For some reason it also shows FW0209 even if I run the application from the MacOS package.

Ho-Ro commented 2 years ago

Very very strange, I checked thoroughly the binaries from GitHub and the Debian, the MacOS as well as the Windows package contain FW0210 (the FW is stored in intel hex format):

strings OpenHantek.debian | grep 40B5042260
:203D000012010002FFFFFF40B50422601002010203010A0600020000004001000902890016
strings OpenHantek.macos | grep 40B5042260
:203D000012010002FFFFFF40B50422601002010203010A0600020000004001000902890016
strings OpenHantek.exe | grep 40B5042260
:203D000012010002FFFFFF40B50422601002010203010A0600020000004001000902890016

where :203D000012010002FFFFFF40B50422601002010203010A0600020000004001000902890016 is the USB idVendor 04B5, the USB idProduct 6022 and the USB bcdDevice 0210 of the FW (all values are in little-endian format). Find more info about USB device descriptors.

Also in #315 you can see a screen shot with FW0210 and also the YT videos show this FW: image

Where does this old version come?

I found an issue in the program that accepts also FW 0208 and 0209. But this doesn't clarify where the old version in the device comes.

Issue fixed in latest unstable. Please check your version and the new version from unstable with a freshly connected device: If you start the binary from a terminal window as OpenHantek --verbose 3 you will get some debug info, please report the 1st part 'til 'use device "DSO-6022BE" serial number ...':

OpenHantek6022 (20220715 - commit 1034)
1 ms: OpenHantek6022 - version 20220715 - commit 1034
1 ms: create openHantekApplication
103 ms: set "Fusion" style
104 ms: set RT FIFO scheduler
104 ms: load translations for locale "de_DE"
104 ms: init libusb
112 ms: show splash screen
 FindDevices::FindDevices()
  FindDevices::updateDeviceList()
  +++ "0x1100000004b40000" "DSO-6022BE"
  DevicesListModel::updateDeviceList() "DSO-6022BE" upload firmware
  FindDevices::updateDeviceList()
  --- "0x1100000004b40000" "DSO-6022BE"
  FindDevices::updateDeviceList()
  +++ "0x1100000004b50210" "DSO-6022BE"
  DevicesListModel::updateDeviceList() "DSO-6022BE" can connect
2036 ms: use device "DSO-6022BE" serial number "C3B36055284A"
  1. It sees device w/o FW (VID 04b4, FW 0000) added to USB
    +++ "0x1100000004b40000" "DSO-6022BE"
  2. Uploads FW, the device w/o FW vanishes from USB
    --- "0x1100000004b40000" "DSO-6022BE"
  3. Finally a device with FW0210 (VID 04b5, FW 0210) appears on USB
    +++ "0x1100000004b50210" "DSO-6022BE"
rechnermusik commented 2 years ago

Strange, today it shows 0210 firmware using the stable build. But it still crashes as soon as I plug the probe into the BNC jack.

hantek
rechnermusik commented 2 years ago

Actually, I don't even need to plug the probe, it will crash on it's own.

Screenshot 2022-07-21 at 1 30 40 PM
Ho-Ro commented 2 years ago

It looks like the USB communication stops and as a result the program crashes, same behaviour when I unplug my scope (bulkReadMulti error).

bulkReadMulti: Getting sample data failed:  "No such device (it may have been disconnected)"
OpenHantek6022 controlWrite: stop sampling failed:  "No such device (it may have been disconnected)"
controlWrite: stop sampling failed:  "No such device (it may have been disconnected)"
has stopped after OpenHantek: ../../libusb/os/threads_posix.h:46: usbi_mutex_lock: Assertion `pthread_mutex_lock(mutex) == 0' failed.

What does dmesg say?

rechnermusik commented 2 years ago
Screenshot 2022-07-21 at 1 59 05 PM
Ho-Ro commented 2 years ago

This is my dmesg output when I plug in the scope and start the program:

[Jul22 09:51] usb 1-1: new high-speed USB device number 24 using ehci-pci
[  +0,156445] usb 1-1: New USB device found, idVendor=04b4, idProduct=6022, bcdDevice= 0.00
[  +0,000009] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ +15,956007] usb 1-1: USB disconnect, device number 24
[  +1,531516] usb 1-1: new high-speed USB device number 25 using ehci-pci
[  +0,165112] usb 1-1: New USB device found, idVendor=04b5, idProduct=6022, bcdDevice= 2.10
[  +0,000008] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  +0,000006] usb 1-1: Product: DSO-6022BE
[  +0,000004] usb 1-1: Manufacturer: OpenHantek
[  +0,000004] usb 1-1: SerialNumber: C3B36055284A

Other devices on the same USB bus? I find my 6022 as device 25 on Bus 001 and the tree shows that there's only this device 25 on Bus01.Port1.Port1

lsusb
...
Bus 001 Device 025: ID 04b5:6022 ROHM LSI Systems USA, LLC DSO-6022BE
...
lsusb -t
...
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/6p, 480M
    |__ Port 1: Dev 25, If 0, Class=Vendor Specific Class, Driver=usbfs, 480M
...

Next steps:

Ho-Ro commented 2 years ago

It seems as if the problem has magically solved itself - I am closing this issue.

HTD commented 2 years ago

I'm not sure about it. I had the same issue on the latest unstable Windows version. The problem was triggered not just with touching the probe but feeding the scope with a nice digital signal. I just set the scope to reproduce the issue, then CLOSED the app to have my settings saved and this caused the problem doesn't occur anymore. Like it was something in the settings that is fixed when the app is normally closed, not crashed.

Ho-Ro commented 2 years ago

Just an idea, if this crash happens it could solve the issue when you start the next time with OpenHantek --resetSettings. I can check if there's a regression introduced by a change in config storage structure - in this case I can increase the config version number - this will automatically restart with a clean config on first invocation.

rechnermusik commented 2 years ago

Hi everyone, I've been away hospitalised for a while but I came back to test with the latest version and Ho-Ro's suggestions. Still getting similar results. Crashes immediately when the probe is already connected, or crashes at the point when I (barely) touch the test/ground terminals with my hand, or begin to plug the probe into the BNC connector.

image
osboxes@osboxes:~$ OpenHantek --resetSettings
OpenHantek6022 (3.3.1)
Graphic: 2.1 Mesa 20.3.5 - GLSL version 1.20
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
Sending control command e6 failed: No such device (it may have been disconnected)
OpenHantek6022 Sending control command e6 failed: No such device (it may have been disconnected)
controlWrite: stop sampling failed:  "No such device (it may have been disconnected)"
controlWrite: stop sampling failed:  "No such device (it may have been disconnected)"
has stopped after OpenHantek: ../../libusb/os/threads_posix.h:46: usbi_mutex_lock: Assertion `pthread_mutex_lock(mutex) == 0' failed.
Aborted
osboxes@osboxes:~$ OpenHantek --resetSettings
OpenHantek6022 (3.3.1)
Graphic: 2.1 Mesa 20.3.5 - GLSL version 1.20
bulkReadMulti: Getting sample data failed:  "Input/Output Error"
controlWrite: Getting sample data failed:  "No such device (it may have been disconnected)"
OpenHantek6022 controlWrite: stop sampling failed:  "No such device (it may have been disconnected)"
controlWrite: stop sampling failed:  "No such device (it may have been disconnected)"
has stopped after 7 s
osboxes@osboxes:~$ OpenHantek --resetSettings
OpenHantek6022 (3.3.1)
Graphic: 2.1 Mesa 20.3.5 - GLSL version 1.20
bulkReadMulti: Getting sample data failed:  "Input/Output Error"
controlWrite: Getting sample data failed:  "No such device (it may have been disconnected)"
OpenHantek6022 controlWrite: stop sampling failed:  "No such device (it may have been disconnected)"
controlWrite: stop sampling failed:  "No such device (it may have been disconnected)"
has stopped after 5 s
osboxes@osboxes:~$ OpenHantek --resetSettings
OpenHantek6022 (3.3.1)
Graphic: 2.1 Mesa 20.3.5 - GLSL version 1.20
bulkReadMulti: Getting sample data failed:  "Input/Output Error"
controlWrite: Getting sample data failed:  "No such device (it may have been disconnected)"
OpenHantek6022 controlWrite: stop sampling failed:  "No such device (it may have been disconnected)"
controlWrite: Getting sample data failed:  "No such device (it may have been disconnected)"
controlWrite: stop sampling failed:  "No such device (it may have been disconnected)"
has stopped after 19 s
osboxes@osboxes:~$
Ho-Ro commented 2 years ago

If this issue would be triggered by an incompatible setup storage it would ge away when calling with OpenHantek --resetSettings, but also without the option OH would announce a kind of "index out of range" or similar on the command line before crash. It seems your issue is caused by a weak USB connection - did you check the cable, use another port, check on another computer etc.