Do you find devices are not visible on your USB port, or they appear and disappear intermittently? If you connect too many devices to most computers’ USB ports you may be hitting what is known as the endpoint limit.
If you experience the endpoint limit, you are likely to see an error indicating you have “run out of USB resources” on your host computer, although you may not see any error message at all and (any of) your USB devices may randomly fail to operate correctly or become intermittent.
The USB endpoint limitation applies to xHCI (USB3) host controllers on recent motherboards only. These USB host controllers have limited memory and typically offer between 64 and 128, commonly 96 USB endpoints.
The problem with the limited number of endpoints provided by xHCI host controllers is that most USB devices, especially mobile phones and tablets, enumerate as more than one endpoint. A typical mobile device might enumerate as 5 endpoints. Consequently, if your host controller has 64 available endpoints you would only be able to connect 64/5 devices to that host controller, equivalent to 12 devices. Please be aware that all USB devices, including USB hubs, require endpoints, so when you are setting up your work flow it is important to bare this limitation in mind.
Because this limit is dependent on the host computer’s USB interface, the best way to avoid the endpoint limitation depends on the data transfer speeds you require:
- One method Cambrionix supports is simply to disable the USB3 data channel and revert communications back to USB2.0 specifications. Cambrionix provides software that achieves this reversion, but data transfer speeds are limited to 480 Mbps. This is fine for applications where small amounts of data are being transferred or where speed is not critical. If this approach is suitable, we offer the SyncPad 54 to connect 54 devices simultaneously to the host computer using USB2.0 connectivity.
- An alternative method is to use a host computer that can accept PCIe cards. If this is possible, you can insert a USB 3.2 PCIe card with multiple USB3.2 host controllers (e.g. one per USB3 port). This approach should provide approximately 96 endpoints per host controller and will allow you to connect our USB3.2 SuperSync 15 port hubs to the PCIe interface card. Data speeds are limited to 5Gbps per port, but this is a significant step up.
- If data transfer speed is paramount to your work flow, or you cannot use a PCIe interface card, we provide high performance Thunderbolt™ to USB hubs. The internal architecture of these products ensures that each individual port has at least 16 endpoints, effectively removing the endpoint limitation.
How can we help?
If you need any more advice on endpoint limits, or you are experiencing intermittent communication difficulties, please contact us to discuss your current USB based setup and how we can help.