Open aaltulea opened 1 year ago
@aaltulea I have added the dev.reset() but still there is a timeout error
(ledtag) anirudh@nj-Predator:~/Software/led-name-badge-ls32$ sudo python3 ./led-badge-11x44-nj.py -s1 -m5 "nj"
using [wch.cn CH546] bus=1 dev=18
Type: 11x44
Traceback (most recent call last):
File "/home/anirudh/Software/led-name-badge-ls32/./led-badge-11x44-nj.py", line 523, in <module>
dev.write(2, buf[i*64:i*64+64])
File "/usr/lib/python3/dist-packages/usb/core.py", line 989, in write
return fn(
File "/usr/lib/python3/dist-packages/usb/backend/libusb1.py", line 855, in intr_write
return self.__write(self.lib.libusb_interrupt_transfer,
File "/usr/lib/python3/dist-packages/usb/backend/libusb1.py", line 938, in __write
_check(retval)
File "/usr/lib/python3/dist-packages/usb/backend/libusb1.py", line 602, in _check
raise USBTimeoutError(_strerror(ret), ret, _libusb_errno[ret])
usb.core.USBTimeoutError: [Errno 110] Operation timed ou
I found a solution for me!
I got the same error under Fedora 38 but also https://github.com/dirkhillbrecht/led-name-badge-ls32/tree/fixhidapi did not solve my problem.
I realized that the script was not using pyhidapi at all. I then started the script in debug mode and in the line "pyhidapi.hid_init()" I got the following error:
OSError: /usr/local/lib/libhidapi-libusb.so.0: cannot open shared object file: No such file or directory
I fixed the problem by creating a symlink to my shared object file:
sudo ln -s /usr/lib64/libhidapi-libusb.so.0 /usr/local/lib/libhidapi-libusb.so.0
After that I could use the script without any problems. Note that it now displays the message "via pyHIDAPI" when running.
Hi there
Thanks for making this script. It works well. I wanted to provide some clarification for those who encounter the following error when trying to write to the led matrix S1144 on Windows 11 (using libusb, not pyhidapi):
usb.core.USBError: [Errno None] b'libusb0-dll:err [_usb_reap_async] timeout error\n'
I managed to get around this by adding
else
branch at the end of the script, as follows:It seems that calling
dev.reset()
is necessary to avoid device hang-ups, and is essential for the "no charging screen" hack that you mentioned before.This is what I ran:
python.exe "C:\Users\X\Downloads\led_py\led-badge-11x44.py" -s8 -m4 ++++++
python.exe "C:\Users\X\Downloads\led_py\led-badge-11x44.py" -m9 hello
For clock (run in cmd):
Thanks