Hi,
Jim first thanks for creating and supporting Pywws for so many years.
I'm using if from 2012 running on router connected to WH2080 weather station base. Since 2012 my original station broke - first by just not showing proper pressure then with years passing there were periodical errors with reading data that ended with not reading data at all so I replaced it 3 years ago with another WH3080 clone and its working fine since.
Recently I decided to replace my router from 2012 with new model as previous one was running with Extroot and breaking pendrive from time to time also I was running on old Python and on old pywws version from 2014 that was not supporting pip.
My new setup is Linksys EA6350 v4 running OpenWrt 22.03 and most recent Pywws 23.2.
When I connected weather station to it it was throwing USBDevice.read_data errors with each of drivers I tested.
As I know that my station is ok because it is running properly on old router I debug your code and found that actually data is returned from station but in 8 bytes chunks instead of 32 bytes at once. I modified your device_libusb1 code in read_data(self, size) function and instead executing self.dev.bulkRead(0x81, size, timeout=1200) one time I'm executing it 4 times and return concatenation of results from function
Pywws is running fine after this change since yesterday but I don't know what can be implications - do you think it would freeze usb more often as it have to read 4 times instead of one?
Have anyone had such issue earlier?
Below libraries installed in python on new router:
root@OpenWrt:/mnt/pendr/weather# pip list
Package Version
------------------- --------
bcrypt 3.1.7
certifi 2023.5.7
cffi 1.15.0
charset-normalizer 3.1.0
cryptography 3.4.8
idna 3.4
importlib-metadata 6.6.0
importlib-resources 5.12.0
libusb1 3.0.0
packaging 23.1
paho-mqtt 1.6.1
paramiko 2.10.1
pip 23.0.1
pkg-about 1.0.8
ply 3.11
pycparser 2.21
PyNaCl 1.5.0
python-dateutil 2.8.2
pyusb 1.2.1
pywws 23.2.0
requests 2.30.0
semantic-version 2.10.0
setuptools 65.5.0
setuptools-rust 1.6.0
six 1.16.0
tomli 2.0.1
typing_extensions 4.5.0
tzlocal 5.0.1
urllib3 2.0.2
wheel 0.40.0
zipp 3.15.0
And output of cat /sys/kernel/debug/usb/devices for my station, its exactly the same for both routers
T: Bus=01 Lev=02 Prnt=02 Port=01 Cnt=01 Dev#= 3 Spd=1.5 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=1941 ProdID=8021 Rev= 1.00
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=(none)
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=10ms
Regards
Marcin