Hello everyone,
I have a project involving 60 Adafruit ItsyBitsy M4...
As I am really lazy and do not want to upload codes in them one by one every time, I got four 16-port USB hubs. So far, it seems that Windows is not able to detect all of them if I plug 2 hubs at the front of the PC and 2 at the back...
So, I bought 2 PCIe USB extension cards to add at the back of the PC. Windows is able to detect all of them!
But... When I try to reset them using 1200-bps touch reset with my Python code:
for COM in self.COMs:
ser = serial.Serial(port=COM, baudrate=1200)
ser.close()
del ser
It works great for the hubs plugged into the built-in USB controllers but for the ones on the extension cards... it slows down, slows down, until it just stops. If I note the COM port where it fails and try to upload a code with the Arduino IDE it also fails.
Very strange:
- The failing COM port is different every time.
- Whatever the hub, if I plug it into a built-in USB controller, it works.
- Tried with arduino-cli, same.
No, I don't think, I tested the 4 hubs with the built-in USB ports and it works perfectly...
Also tried another model of USB extension card and it's the same.
Also, here is my system specs :
- two intel xeon gold
- 192GB of RAM
- RTX4000
- windows 10
Well, could be the extension cards, too. Problem with USB is, that the more hubs you cain the less reliable it works. e.g.: I have an old webcam, that does not work over USB3 hubs if a second USB device is connected to the very same hub or another camera is connected to the same system hub. That's just as it is - gambling.
I might have found the problem...
I just re-tested with the explorer open and by uploading code with arduino-cli (so they don't all stay in bootloader mode at the same time). At one point, the disk used is Z: and right after that, it crashes!
So, it's just because windows is stupid... linux forever!
Ah, so these boards must use a USB mass storage device interface for uploading.
Nice work on troubleshooting the problem!
Just tried on linux, doesn't seem to work either...
I think I will just upload codes 2 times (2x30)...