You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
|
Aug
(3) |
Sep
|
Oct
|
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
|
Oct
(3) |
Nov
(4) |
Dec
|
2008 |
Jan
(1) |
Feb
(5) |
Mar
(2) |
Apr
|
May
(8) |
Jun
(4) |
Jul
|
Aug
|
Sep
(11) |
Oct
|
Nov
|
Dec
(20) |
2009 |
Jan
(16) |
Feb
(7) |
Mar
(9) |
Apr
(4) |
May
(6) |
Jun
(17) |
Jul
(3) |
Aug
(4) |
Sep
(5) |
Oct
(10) |
Nov
(16) |
Dec
|
2010 |
Jan
(22) |
Feb
(18) |
Mar
(9) |
Apr
(102) |
May
(29) |
Jun
(40) |
Jul
(80) |
Aug
(21) |
Sep
(47) |
Oct
(13) |
Nov
(19) |
Dec
(45) |
2011 |
Jan
(82) |
Feb
(20) |
Mar
(47) |
Apr
(25) |
May
(18) |
Jun
(24) |
Jul
(24) |
Aug
(47) |
Sep
(23) |
Oct
(22) |
Nov
(69) |
Dec
(20) |
2012 |
Jan
(56) |
Feb
(42) |
Mar
(43) |
Apr
(27) |
May
(18) |
Jun
(11) |
Jul
(61) |
Aug
(19) |
Sep
(13) |
Oct
(49) |
Nov
(32) |
Dec
(37) |
2013 |
Jan
(46) |
Feb
(14) |
Mar
(13) |
Apr
(20) |
May
(20) |
Jun
(3) |
Jul
(19) |
Aug
(7) |
Sep
(4) |
Oct
(33) |
Nov
(7) |
Dec
(15) |
2014 |
Jan
(5) |
Feb
(21) |
Mar
(3) |
Apr
(3) |
May
(30) |
Jun
(1) |
Jul
(30) |
Aug
(2) |
Sep
(22) |
Oct
(14) |
Nov
(22) |
Dec
(6) |
2015 |
Jan
(7) |
Feb
(4) |
Mar
(16) |
Apr
(9) |
May
(17) |
Jun
(28) |
Jul
(3) |
Aug
(18) |
Sep
(3) |
Oct
|
Nov
(6) |
Dec
(3) |
2016 |
Jan
(15) |
Feb
(18) |
Mar
(12) |
Apr
(14) |
May
(15) |
Jun
(3) |
Jul
(3) |
Aug
(42) |
Sep
(24) |
Oct
(6) |
Nov
(5) |
Dec
(6) |
2017 |
Jan
(6) |
Feb
(2) |
Mar
(12) |
Apr
|
May
(1) |
Jun
(3) |
Jul
(2) |
Aug
(6) |
Sep
|
Oct
(1) |
Nov
(5) |
Dec
(7) |
2018 |
Jan
|
Feb
(9) |
Mar
(7) |
Apr
|
May
(10) |
Jun
(20) |
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2019 |
Jan
(20) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(9) |
Dec
|
2020 |
Jan
(1) |
Feb
|
Mar
(1) |
Apr
(5) |
May
(2) |
Jun
|
Jul
|
Aug
|
Sep
(5) |
Oct
|
Nov
(8) |
Dec
(2) |
2021 |
Jan
(16) |
Feb
(1) |
Mar
|
Apr
(9) |
May
(4) |
Jun
|
Jul
|
Aug
|
Sep
(2) |
Oct
(2) |
Nov
|
Dec
(1) |
2022 |
Jan
|
Feb
(7) |
Mar
|
Apr
(4) |
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2023 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2024 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
(2) |
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Jonas M. <jo...@pr...> - 2021-05-10 15:26:12
|
On Mon, May 10, 2021 at 02:45:56PM +0100, Bruno Rocha wrote: > Hello, > > I'm developping a solution that needs to read raw data from 3DConnexion > SpaceMouse Wireless and then send it via sockets to another application. I > was able to do it with the SpaceMouse cabled but I've been unable to do it > via the wireless receiver. > > I seeked help on 3D Connexion forums but everything I managed to get was > the following info: > > The Universal Receiver (UR) can pair up to five wireless devices, each on a > separate USB interface. Within each interface, you will find a set of > top-level collections (as per the HID specification; these are also known > as "application collections"). There's one top-level collection if the > interface has no pairing, two if the pairing is for a SpaceMouse and three > for a CadMouse type. You're interested in the second case. The two > top-level collections (all in the "generic" desktop usage page) consist of > a "multi-axis controller" usage collection (ID 0x08) and a "vendor-defined" > collection. You want to use the former. > > Meanwhile, I've managed to read the data with pywinusb. Pywinusb detects > 6/7 devices and one (only one) of them is able to read the data. But I > would like to do it with pyusb as I'd also want to be linux supported. Any > help will be very appreciated, thank you` Since those are HIDs, and apparently also (at least partially) compliant with that spec, I suggest that you take a look at hidapi before trying to recreate it with PyUSB. https://github.com/libusb/hidapi/ https://github.com/trezor/cython-hidapi > > Best Regards > _______________________________________________ > pyusb-users mailing list > pyu...@li... > https://lists.sourceforge.net/lists/listinfo/pyusb-users |
From: Bruno R. <dc...@gm...> - 2021-05-10 13:46:19
|
Hello, I'm developping a solution that needs to read raw data from 3DConnexion SpaceMouse Wireless and then send it via sockets to another application. I was able to do it with the SpaceMouse cabled but I've been unable to do it via the wireless receiver. I seeked help on 3D Connexion forums but everything I managed to get was the following info: The Universal Receiver (UR) can pair up to five wireless devices, each on a separate USB interface. Within each interface, you will find a set of top-level collections (as per the HID specification; these are also known as "application collections"). There's one top-level collection if the interface has no pairing, two if the pairing is for a SpaceMouse and three for a CadMouse type. You're interested in the second case. The two top-level collections (all in the "generic" desktop usage page) consist of a "multi-axis controller" usage collection (ID 0x08) and a "vendor-defined" collection. You want to use the former. Meanwhile, I've managed to read the data with pywinusb. Pywinusb detects 6/7 devices and one (only one) of them is able to read the data. But I would like to do it with pyusb as I'd also want to be linux supported. Any help will be very appreciated, thank you` Best Regards |
From: Xiaofan C. <xia...@gm...> - 2021-04-28 08:36:10
|
On Wed, Apr 28, 2021 at 10:04 AM CM-Wu Ben - 吳文鐘 <be...@cm...> wrote: > The device I'm testing is a composite device, which has audio interface within it. > Do windows audio driver support the handling of control transfer ? > If yes, is it possible to send control transfer via audio driver? how to do it > using libusb backend? > Thanks > Take note libusb does not support audio driver. You have to use WinUSB driver or other supported driver. If you have control of the device FW, I will suggest you create one extra interface with just the control endpoint, then you can use WinUSB driver for that interface and you can use libusb. -- Xiaofan |
From: Jonas M. <jo...@pr...> - 2021-04-28 06:12:46
|
On Wed, Apr 28, 2021 at 01:49:30AM +0000, CM-Wu Ben - 吳文鐘 wrote: > 寄件者: Jonas Malaco via pyusb-users <pyu...@li...> > 寄件日期: 2021年4月27日 下午 05:16 > 收件者: pyu...@li... <pyu...@li...> > 副本: Jonas Malaco <jo...@pr...> > 主旨: Re: [pyusb-users] help on win7: Entity not found > > On Tue, Apr 27, 2021 at 08:18:09AM +0000, CM-Wu Ben - 吳文鐘 wrote: > > Hi, > > I got a problem when dealing with control transfer on win7. > > > > After set backend(libusb1), find usb device, I can send standard/class USB request via dev.ctrl_transfer() successfully, but failed when sending vendor request. > > > > the reason is 'Entity not found' > > Is there any restrictions when sending vendor request? > > Not generally, no. > > But the OS driver may not support it (e.g. Windows Generic HID). > > Try running with LIBUSB_DEBUG=4, that may give you some useful > information. > ------------------ > > Thanks for your information. > I tried to run with LIBUSB_DEBUG=4, and found that it is windows HID driver that handle the request, which does not support it. > > The device I'm testing is a composite device, which has audio interface within it. > Do windows audio driver support the handling of control transfer ? I don't know. And even if it does, it and/or the device may only accept control transfers through it that are related to that particular interface. My suggestion is for you to install WinUSB with Zadig. See: https://github.com/libusb/libusb/wiki/FAQ#How_to_use_libusb_under_Windows > If yes, is it possible to send control transfer via audio driver? how to do it using libusb backend? Try to ask in the libusb mailling list. Thanks, Jonas > Thanks > > > > 『The information contained in this email and attachment is confidential and is for the use of the intended recipient only. Any disclosure, copying or distribution of this email and attachment without the sender's consent is strictly prohibited. If you are not the intended recipient, please promptly notify the sender and delete this email and attachment entirely without using, retaining, or disclosing any of its contents. The recipient is responsible for ensuring that this email is virus free and the sender accepts no liability for any damages caused by virus transmitted by this email.』 > _______________________________________________ > pyusb-users mailing list > pyu...@li... > https://lists.sourceforge.net/lists/listinfo/pyusb-users |
From: CM-Wu B. - 吳. <be...@cm...> - 2021-04-28 02:04:17
|
寄件者: Jonas Malaco via pyusb-users <pyu...@li...> 寄件日期: 2021年4月27日 下午 05:16 收件者: pyu...@li... <pyu...@li...> 副本: Jonas Malaco <jo...@pr...> 主旨: Re: [pyusb-users] help on win7: Entity not found On Tue, Apr 27, 2021 at 08:18:09AM +0000, CM-Wu Ben - 吳文鐘 wrote: > Hi, > I got a problem when dealing with control transfer on win7. > > After set backend(libusb1), find usb device, I can send standard/class USB request via dev.ctrl_transfer() successfully, but failed when sending vendor request. > > the reason is 'Entity not found' > Is there any restrictions when sending vendor request? Not generally, no. But the OS driver may not support it (e.g. Windows Generic HID). Try running with LIBUSB_DEBUG=4, that may give you some useful information. ------------------ Thanks for your information. I tried to run with LIBUSB_DEBUG=4, and found that it is windows HID driver that handle the request, which does not support it. The device I'm testing is a composite device, which has audio interface within it. Do windows audio driver support the handling of control transfer ? If yes, is it possible to send control transfer via audio driver? how to do it using libusb backend? Thanks 『The information contained in this email and attachment is confidential and is for the use of the intended recipient only. Any disclosure, copying or distribution of this email and attachment without the sender's consent is strictly prohibited. If you are not the intended recipient, please promptly notify the sender and delete this email and attachment entirely without using, retaining, or disclosing any of its contents. The recipient is responsible for ensuring that this email is virus free and the sender accepts no liability for any damages caused by virus transmitted by this email.』 |
From: Jonas M. <jo...@pr...> - 2021-04-27 09:16:37
|
On Tue, Apr 27, 2021 at 08:18:09AM +0000, CM-Wu Ben - 吳文鐘 wrote: > Hi, > I got a problem when dealing with control transfer on win7. > > After set backend(libusb1), find usb device, I can send standard/class USB request via dev.ctrl_transfer() successfully, but failed when sending vendor request. > > the reason is 'Entity not found' > Is there any restrictions when sending vendor request? Not generally, no. But the OS driver may not support it (e.g. Windows Generic HID). Try running with LIBUSB_DEBUG=4, that may give you some useful information. > > following is the debug message.. > > 2021-04-27 15:37:18,888 DEBUG:usb.backend.libusb1:_LibUSB.__init__(<WinDLL '.\libusb-1.0.24\VS2019\MS64\dll\libusb-1.0.dll', handle ef8d0000 at 3576248>) > 2021-04-27 15:37:18,894 DEBUG:usb.backend.libusb1:_LibUSB.enumerate_devices() > 2021-04-27 15:37:18,976 DEBUG:usb.backend.libusb1:_LibUSB.get_device_descriptor(<usb.backend.libusb1._Device object at 0x00000000035DFB88>) > 2021-04-27 15:37:18,976 DEBUG:usb.backend.libusb1:_LibUSB.get_device_descriptor(<usb.backend.libusb1._Device object at 0x00000000035DFE08>) > 2021-04-27 15:37:18,976 DEBUG:usb.backend.libusb1:_LibUSB.get_device_descriptor(<usb.backend.libusb1._Device object at 0x00000000035DFB08>) > 2021-04-27 15:37:18,976 DEBUG:usb.backend.libusb1:_LibUSB.get_device_descriptor(<usb.backend.libusb1._Device object at 0x00000000035DFE48>) > -------------------- standard request: get string id=0xEE > 2021-04-27 15:37:18,977 DEBUG:usb.backend.libusb1:_LibUSB.open_device(<usb.backend.libusb1._Device object at 0x00000000035DFE48>) > 2021-04-27 15:37:18,980 DEBUG:usb.backend.libusb1:_LibUSB.ctrl_transfer(<usb.backend.libusb1._DeviceHandle object at 0x00000000035DFD88>, 128, 6, 1006, 1033, array('B', [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), 1000) > -------------------- class request: write/read interface 3 > 2021-04-27 15:37:18,983 DEBUG:usb.backend.libusb1:_LibUSB.claim_interface(<usb.backend.libusb1._DeviceHandle object at 0x00000000035DFD88>, 3) > 2021-04-27 15:37:18,983 DEBUG:usb.backend.libusb1:_LibUSB.ctrl_transfer(<usb.backend.libusb1._DeviceHandle object at 0x00000000035DFD88>, 33, 9, 513, 3, array('B', [1, 0, 254, 4, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), 1000) > 2021-04-27 15:37:18,986 DEBUG:usb.backend.libusb1:_LibUSB.ctrl_transfer(<usb.backend.libusb1._DeviceHandle object at 0x00000000035DFD88>, 161, 1, 257, 3, array('B', [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), 1000) > -------------------- vendor request: > 2021-04-27 15:37:18,989 DEBUG:usb.backend.libusb1:_LibUSB.ctrl_transfer(<usb.backend.libusb1._DeviceHandle object at 0x00000000035DFD88>, 195, 2, 0, 0, array('B', [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), 1000) > Traceback (most recent call last): > File "D:\Python\myusb.py", line 98, in <module> > vendor_reg_read() > File "D:\Python\myusb.py", line 75, in vendor_reg_read > ret = dev.ctrl_transfer(0xc3, 0x02, 0x00, 0, 0x10) > File "D:\Python\walac-pyusb-3ec29ca\usb\core.py", line 1043, in ctrl_transfer > self.__get_timeout(timeout)) > File "D:\Python\walac-pyusb-3ec29ca\usb\_debug.py", line 60, in do_trace > return f(*args, **named_args) > File "D:\Python\walac-pyusb-3ec29ca\usb\backend\libusb1.py", line 883, in ctrl_transfer > timeout)) > File "D:\Python\walac-pyusb-3ec29ca\usb\backend\libusb1.py", line 595, in _check > raise USBError(_strerror(ret), ret, _libusb_errno[ret]) > usb.core.USBError: [Errno 2] Entity not found > 2021-04-27 15:37:19,003 DEBUG:usb.backend.libusb1:_LibUSB.release_interface(<usb.backend.libusb1._DeviceHandle object at 0x00000000035DFD88>, 3) > 2021-04-27 15:37:19,005 DEBUG:usb.backend.libusb1:_LibUSB.close_device(<usb.backend.libusb1._DeviceHandle object at 0x00000000035DFD88>) > 2021-04-27 15:37:19,005 DEBUG:usb.backend.libusb1:_LibUSB._finalize_object() > > 『The information contained in this email and attachment is confidential and is for the use of the intended recipient only. Any disclosure, copying or distribution of this email and attachment without the sender's consent is strictly prohibited. If you are not the intended recipient, please promptly notify the sender and delete this email and attachment entirely without using, retaining, or disclosing any of its contents. The recipient is responsible for ensuring that this email is virus free and the sender accepts no liability for any damages caused by virus transmitted by this email.』 > _______________________________________________ > pyusb-users mailing list > pyu...@li... > https://lists.sourceforge.net/lists/listinfo/pyusb-users |
From: CM-Wu B. - 吳. <be...@cm...> - 2021-04-27 08:33:40
|
Hi, I got a problem when dealing with control transfer on win7. After set backend(libusb1), find usb device, I can send standard/class USB request via dev.ctrl_transfer() successfully, but failed when sending vendor request. the reason is 'Entity not found' Is there any restrictions when sending vendor request? following is the debug message.. 2021-04-27 15:37:18,888 DEBUG:usb.backend.libusb1:_LibUSB.__init__(<WinDLL '.\libusb-1.0.24\VS2019\MS64\dll\libusb-1.0.dll', handle ef8d0000 at 3576248>) 2021-04-27 15:37:18,894 DEBUG:usb.backend.libusb1:_LibUSB.enumerate_devices() 2021-04-27 15:37:18,976 DEBUG:usb.backend.libusb1:_LibUSB.get_device_descriptor(<usb.backend.libusb1._Device object at 0x00000000035DFB88>) 2021-04-27 15:37:18,976 DEBUG:usb.backend.libusb1:_LibUSB.get_device_descriptor(<usb.backend.libusb1._Device object at 0x00000000035DFE08>) 2021-04-27 15:37:18,976 DEBUG:usb.backend.libusb1:_LibUSB.get_device_descriptor(<usb.backend.libusb1._Device object at 0x00000000035DFB08>) 2021-04-27 15:37:18,976 DEBUG:usb.backend.libusb1:_LibUSB.get_device_descriptor(<usb.backend.libusb1._Device object at 0x00000000035DFE48>) -------------------- standard request: get string id=0xEE 2021-04-27 15:37:18,977 DEBUG:usb.backend.libusb1:_LibUSB.open_device(<usb.backend.libusb1._Device object at 0x00000000035DFE48>) 2021-04-27 15:37:18,980 DEBUG:usb.backend.libusb1:_LibUSB.ctrl_transfer(<usb.backend.libusb1._DeviceHandle object at 0x00000000035DFD88>, 128, 6, 1006, 1033, array('B', [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), 1000) -------------------- class request: write/read interface 3 2021-04-27 15:37:18,983 DEBUG:usb.backend.libusb1:_LibUSB.claim_interface(<usb.backend.libusb1._DeviceHandle object at 0x00000000035DFD88>, 3) 2021-04-27 15:37:18,983 DEBUG:usb.backend.libusb1:_LibUSB.ctrl_transfer(<usb.backend.libusb1._DeviceHandle object at 0x00000000035DFD88>, 33, 9, 513, 3, array('B', [1, 0, 254, 4, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), 1000) 2021-04-27 15:37:18,986 DEBUG:usb.backend.libusb1:_LibUSB.ctrl_transfer(<usb.backend.libusb1._DeviceHandle object at 0x00000000035DFD88>, 161, 1, 257, 3, array('B', [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), 1000) -------------------- vendor request: 2021-04-27 15:37:18,989 DEBUG:usb.backend.libusb1:_LibUSB.ctrl_transfer(<usb.backend.libusb1._DeviceHandle object at 0x00000000035DFD88>, 195, 2, 0, 0, array('B', [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), 1000) Traceback (most recent call last): File "D:\Python\myusb.py", line 98, in <module> vendor_reg_read() File "D:\Python\myusb.py", line 75, in vendor_reg_read ret = dev.ctrl_transfer(0xc3, 0x02, 0x00, 0, 0x10) File "D:\Python\walac-pyusb-3ec29ca\usb\core.py", line 1043, in ctrl_transfer self.__get_timeout(timeout)) File "D:\Python\walac-pyusb-3ec29ca\usb\_debug.py", line 60, in do_trace return f(*args, **named_args) File "D:\Python\walac-pyusb-3ec29ca\usb\backend\libusb1.py", line 883, in ctrl_transfer timeout)) File "D:\Python\walac-pyusb-3ec29ca\usb\backend\libusb1.py", line 595, in _check raise USBError(_strerror(ret), ret, _libusb_errno[ret]) usb.core.USBError: [Errno 2] Entity not found 2021-04-27 15:37:19,003 DEBUG:usb.backend.libusb1:_LibUSB.release_interface(<usb.backend.libusb1._DeviceHandle object at 0x00000000035DFD88>, 3) 2021-04-27 15:37:19,005 DEBUG:usb.backend.libusb1:_LibUSB.close_device(<usb.backend.libusb1._DeviceHandle object at 0x00000000035DFD88>) 2021-04-27 15:37:19,005 DEBUG:usb.backend.libusb1:_LibUSB._finalize_object() 『The information contained in this email and attachment is confidential and is for the use of the intended recipient only. Any disclosure, copying or distribution of this email and attachment without the sender's consent is strictly prohibited. If you are not the intended recipient, please promptly notify the sender and delete this email and attachment entirely without using, retaining, or disclosing any of its contents. The recipient is responsible for ensuring that this email is virus free and the sender accepts no liability for any damages caused by virus transmitted by this email.』 |
From: Jonas M. <jo...@pr...> - 2021-04-25 21:45:06
|
On Sun, Apr 25, 2021 at 08:54:20PM +0300, Арам Абовян wrote: > thanks for the previous answer. I also get the error. > > > When I applied the following few lines in IDLE Python GUI: > > import usb.core > > dev = usb.core.find(idVendor=0x10c4, idProduct=0xea61) > ep = dev[0].interfaces()[0].endpoints()[0] > i = dev[0].interfaces()[0].bInterfaceNumber > dev.reset() > > if dev.is_kernel_driver_active(i): > dev.datach_kernel_driver(i) The is_kernel_driver_active() and detach_kernel_driver() methods are not implemented by LibUSB on Windows.[1] If you still need to detach the driver, that is, if the current OS driver is not compatible with LibUSB, you must to it manually: the recommended method on Windows is to use Zadig,[2] and suggest you stick with the WinUSB option unless you have a good reason not to. That said, don't replace the driver if you don't need to; you could unintentionally block access to the device from other programs, as well as invite problems from potential corner cases. [1] https://libusb.sourceforge.io/api-1.0/group__libusb__dev.html#ga1cabd4660a274f715eeb82de112e0779 [2] https://github.com/libusb/libusb/wiki/FAQ#How_to_use_libusb_under_Windows Jonas > > dev.set_configuration() > eaddr = ep.bEndpointAddress > > r = dev.read(eaddr, 1024) > > print(r) > > > I have got the following response : > Traceback (most recent call last): > File "C:\Users\Администратор\Desktop\davis\main.py", line 17, in <module> > if dev.is_kernel_driver_active(i): > File > "C:\Users\Администратор\Desktop\davis\venv\lib\site-packages\usb\core.py", > line 1098, in is_kernel_driver_active > return self._ctx.backend.is_kernel_driver_active( > File > "C:\Users\Администратор\Desktop\davis\venv\lib\site-packages\usb\backend\libusb1.py", > line 915, in is_kernel_driver_active > return > bool(_check(self.lib.libusb_kernel_driver_active(dev_handle.handle, > File > "C:\Users\Администратор\Desktop\davis\venv\lib\site-packages\usb\backend\libusb1.py", > line 600, in _check > raise NotImplementedError(_strerror(ret)) > NotImplementedError: Operation not supported or unimplemented on this > platform > > > чт, 22 апр. 2021 г., 15:36 Jonas Malaco via pyusb-users < > pyu...@li...>: > > > On Thu, Apr 22, 2021 at 01:38:58PM +0300, Арам Абовян wrote: > > > ---------- Forwarded message --------- > > > От: Aram Abovyan <abo...@ya...> > > > Date: чт, 22 апр. 2021 г., 13:37 > > > Subject: > > > To: abo...@gm... <abo...@gm...> > > > > > > > > > I am very new to PyUSB and any help from PyUSB experts will be highly > > > appreciated. . > > > > > > When I applied the following few lines in IDLE Python GUI, > > > --------------------------------------------------------------- > > > > > > import os > > > os.environ['PYUSB_DEBUG'] = 'debug'import usb.core > > > usb.core.find() > > > > > > ---------------------------------------------------------------- > > > > > > I have got the following response : > > > > > > ======================= ======================= > > > > > > > > > > > > 2021-04-22 10:29:59,680 > > DEBUG:usb.backend.libusb1:_LibUSB.__init__(<WinDLL > > 'C:\Windows\system32\libusb-1.0.dll', handle 6b600000 at 0x3dc53fd250>) > > > 2021-04-22 10:29:59,688 INFO:usb.core:find(): using backend > > "usb.backend.libusb1" > > > 2021-04-22 10:29:59,688 > > DEBUG:usb.backend.libusb1:_LibUSB.enumerate_devices() > > > 2021-04-22 10:30:02,122 > > DEBUG:usb.backend.libusb1:_LibUSB.get_device_descriptor(<usb.backend.libusb1._Device > > object at 0x0000003DC73C5DC0>) > > > 2021-04-22 10:30:02,123 > > DEBUG:usb.backend.libusb1:_LibUSB._finalize_object() > > > > > > > > > > > > I have googled that, but did not understand much from the serach- > > > results. > > > > There is absolutely nothing wrong here. > > > > You enabled PYUSB_DEBUG, and called usb.core.find(). > > > > The default is for find() to find (at most) a single USB device, which, > > according to the debug output, it did (even though it appears that you > > omitted the IDLE output that looks something like `<DEVICE ID ffff:ffff > > on Bus 001 Address 001>`). > > > > Maybe you wanted to store the device returned by find() somewhere? > > > > Also, generally speaking, you either want to find one of a specific device > > usb.core.find(idVendor=<...>, idProduct=<...>) > > or all devices (optionally also filtering by idVendor and/or idProduct) > > usb.core.find(find_all=True) > > usb.core.find(find_all=True, idVendor=<...>) > > usb.core.find(find_all=True, idVendor=<...>, idProduct=<...>) > > but rarely do you need a single randomly picked device. > > > > My suggestion is for you to (continue to) follow the PyUSB tutorial: > > https://github.com/pyusb/pyusb/blob/master/docs/tutorial.rst > > > > Thanks, > > Jonas > > > > > > > > > > > What am I missing out? > > > > > > > _______________________________________________ > > > pyusb-users mailing list > > > pyu...@li... > > > https://lists.sourceforge.net/lists/listinfo/pyusb-users > > > > > > > > _______________________________________________ > > pyusb-users mailing list > > pyu...@li... > > https://lists.sourceforge.net/lists/listinfo/pyusb-users > > > _______________________________________________ > pyusb-users mailing list > pyu...@li... > https://lists.sourceforge.net/lists/listinfo/pyusb-users |
From: Арам А. <abo...@gm...> - 2021-04-25 17:54:49
|
thanks for the previous answer. I also get the error. When I applied the following few lines in IDLE Python GUI: import usb.core dev = usb.core.find(idVendor=0x10c4, idProduct=0xea61) ep = dev[0].interfaces()[0].endpoints()[0] i = dev[0].interfaces()[0].bInterfaceNumber dev.reset() if dev.is_kernel_driver_active(i): dev.datach_kernel_driver(i) dev.set_configuration() eaddr = ep.bEndpointAddress r = dev.read(eaddr, 1024) print(r) I have got the following response : Traceback (most recent call last): File "C:\Users\Администратор\Desktop\davis\main.py", line 17, in <module> if dev.is_kernel_driver_active(i): File "C:\Users\Администратор\Desktop\davis\venv\lib\site-packages\usb\core.py", line 1098, in is_kernel_driver_active return self._ctx.backend.is_kernel_driver_active( File "C:\Users\Администратор\Desktop\davis\venv\lib\site-packages\usb\backend\libusb1.py", line 915, in is_kernel_driver_active return bool(_check(self.lib.libusb_kernel_driver_active(dev_handle.handle, File "C:\Users\Администратор\Desktop\davis\venv\lib\site-packages\usb\backend\libusb1.py", line 600, in _check raise NotImplementedError(_strerror(ret)) NotImplementedError: Operation not supported or unimplemented on this platform чт, 22 апр. 2021 г., 15:36 Jonas Malaco via pyusb-users < pyu...@li...>: > On Thu, Apr 22, 2021 at 01:38:58PM +0300, Арам Абовян wrote: > > ---------- Forwarded message --------- > > От: Aram Abovyan <abo...@ya...> > > Date: чт, 22 апр. 2021 г., 13:37 > > Subject: > > To: abo...@gm... <abo...@gm...> > > > > > > I am very new to PyUSB and any help from PyUSB experts will be highly > > appreciated. . > > > > When I applied the following few lines in IDLE Python GUI, > > --------------------------------------------------------------- > > > > import os > > os.environ['PYUSB_DEBUG'] = 'debug'import usb.core > > usb.core.find() > > > > ---------------------------------------------------------------- > > > > I have got the following response : > > > > ======================= ======================= > > > > > > > > 2021-04-22 10:29:59,680 > DEBUG:usb.backend.libusb1:_LibUSB.__init__(<WinDLL > 'C:\Windows\system32\libusb-1.0.dll', handle 6b600000 at 0x3dc53fd250>) > > 2021-04-22 10:29:59,688 INFO:usb.core:find(): using backend > "usb.backend.libusb1" > > 2021-04-22 10:29:59,688 > DEBUG:usb.backend.libusb1:_LibUSB.enumerate_devices() > > 2021-04-22 10:30:02,122 > DEBUG:usb.backend.libusb1:_LibUSB.get_device_descriptor(<usb.backend.libusb1._Device > object at 0x0000003DC73C5DC0>) > > 2021-04-22 10:30:02,123 > DEBUG:usb.backend.libusb1:_LibUSB._finalize_object() > > > > > > > > I have googled that, but did not understand much from the serach- > > results. > > There is absolutely nothing wrong here. > > You enabled PYUSB_DEBUG, and called usb.core.find(). > > The default is for find() to find (at most) a single USB device, which, > according to the debug output, it did (even though it appears that you > omitted the IDLE output that looks something like `<DEVICE ID ffff:ffff > on Bus 001 Address 001>`). > > Maybe you wanted to store the device returned by find() somewhere? > > Also, generally speaking, you either want to find one of a specific device > usb.core.find(idVendor=<...>, idProduct=<...>) > or all devices (optionally also filtering by idVendor and/or idProduct) > usb.core.find(find_all=True) > usb.core.find(find_all=True, idVendor=<...>) > usb.core.find(find_all=True, idVendor=<...>, idProduct=<...>) > but rarely do you need a single randomly picked device. > > My suggestion is for you to (continue to) follow the PyUSB tutorial: > https://github.com/pyusb/pyusb/blob/master/docs/tutorial.rst > > Thanks, > Jonas > > > > > > > What am I missing out? > > > > _______________________________________________ > > pyusb-users mailing list > > pyu...@li... > > https://lists.sourceforge.net/lists/listinfo/pyusb-users > > > > _______________________________________________ > pyusb-users mailing list > pyu...@li... > https://lists.sourceforge.net/lists/listinfo/pyusb-users > |
From: Jonas M. <jo...@pr...> - 2021-04-22 12:35:50
|
On Thu, Apr 22, 2021 at 01:38:58PM +0300, Арам Абовян wrote: > ---------- Forwarded message --------- > От: Aram Abovyan <abo...@ya...> > Date: чт, 22 апр. 2021 г., 13:37 > Subject: > To: abo...@gm... <abo...@gm...> > > > I am very new to PyUSB and any help from PyUSB experts will be highly > appreciated. . > > When I applied the following few lines in IDLE Python GUI, > --------------------------------------------------------------- > > import os > os.environ['PYUSB_DEBUG'] = 'debug'import usb.core > usb.core.find() > > ---------------------------------------------------------------- > > I have got the following response : > > ======================= ======================= > > > > 2021-04-22 10:29:59,680 DEBUG:usb.backend.libusb1:_LibUSB.__init__(<WinDLL 'C:\Windows\system32\libusb-1.0.dll', handle 6b600000 at 0x3dc53fd250>) > 2021-04-22 10:29:59,688 INFO:usb.core:find(): using backend "usb.backend.libusb1" > 2021-04-22 10:29:59,688 DEBUG:usb.backend.libusb1:_LibUSB.enumerate_devices() > 2021-04-22 10:30:02,122 DEBUG:usb.backend.libusb1:_LibUSB.get_device_descriptor(<usb.backend.libusb1._Device object at 0x0000003DC73C5DC0>) > 2021-04-22 10:30:02,123 DEBUG:usb.backend.libusb1:_LibUSB._finalize_object() > > > > I have googled that, but did not understand much from the serach- > results. There is absolutely nothing wrong here. You enabled PYUSB_DEBUG, and called usb.core.find(). The default is for find() to find (at most) a single USB device, which, according to the debug output, it did (even though it appears that you omitted the IDLE output that looks something like `<DEVICE ID ffff:ffff on Bus 001 Address 001>`). Maybe you wanted to store the device returned by find() somewhere? Also, generally speaking, you either want to find one of a specific device usb.core.find(idVendor=<...>, idProduct=<...>) or all devices (optionally also filtering by idVendor and/or idProduct) usb.core.find(find_all=True) usb.core.find(find_all=True, idVendor=<...>) usb.core.find(find_all=True, idVendor=<...>, idProduct=<...>) but rarely do you need a single randomly picked device. My suggestion is for you to (continue to) follow the PyUSB tutorial: https://github.com/pyusb/pyusb/blob/master/docs/tutorial.rst Thanks, Jonas > > > What am I missing out? > _______________________________________________ > pyusb-users mailing list > pyu...@li... > https://lists.sourceforge.net/lists/listinfo/pyusb-users |
From: Арам А. <abo...@gm...> - 2021-04-22 10:39:25
|
---------- Forwarded message --------- От: Aram Abovyan <abo...@ya...> Date: чт, 22 апр. 2021 г., 13:37 Subject: To: abo...@gm... <abo...@gm...> I am very new to PyUSB and any help from PyUSB experts will be highly appreciated. . When I applied the following few lines in IDLE Python GUI, --------------------------------------------------------------- import os os.environ['PYUSB_DEBUG'] = 'debug'import usb.core usb.core.find() ---------------------------------------------------------------- I have got the following response : ======================= ======================= 2021-04-22 10:29:59,680 DEBUG:usb.backend.libusb1:_LibUSB.__init__(<WinDLL 'C:\Windows\system32\libusb-1.0.dll', handle 6b600000 at 0x3dc53fd250>) 2021-04-22 10:29:59,688 INFO:usb.core:find(): using backend "usb.backend.libusb1" 2021-04-22 10:29:59,688 DEBUG:usb.backend.libusb1:_LibUSB.enumerate_devices() 2021-04-22 10:30:02,122 DEBUG:usb.backend.libusb1:_LibUSB.get_device_descriptor(<usb.backend.libusb1._Device object at 0x0000003DC73C5DC0>) 2021-04-22 10:30:02,123 DEBUG:usb.backend.libusb1:_LibUSB._finalize_object() I have googled that, but did not understand much from the serach- results. What am I missing out? |
From: Xiaofan C. <xia...@gm...> - 2021-02-01 09:31:48
|
On Sun, Jan 31, 2021 at 9:37 PM Kevin Grant <ele...@my...> wrote: > > On 2021-01-31 12:58, Kevin Grant wrote: > > > Hello, > > > > I am re-using a subject line from the mailing list archive, by user > > Marcin, in an attempt to append to that thread. > > > > https://sourceforge.net/p/pyusb/mailman/pyusb-users/thread/15e9538f-386f-a637-ce2b-5eea3d04bd76%40gmail.com/ > > > > I had a simlar issue recently with a simple test application which > > opened a device and sent some OUT packets (to 512 size endpoint) thus: > > > > ..open device.. > > for i in range(n): > > dev.write(2,bytearray(os.urandom(512)) > > ..close device.. > > > > On windows, this worked fine for any 'n' but on Linux only even 'n' > > worked correctly. For odd 'n' one packet was always dropped/stuck. > > As Marcin suggested, ending with dev.reset() seemed to flush this stuck > > packet and fixed the issue. > > But using reset in this way seems wrong. > > After opening the device calling > > dev.clear_halt(2) > > Seemed to fix the issue. > > > > Regards > > Kevin > > Ah, perhaps a better solution is to write a zero-length packet to > signify end of data stream... > > ..open device.. > for i in range(n): > dev.write(2,bytearray(os.urandom(512)) > > dev.write(0x02, bytearray()) #ZLP end of data > > ..close device.. > It may be that Linux and Windows may handle the things a bit differently. Still ZLP may help for bulk endpoint. https://www.beyondlogic.org/usbnutshell/usb4.shtml -- Xiaofan |
From: Kevin G. <ele...@my...> - 2021-01-31 13:36:52
|
On 2021-01-31 12:58, Kevin Grant wrote: > Hello, > > I am re-using a subject line from the mailing list archive, by user > Marcin, in an attempt to append to that thread. > > https://sourceforge.net/p/pyusb/mailman/pyusb-users/thread/15e9538f-386f-a637-ce2b-5eea3d04bd76%40gmail.com/ > > I had a simlar issue recently with a simple test application which > opened a device and sent some OUT packets (to 512 size endpoint) thus: > > ..open device.. > for i in range(n): > dev.write(2,bytearray(os.urandom(512)) > ..close device.. > > On windows, this worked fine for any 'n' but on Linux only even 'n' > worked correctly. For odd 'n' one packet was always dropped/stuck. > As Marcin suggested, ending with dev.reset() seemed to flush this stuck > packet and fixed the issue. > But using reset in this way seems wrong. > After opening the device calling > dev.clear_halt(2) > Seemed to fix the issue. > > Regards > Kevin Ah, perhaps a better solution is to write a zero-length packet to signify end of data stream... ..open device.. for i in range(n): dev.write(2,bytearray(os.urandom(512)) dev.write(0x02, bytearray()) #ZLP end of data ..close device.. Regards Kevin |
From: Kevin G. <ele...@my...> - 2021-01-31 12:58:34
|
Hello, I am re-using a subject line from the mailing list archive, by user Marcin, in an attempt to append to that thread. https://sourceforge.net/p/pyusb/mailman/pyusb-users/thread/15e9538f-386f-a637-ce2b-5eea3d04bd76%40gmail.com/ I had a simlar issue recently with a simple test application which opened a device and sent some OUT packets (to 512 size endpoint) thus: ..open device.. for i in range(n): dev.write(2,bytearray(os.urandom(512)) ..close device.. On windows, this worked fine for any 'n' but on Linux only even 'n' worked correctly. For odd 'n' one packet was always dropped/stuck. As Marcin suggested, ending with dev.reset() seemed to flush this stuck packet and fixed the issue. But using reset in this way seems wrong. After opening the device calling dev.clear_halt(2) Seemed to fix the issue. Regards Kevin |
From: Xiaofan C. <xia...@gm...> - 2021-01-22 01:49:51
|
On Thu, Jan 21, 2021 at 8:44 AM Jonas Malaco via pyusb-users <pyu...@li...> wrote: > > According to Process Explorer, there is now an QueryNameInformationFile for: > > > > C:\Windows\System32\libusb-1.0.dll (because the program explicitly > > looks for it there!) > > > > in addition to accessing libusb-1.0.dll in the 'library install' directory. > > > > Perhaps I had the wrong version of the library somewhere? > > Yes, that was probably it. > > I'm not super familiar with how DLLs are loaded by Python on Windows, but it's > possible that if a DLL is found with the correct *name* the search stops, even > if later the DLL turns out to have been built for the wrong architecture. > This DLL search order is from Microsoft. https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order You can see it is pretty complicated. So the best way for end user is to remove libusb-1.0.dll in all the directories except the system directories. If you use Zadig to install WinUSB driver, that is automatically done. -- Xiaofan |
From: Jonas M. <jo...@pr...> - 2021-01-21 00:43:42
|
On Wed, Jan 20, 2021 at 8:04 PM Steve Kranish <skr...@ve...> wrote: > > > On 1/20/2021 4:41 PM, Jonas Malaco wrote: > > On Wed, Jan 20, 2021 at 6:20 PM Steve Kranish via pyusb-users > > <pyu...@li...> wrote: > >> This is a widely reported problem which has just been left dangling for > >> many people. I have yet to see a complete, meaningful resolution. > > This is not true. > > > > The solution, as you have already gathered, is to install libusb. > > As mentioned below, I have installed libusb 1.0.23b7 > > It installs 32 and 64 bit versions, or at least 32bit and 64 bit > directories. The DLLs ARE different. > > I have copied the 64 bit library to c:\Windows\System32 AND my python > working directory, where the py files are. > > > > By the way, you haven't mentioned whether you're running 32 or 64 bit > > Windows and Python. > Windows 7 - 64 bit, Python 3.85, 64 bit > > I have libusb-1.0.dll in c:\windows\system32 AND the directory where my > >> python script exits. I still get the “No backend available” error. > > Once common 64-bit Windows problem is that 64-bits DLLs go in > > C:\Windows\System32 while 32-bit DLLs need to go in > > C:\Windows\SysWOW64. > > > > Perhaps that's your issue? > > The 'library installation' directory is > > C:\Users\skranish\AppData\Local\Programs\Python\Python38\lib\site-packages\libusb > > I have used MS Process Monitor to see if libusb-1.0.dll is ever > accessed. Python does look for it (QueryDirectory) in > > C:\Users\skranish\AppData\Local\Programs\Python\Python38\lib\site-packages\libusb > > and my working directory, but there is nothing in the log that indicates > the file was ever accessed. It never looked in System32 or SysWOW64 > > Nonetheless, I put the 32 bit library in C:\Windows\SysWOW64. > > and the 64 bit library in C:\Windows\System32. > > I think I already had it that way. > > It does seem bass-ackwards to me. > > > Perhaps this is of note? pyusb 1.1.0 should be the 64bit version PyUSB itself is architecture-agnostic; but the Python interpreter can be 32 or 64 bit. > pyUsb installs in > > C:\Users\skranish\AppData\Local\Programs\Python\Python38\lib\site-packages\pyusb-1.1.0.dist-info > > The files in this directory are: > > > Directory of > C:\Users\skranish\AppData\Local\Programs\Python\Python38\lib\site-packages\pyusb-1.1.0.dist-info > > 01/17/2021 04:53 PM <DIR> . > 01/17/2021 04:53 PM <DIR> .. > 01/17/2021 04:53 PM 4 INSTALLER > 01/17/2021 04:53 PM 1,513 LICENSE > 01/17/2021 04:53 PM 2,176 METADATA > 01/17/2021 04:53 PM 2,340 RECORD > 01/17/2021 04:53 PM 0 REQUESTED > 01/17/2021 04:53 PM 4 top_level.txt > 01/17/2021 04:53 PM 92 WHEEL > 7 File(s) 6,129 bytes > > That is all! > > After copying the dll again (as above), and running again, I find that > it DOES find a backend. Happy to hear! > According to Process Explorer, there is now an QueryNameInformationFile for: > > C:\Windows\System32\libusb-1.0.dll (because the program explicitly > looks for it there!) > > in addition to accessing libusb-1.0.dll in the 'library install' directory. > > Perhaps I had the wrong version of the library somewhere? Yes, that was probably it. I'm not super familiar with how DLLs are loaded by Python on Windows, but it's possible that if a DLL is found with the correct *name* the search stops, even if later the DLL turns out to have been built for the wrong architecture. > Thanks > > Steve > > import usb.core > import usb.util > > from infi.devicemanager import DeviceManager > dm = DeviceManager() > devices = dm.all_devices > for i in devices: > try: > print ('{} : address: {}, bus: {}, location: > {}'.format(i.friendly_name, i.address, i.bus_number, i.location)) > except Exception: > pass > > > import usb.backend.libusb1 > > backend = usb.backend.libusb1.get_backend(find_library=lambda x: > "C:\\Windows\\System32\\libusb-1.0.dll") > print(backend) > dev = usb.core.find(backend=backend, find_all=True) > print(dev) > > def EnumerateUSB(): #I use a simple function that scans all known USB > connections and saves their info in the file > with open("EnumerateUSBLog.txt", "w") as wf: > counter = 0 > for d in dev: > try: > wf.write("USB Device number " + str(counter) + ":" + "\n") > print("USB Device number " + str(counter) + ":" + "\n") > wf.write(d._get_full_descriptor_str() + "\n") > print(d._get_full_descriptor_str() + "\n") > # wf.write(d.get_active_configuration() + "\n") > wf.write("\n") > counter += 1 > except NotImplementedError: > wf.write("Device number " + str(counter) + "is busy." + > "\n") > wf.write("\n") > counter += 1 > except usb.core.USBError: > wf.write("Device number " + str(counter) + " is either > disconnected or not found." + "\n") > wf.write("\n") > counter += 1 > wf.close() > > EnumerateUSB() > |
From: Steve K. <skr...@ve...> - 2021-01-20 23:24:42
|
On 1/20/2021 4:41 PM, Jonas Malaco wrote: > On Wed, Jan 20, 2021 at 6:20 PM Steve Kranish via pyusb-users > <pyu...@li...> wrote: >> This is a widely reported problem which has just been left dangling for >> many people. I have yet to see a complete, meaningful resolution. > This is not true. > > The solution, as you have already gathered, is to install libusb. As mentioned below, I have installed libusb 1.0.23b7 It installs 32 and 64 bit versions, or at least 32bit and 64 bit directories. The DLLs ARE different. I have copied the 64 bit library to c:\Windows\System32 AND my python working directory, where the py files are. > By the way, you haven't mentioned whether you're running 32 or 64 bit > Windows and Python. Windows 7 - 64 bit, Python 3.85, 64 bit > I have libusb-1.0.dll in c:\windows\system32 AND the directory where my >> python script exits. I still get the “No backend available” error. > Once common 64-bit Windows problem is that 64-bits DLLs go in > C:\Windows\System32 while 32-bit DLLs need to go in > C:\Windows\SysWOW64. > > Perhaps that's your issue? The 'library installation' directory is C:\Users\skranish\AppData\Local\Programs\Python\Python38\lib\site-packages\libusb I have used MS Process Monitor to see if libusb-1.0.dll is ever accessed. Python does look for it (QueryDirectory) in C:\Users\skranish\AppData\Local\Programs\Python\Python38\lib\site-packages\libusb and my working directory, but there is nothing in the log that indicates the file was ever accessed. It never looked in System32 or SysWOW64 Nonetheless, I put the 32 bit library in C:\Windows\SysWOW64. and the 64 bit library in C:\Windows\System32. I think I already had it that way. It does seem bass-ackwards to me. Perhaps this is of note? pyusb 1.1.0 should be the 64bit version pyUsb installs in C:\Users\skranish\AppData\Local\Programs\Python\Python38\lib\site-packages\pyusb-1.1.0.dist-info The files in this directory are: Directory of C:\Users\skranish\AppData\Local\Programs\Python\Python38\lib\site-packages\pyusb-1.1.0.dist-info 01/17/2021 04:53 PM <DIR> . 01/17/2021 04:53 PM <DIR> .. 01/17/2021 04:53 PM 4 INSTALLER 01/17/2021 04:53 PM 1,513 LICENSE 01/17/2021 04:53 PM 2,176 METADATA 01/17/2021 04:53 PM 2,340 RECORD 01/17/2021 04:53 PM 0 REQUESTED 01/17/2021 04:53 PM 4 top_level.txt 01/17/2021 04:53 PM 92 WHEEL 7 File(s) 6,129 bytes That is all! After copying the dll again (as above), and running again, I find that it DOES find a backend. According to Process Explorer, there is now an QueryNameInformationFile for: C:\Windows\System32\libusb-1.0.dll (because the program explicitly looks for it there!) in addition to accessing libusb-1.0.dll in the 'library install' directory. Perhaps I had the wrong version of the library somewhere? Thanks Steve import usb.core import usb.util from infi.devicemanager import DeviceManager dm = DeviceManager() devices = dm.all_devices for i in devices: try: print ('{} : address: {}, bus: {}, location: {}'.format(i.friendly_name, i.address, i.bus_number, i.location)) except Exception: pass import usb.backend.libusb1 backend = usb.backend.libusb1.get_backend(find_library=lambda x: "C:\\Windows\\System32\\libusb-1.0.dll") print(backend) dev = usb.core.find(backend=backend, find_all=True) print(dev) def EnumerateUSB(): #I use a simple function that scans all known USB connections and saves their info in the file with open("EnumerateUSBLog.txt", "w") as wf: counter = 0 for d in dev: try: wf.write("USB Device number " + str(counter) + ":" + "\n") print("USB Device number " + str(counter) + ":" + "\n") wf.write(d._get_full_descriptor_str() + "\n") print(d._get_full_descriptor_str() + "\n") # wf.write(d.get_active_configuration() + "\n") wf.write("\n") counter += 1 except NotImplementedError: wf.write("Device number " + str(counter) + "is busy." + "\n") wf.write("\n") counter += 1 except usb.core.USBError: wf.write("Device number " + str(counter) + " is either disconnected or not found." + "\n") wf.write("\n") counter += 1 wf.close() EnumerateUSB() |
From: chris c. <cl...@gm...> - 2021-01-20 22:59:34
|
As per Jonas' reply, its not clear libusb has been installed. zadig works for me and makes the install process much easier (if you want super easy, go with Linux) I did have some notes on this but they were in Bitbucket and didn't survive their mercurial purge and I've not found hosting so here is a copy/paste: ## USB Driver installation ## Windows usb drivers can be downloaded from http://zadig.akeo.ie/ (older versions at http://sourceforge.net/projects/libwdi/files/zadig/). 1. Download zadig_2.1.1.exe 1. Run it 1. Plugin in LCD into USB port, zadig will detect it (16C0 - 05DC) 1. Select "libusb-win32 (v1.2.6.0)" (do not use "WinUSB (v6.1.7600.16385)" - see screenshot 1. Click Install Known to work with Windows 8.1 (64-bit) with Python 2.7 32-bit. If you are finding the docs are lacking be great to get a PR open with a fix. It's faster for me to copy/paste the above than to check the current status |
From: Jonas M. <jo...@pr...> - 2021-01-20 21:42:13
|
On Wed, Jan 20, 2021 at 6:20 PM Steve Kranish via pyusb-users <pyu...@li...> wrote: > > This is a widely reported problem which has just been left dangling for > many people. I have yet to see a complete, meaningful resolution. This is not true. The solution, as you have already gathered, is to install libusb. > Almost no one mentions what versions of what they are using.. By the way, you haven't mentioned whether you're running 32 or 64 bit Windows and Python. > I have libusb-1.0.dll in c:\windows\system32 AND the directory where my > python script exits. I still get the “No backend available” error. Once common 64-bit Windows problem is that 64-bits DLLs go in C:\Windows\System32 while 32-bit DLLs need to go in C:\Windows\SysWOW64. Perhaps that's your issue? > dev = usb.core.find(backend=backend, find_all=True) > File > “C:\Users\skranish\AppData\Local\Programs\Python\Python38\lib\site-packages\usb\core.py”, > line 1297, in find > raise NoBackendError(‘No backend available’) > usb.core.NoBackendError: No backend available > > This must be dependent on SOMETHING ELSE that needs to be installed. Nope, sorry. > Perhaps in some installations, is installed by default, and in other > installations it is missing. > > Windows 7, Python 3.8 (required for W7) > libusb 1.0.23b7 > pyusb 1.1.0 |
From: Steve K. <skr...@ve...> - 2021-01-20 21:20:08
|
This is a widely reported problem which has just been left dangling for many people. I have yet to see a complete, meaningful resolution. Almost no one mentions what versions of what they are using.. I have libusb-1.0.dll in c:\windows\system32 AND the directory where my python script exits. I still get the “No backend available” error. dev = usb.core.find(backend=backend, find_all=True) File “C:\Users\skranish\AppData\Local\Programs\Python\Python38\lib\site-packages\usb\core.py”, line 1297, in find raise NoBackendError(‘No backend available’) usb.core.NoBackendError: No backend available This must be dependent on SOMETHING ELSE that needs to be installed. Perhaps in some installations, is installed by default, and in other installations it is missing. Windows 7, Python 3.8 (required for W7) libusb 1.0.23b7 pyusb 1.1.0 |
From: Saeed M. <s.m...@gm...> - 2021-01-18 07:49:32
|
Hi Xiaofan, Thanks for your response and for sending me all the resources. I have actually put my hand on every piece of information that I could get from your github page and also other websites. libusb and pyusb have been installed in the virtual environment but I can not import it. As I mentioned before, I can import pyusb in the general directory, just not in my virtual environment. Can you think of anything else? Another thing is in regards to the write() method. When I try to send a number, I have to put it in a list and the largest number I can send is 255 (1 byte). If I go beyond 255, I get this error: *OverflowError: unsigned byte integer is greater than maximum* But when I send the numbers as a string, for example '12345689', I can go as big as I want without any errors as long as on the receiver side I have set the number of bytes correctly in the read() method. Now, in my application, I have to send a list of numbers via the USB port. A list that contains between 9 to 35 numbers and each number is not going to take up more than 2 bytes. I know that I can put the numbers in a loop, but is there a way to send them all at once in number format, not string? Speed is a critical element in my application and I have to avoid loops and conversions at all costs. Thanks, Saeed On Thu, Jan 14, 2021 at 4:54 PM Xiaofan Chen <xia...@gm...> wrote: > On Thu, Jan 14, 2021 at 1:52 PM Xiaofan Chen <xia...@gm...> wrote: > > > > On Thu, Jan 14, 2021 at 1:44 PM Saeed Mirghasemi <s.m...@gm...> > wrote: > > > I have already done that and it does not work. Does anything else come > to your mind? > > > > > > Also, where do I get a list of commands and their arguments in pysub? > I am trying to > > > set the baud rate and I do not know where to start. > > > > > > > Obviously you need to install libusb as well. Please read the FAQ here. > > https://github.com/pyusb/pyusb/blob/master/docs/faq.rst > > > > As for baud rate or things like that, that is not part of pyusb. You > have to > > understand the communication protocol of your USB device in order to > > use libusb/pyusb. > > > > I suggest you read some basics of USB first. > > http://www.usbmadesimple.co.uk/ > > > > Then if you do not know the communication protocol, you have to reverse > > engineering. > > http://www.usbmadesimple.co.uk/ > > Sorry the link is not correct. > > https://slomkowski.eu/tutorials/eavesdropping-usb-and-writing-driver-in-python/ > > > And if your device is a standard USB class device like USB to Serial > port, > > then it is better not to use pyusb but rather pyserial. > > > > -- > > Xiaofan > > > _______________________________________________ > pyusb-users mailing list > pyu...@li... > https://lists.sourceforge.net/lists/listinfo/pyusb-users > |
From: Xiaofan C. <xia...@gm...> - 2021-01-14 05:54:06
|
On Thu, Jan 14, 2021 at 1:52 PM Xiaofan Chen <xia...@gm...> wrote: > > On Thu, Jan 14, 2021 at 1:44 PM Saeed Mirghasemi <s.m...@gm...> wrote: > > I have already done that and it does not work. Does anything else come to your mind? > > > > Also, where do I get a list of commands and their arguments in pysub? I am trying to > > set the baud rate and I do not know where to start. > > > > Obviously you need to install libusb as well. Please read the FAQ here. > https://github.com/pyusb/pyusb/blob/master/docs/faq.rst > > As for baud rate or things like that, that is not part of pyusb. You have to > understand the communication protocol of your USB device in order to > use libusb/pyusb. > > I suggest you read some basics of USB first. > http://www.usbmadesimple.co.uk/ > > Then if you do not know the communication protocol, you have to reverse > engineering. > http://www.usbmadesimple.co.uk/ Sorry the link is not correct. https://slomkowski.eu/tutorials/eavesdropping-usb-and-writing-driver-in-python/ > And if your device is a standard USB class device like USB to Serial port, > then it is better not to use pyusb but rather pyserial. > > -- > Xiaofan |
From: Xiaofan C. <xia...@gm...> - 2021-01-14 05:53:22
|
On Thu, Jan 14, 2021 at 1:44 PM Saeed Mirghasemi <s.m...@gm...> wrote: > I have already done that and it does not work. Does anything else come to your mind? > > Also, where do I get a list of commands and their arguments in pysub? I am trying to > set the baud rate and I do not know where to start. > Obviously you need to install libusb as well. Please read the FAQ here. https://github.com/pyusb/pyusb/blob/master/docs/faq.rst As for baud rate or things like that, that is not part of pyusb. You have to understand the communication protocol of your USB device in order to use libusb/pyusb. I suggest you read some basics of USB first. http://www.usbmadesimple.co.uk/ Then if you do not know the communication protocol, you have to reverse engineering. http://www.usbmadesimple.co.uk/ And if your device is a standard USB class device like USB to Serial port, then it is better not to use pyusb but rather pyserial. -- Xiaofan |
From: Saeed M. <s.m...@gm...> - 2021-01-14 05:43:58
|
Thanks Xiaofan. I have already done that and it does not work. Does anything else come to your mind? Also, where do I get a list of commands and their arguments in pysub? I am trying to set the baud rate and I do not know where to start. Thanks, Saeed On Thu, Jan 14, 2021 at 12:37 PM Xiaofan Chen <xia...@gm...> wrote: > On Thu, Jan 14, 2021 at 9:30 AM Saeed Mirghasemi <s.m...@gm...> > wrote: > > > > Hi, > > > > I am working on a Jetson Nano with Ubuntu 18.04. The common 'pip install > pyusb' did > > not work and I got this error: > > ModuleNotFoundError: No module named 'usb' > > > > Upon running: > > import usb.core > > > > Then I tried: > > sudo python3 -mpip install pyusb > > > > This worked but when I try 'import usb.core' in a virtual environment, I > am getting the same error. > > Any idea what is happening here? > > > > You need to install pyusb in your virtual environment as well. > > -- > Xiaofan > > > _______________________________________________ > pyusb-users mailing list > pyu...@li... > https://lists.sourceforge.net/lists/listinfo/pyusb-users > |
From: Xiaofan C. <xia...@gm...> - 2021-01-14 01:37:23
|
On Thu, Jan 14, 2021 at 9:30 AM Saeed Mirghasemi <s.m...@gm...> wrote: > > Hi, > > I am working on a Jetson Nano with Ubuntu 18.04. The common 'pip install pyusb' did > not work and I got this error: > ModuleNotFoundError: No module named 'usb' > > Upon running: > import usb.core > > Then I tried: > sudo python3 -mpip install pyusb > > This worked but when I try 'import usb.core' in a virtual environment, I am getting the same error. > Any idea what is happening here? > You need to install pyusb in your virtual environment as well. -- Xiaofan |