Problem uploading with PCIe USB extension card

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.

Bad hub, I'd say.

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)...