Bug 1517 - Hantek 4032L: Failed to open device generic/unspecified error
Summary: Hantek 4032L: Failed to open device generic/unspecified error
Status: RESOLVED WORKSFORME
Alias: None
Product: PulseView
Classification: Unclassified
Component: Acquisition (show other bugs)
Version: unreleased development snapshot
Hardware: x86 Windows
: Normal normal
Target Milestone: ---
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-03-06 00:25 CET by Paul
Modified: 2020-04-09 00:42 CEST (History)
2 users (show)



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Paul 2020-03-06 00:25:36 CET
I have tried selecting my Hantek HL4032L Logic Analyzer with both 0.4.1 release and 0.5.0-git-533b67b versions. When I choose my device from the "Connect to Device" dialog, I get the "Failed to open device generic/unspecified error"
Comment 1 Soeren Apel 2020-03-06 00:31:05 CET
Please set the log level to 5 in the settings menu, try to connect again and attach the log here.

Also check https://sigrok.org/wiki/Windows#My_device_is_not_found_or_usable_.28USB.2Fdriver.2Ffirmware.2Fhardware_issues.29 to see if you missed anything.
Comment 2 Paul 2020-03-06 01:04:19 CET
Thanks for the quick response.

Error in the log is:

sr: hwdriver: Scan found 0 devices (rigol-ds).
sr: hwdriver: Scan found 0 devices (saleae-logic-pro).
sr: hwdriver: Scan found 0 devices (saleae-logic16).
sr: hwdriver: Scan found 0 devices (siglent-sds).
sr: hwdriver: Scan found 0 devices (sysclk-lwla).
sr: hwdriver: Scan found 0 devices (sysclk-sla5032).
sr: hwdriver: Scan found 0 devices (yokogawa-dlm).
sr: hwdriver: Scan found 0 devices (zeroplus-logic-cube).
sr: device: hantek-4032l: Opening device instance.
hantek-4032l: Failed to open device: LIBUSB_ERROR_NOT_SUPPORTED.
sr: hantek-4032l: Unable to open device.
Notifying user of session error: "generic/unspecified error"
Comment 3 Paul 2020-03-06 01:20:14 CET
I just tried it on my other Windows 7 x64 machine - same problem there.
Comment 4 Paul 2020-03-06 01:26:16 CET
Aha! I ran Zadig twice and that seems to be working now. :-)
Comment 5 Paul 2020-03-06 02:06:40 CET
This has stopped working again. Pulseview was working OK. I tried modifying the sample rates etc to see a bigger range of data and then I just got sample data at all.

I tried reconnecting the USB cable to the Hantek and Pulseview froze. I killed it with Task Manager and it got the "generc/unspecfied error" again. Tried Zadig.. that froze so I rebooted my PC.

I uninstalled the Hantek driver via Device Manager and ran Zadig 3 times until I saw the LA-4032 under the "USB device" node.

Now when I start Pulseview I still get the same error.

