7

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

DilbertDave
  • 352
  • 1
  • 4
  • 11

3 Answers3

13

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.

David Schwartz
  • 31,215
  • 2
  • 53
  • 82
  • Thank David - we hadn't considered that at all. Will take a look at USBView and see what that tells us – DilbertDave Apr 17 '15 at 07:56
  • 1
    if you can use linux at least for detection the command usb-devices (back then it was /proc/bus/usb/devices and usbfs mounted) and the various logfiles did show us a large amount of info regarding possible issues (Power, transfer speed, hub controller failure, and even device failures.) – Dennis Nolte Apr 17 '15 at 08:04
  • The system is Windows based but there will be no harm in trying to connect one of the camera banks to a Linux system as seeing what we can see – DilbertDave Apr 17 '15 at 08:11
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.

Dennis Nolte
  • 2,848
  • 4
  • 26
  • 36
  • Thanks Dennis - we did have active extender cables attached but these were removed as a possible source of the problem. We were wondering whether we could just 'throw another card in' or whether this was a driver issue - but if you got around the problem with more hardware then maybe that is our way forward. The end client may not be happy about us upgrading their hardware but if that's the solution.... – DilbertDave Apr 17 '15 at 07:55
  • 1
    @DilbertDave depending on the bandwidth you actually need you might have to do this anyway, regardless of your current issue. With USB2.0 we had that issue aswell, we did need up to 11.5Mbit/s per device which should (even with the high USB overhead) result in approx 50 (i think we calculated that sum but not sure anymore) device per controller, but as said we settled with way lower. – Dennis Nolte Apr 17 '15 at 08:02
1

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.

Kate
  • 11
  • 1
  • 1
    The question was already answered two years ago. This answer adds nothing not already suggested. – kasperd May 23 '17 at 02:58