Intel USB 3.0 eXtensible Host Controller - Exceeded Number of Supported Devices?

I am working on a project which utilises 18 high-end DSLR cameras, connected to a PC via USB.

During development the system was running USB2 will no problems whatsover but when we moved to a system running USB3.0 we started getting the following error which resulted in only 11 of the cameras being recognised.

enter image description here

The configuration is that the cameras connect to a powered USB3 hub (something like this) which allows 7 devices to be attached. The system has three of these - all powered, but will only support around 11 of the connected devices (two and a bit hubs worth). We are sure that this is a power issue but all of the hubs are powered and the cameras are also on mains adapters.

At the moment we are having to fall back to USB2 but the transfer rate means that the photo capture process has increased significantly - each image file is around 23MB and it can take 20 seconds or so to download all of the files.

I'm hoping that there is a way around this limitation with the Intel hardware - another driver or a different controller altogether.

Thanks in advance


Solution 1:

There is a hardware limit of 96 endpoints on most Intel XHCI controllers. It wouldn't surprise me if each camera is using 8 endpoints, that's a pretty typical number for complex, modern devices. The hubs occupy endpoints as well. You can confirm this with USBView. This is a controller hardware limitation, and there's no way around it.

Solution 2:

First: i do not know if there might be a bug/feature limit on your USB host controller or spec limitation (in case of devices, hubs in row) change in USB2 vs USB3 (Davids Answer seems to show the limit of the intel controller)

Technically my answer is USB2.0 info i give but it might help you get some ideas where to look at.

Make sure you do not use too long cables between host and hubs, low cost ones did produce high amount of issues for us on even 3m length, while USB2.0 specs allow for 5m Cable until you need a "Hub" Measure the power output of the USB cables. Most of the time you get 7 Port hubs there are actually 2 Hubs inside the case row. So you should check which port on your hub is connected to the "primary" and "secondary" hub.

Additionally you cannot put more than 5 hubs in row, (including root hub + possible already another hub on your mainboard before you even reach the USB Plug)

on our setup we were limited to 3 additional hubs per Port. However even with active power supply on the hubs and good cable connections we had issues if we added more than 1 7er Hubs (=7 devices) per physical mainboard USB Port.

Our solution was attaching the server with 5 PCI 4x USB Cards which allowed us to stack 110 devices per server.

Solution 3:

We solved the same problem by putting in an internal self-powered usb 3.0 4-Port PCI-Express Add-on Card. But only if your computer has the PCIe expansion slot. This adds additional host controller as the Intel one has reached its limit.