sr: backend: libsigrok 0.6.0-git-8491cf7/4:0:0.
sr: backend: Libs: glib 2.44.1 (rt: 2.44.1/4401:1), libzip 1.5.1, libserialport 0.1.1/1:0:1 (rt: 0.1.1/1:0:1), libusb-1.0 1.0.20.11003-rc3 API 0x01000104, hidapi 0.8.0-rc1, libftdi 1.4.
sr: backend: Host: i686-w64-mingw32.static.posix, little-endian.
sr: backend: SCPI backends: TCP, serial, USBTMC.
sr: backend: Firmware search paths:
sr: backend: - C:\Users\Owner\AppData\Local\sigrok-firmware
sr: backend: - C:\ProgramData\sigrok-firmware
sr: backend: - C:\Users\Public\Documents\sigrok-firmware
sr: backend: - C:\Program Files (x86)\sigrok\PulseView\share\sigrok-firmware
sr: backend: - C:\Program Files (x86)\sigrok\PulseView\share\sigrok-firmware
sr: backend: Sanity-checking all drivers.
sr: backend: Sanity-checking all input modules.
sr: backend: Sanity-checking all output modules.
sr: backend: Sanity-checking all transform modules.
srd: libsigrokdecode 0.6.0-git-9677dcf/4:0:0 (rt: 0.6.0-git-9677dcf/4:0:0).
srd: Libs: glib 2.44.1 (rt: 2.44.1/4401:1), Python 3.4.4 / 0x30404f0 (API 1013, ABI 3).
srd: Host: i686-w64-mingw32.static.posix, little-endian.
srd: Initializing libsigrokdecode.
srd: Adding 'C:\Program Files (x86)\sigrok\PulseView\share\libsigrokdecode\decoders' to module path.
srd: Adding 'C:\Program Files (x86)\sigrok\PulseView\share\libsigrokdecode\decoders' to module path.
srd: Protocol decoder search paths:
srd: - C:\Program Files (x86)\sigrok\PulseView\share\libsigrokdecode\decoders
srd: - C:\Program Files (x86)\sigrok\PulseView\share\libsigrokdecode\decoders
srd: Python system search paths:
srd: - C:\Program Files (x86)\sigrok\PulseView\share\libsigrokdecode\decoders
srd: - C:\Program Files (x86)\sigrok\PulseView\share\libsigrokdecode\decoders
srd: - C:\Program Files (x86)\sigrok\PulseView\python34.zip
srd: - C:\Program Files (x86)\sigrok\PulseView\DLLs
srd: - C:\Program Files (x86)\sigrok\PulseView\lib
srd: - C:\Program Files (x86)\sigrok\PulseView
sr: hwdriver: Scan found 0 devices (asix-sigma).
sr: hwdriver: Scan found 0 devices (chronovu-la).
sr: demo: Generating square pattern.
sr: demo: Generating sine pattern.
sr: demo: Generating triangle pattern.
sr: demo: Generating sawtooth pattern.
sr: hwdriver: Scan found 1 devices (demo).
sr: hwdriver: Scan found 0 devices (dreamsourcelab-dslogic).
sr: ftdi-la: Failed to get the FTDI strings: -4
sr: hwdriver: Scan found 0 devices (ftdi-la).
sr: hwdriver: Scan found 0 devices (fx2lafw).
sr: hwdriver: Scan found 0 devices (gwinstek-gds-800).
sr: hwdriver: Scan found 0 devices (hameg-hmo).
sr: hwdriver: Scan found 1 devices (hantek-4032l).
sr: hwdriver: Scan found 0 devices (hantek-6xxx).
sr: hwdriver: Scan found 0 devices (hantek-dso).
sr: hwdriver: Scan found 0 devices (ikalogic-scanalogic2).
sr: hwdriver: Scan found 0 devices (ikalogic-scanaplus).
sr: hwdriver: Scan found 0 devices (ipdbg-la).
sr: hwdriver: Scan found 0 devices (lecroy-logicstudio).
sr: hwdriver: Scan found 0 devices (lecroy-xstream).
sr: hwdriver: Scan found 0 devices (microchip-pickit2).
sr: hwdriver: Scan found 0 devices (ols).
sr: hwdriver: Scan found 0 devices (p-ols).
sr: hwdriver: Scan found 0 devices (rigol-ds).
sr: hwdriver: Scan found 0 devices (saleae-logic-pro).
sr: hwdriver: Scan found 0 devices (saleae-logic16).
sr: hwdriver: Scan found 0 devices (siglent-sds).
sr: hwdriver: Scan found 0 devices (sysclk-lwla).
sr: hwdriver: Scan found 0 devices (sysclk-sla5032).
sr: hwdriver: Scan found 0 devices (yokogawa-dlm).
sr: hwdriver: Scan found 0 devices (zeroplus-logic-cube).
sr: device: hantek-4032l: Opening device instance.
hantek-4032l: Unable to claim interface: LIBUSB_ERROR_NOT_FOUND.
Notifying user of session error: "generic/unspecified error"
sr: hwdriver: Scan found 1 devices (hantek-4032l).
sr: device: hantek-4032l: Opening device instance.
hantek-4032l: Failed to open device: LIBUSB_ERROR_ACCESS.
sr: hantek-4032l: Unable to open device.
Notifying user of session error: "generic/unspecified error"
sr: hwdriver: Scan found 1 devices (hantek-4032l).
sr: device: hantek-4032l: Opening device instance.
hantek-4032l: Unable to claim interface: LIBUSB_ERROR_NOT_FOUND.
Notifying user of session error: "generic/unspecified error"
sr: hwdriver: Scan found 1 devices (hantek-4032l).
sr: device: hantek-4032l: Opening device instance.
hantek-4032l: Failed to open device: LIBUSB_ERROR_ACCESS.
sr: hantek-4032l: Unable to open device.
Notifying user of session error: "generic/unspecified error"
Notifying user of session error: "No active device set, can't start acquisition."
sr: hwdriver: Scan found 1 devices (hantek-4032l).
sr: device: hantek-4032l: Opening device instance.
hantek-4032l: Unable to claim interface: LIBUSB_ERROR_NOT_FOUND.
Notifying user of session error: "generic/unspecified error"
Comment 6 Soeren Apel 2020-03-06 08:43:46 CET
> I tried reconnecting the USB cable to the Hantek and Pulseview froze.

Generally speaking, it's usually a good idea to close the program that's using a certain piece of hardware when intending to reconnect it - libsigrok is currently unable to handle such a situation and crashes, as you have experienced.

That said, that didn't have an impact on the driver situation and if the drivers had been confused about the device's state, a reboot would've remedied that.

Unfortunately, Windows drivers are much like voodoo and it's something that's hard to debug for end users. They shouldn't be in the need to do so in the first place, but it is what it is.


Did you try a reboot after you goto PulseView to recognize the device again? Also, unplugging and unpowering the device may also help.
Comment 7 Uwe Hermann 2020-04-09 00:42:40 CEST
I just tested with on Windows 10. Works fine for me, thus closing the bug.

As per discussion and wiki, you need to assign the WinUSB driver via Zadig (once should be sufficient, I don't see a reason why it would be required multiple times atm). In my test, once was indeed sufficient.

As mentioned, replugging the device while PulseView is running is currently not possible/supported, you need to close PulseView, replug, re-open PulseView.

I tested a bunch of different acquisitions in a row, different sampletimes, different samplerates, all seems to work fine for me.

If this issue persists, a reboot might indeed help if it's some weird Windows issue, and/or different USB ports and USB cables if it's hardware related maybe. 

Also, make sure the external power supply is attached to the device, I don't know whether it would work without that or not.

If further assistance is needed, please drop by in the #sigrok IRC channel for more "live" debugging help.