Article originally written by Joshua Henry on September 8, 2015
If you are like me, you’ve got a plethora of USB devices connected to your computer at any given time. With USB hubs and universal docking stations being so common today, it’s easy to be able to connect dozens of USB devices without ever needing to unplug anything. That is, until you get the dreaded "Not enough USB controller resources – The controller does not have enough resources for this device" error message down by the Windows system tray icons.
At that moment you’re likely saying to yourself, "How can this be? My state-of-the-art system can’t handle just one more USB device?"
Unfortunately, in the upgrade from USB 2.0 to USB 3.0, there are some trade-offs in terms of fewer devices that can be connected at once. And those limits apply not just to USB 3.0 devices, but to all devices connected to a USB 3.0 host.
Here’s what we think we know. The most commonly affected users are trying to expand device connectivity to systems like the Microsoft Surface Pro where only a single USB 3.0 port is present. Normally one can just connect a hub or two and not worry but with the Surface tablets, the majority of the internal devices such as WiFi/Bluetooth, audio, front & rear cameras, touch HID, pen HID, and SD card reader are all tied off of the Intel USB 3.0 XHCI host controller using up a ton of the limited USB resources (endpoints) available not leaving hardly anything left for the hub and subsequent attached devices. Where it really starts to get complicated is knowing that these resources (endpoints) are not exactly tied to how many individual USB devices there are but rather the number of endpoints each USB device has. This number van vary per device, but the maximum is 32 endpoints with 16 in and 16 out . Assuming you had some devices that actually used all 32 of their possible endpoints, resources are going to run out quickly.
There has been some discussion in the Intel community about this issue and there are reports that the Intel 8 Series USB 3.0 XHCI host controller only supports 96 endpoints. And practical limits can be hit much earlier. Further research has pointed towards this seemingly arbitrary limitation to the BIOS in some systems not having enough memory address space allocated to handle additional endpoints. Unfortunately at this time we’re not completely clear about this relationship, but we’re still continuing testing. All that’s clear is USB 3.0 PCs appear to handle far fewer devices than older USB 2.0 PCs could.
Until we can find a conclusive answer, here are our recommendations:
- If your USB 3.0 system is hitting a device resource limit, some systems will allow disabling the USB 3.0 (XHCI) controller and fall back to the USB 2.0 (ECHI) controller on the system. This workaround is known to work when the system BIOS offers it
- Otherwise, try using a USB 2.0 hub for connecting additional devices that don’t require USB 3.0 speeds, to potentially halve the number of endpoints consumed, at least for the hub portion
- If your scenario calls for very large numbers of USB devices (like USB thin clients or USB camera arrays), then if at all possible restrict yourself to a USB 2.0-only host, even if that has to be an older PC
- Reach out to Microsoft and Intel about your experiences through the links above or directly. Also feel free to comment below, the more people we have talking about these issues the greater chance we’ll have to understand it
And to provide some idea of how many endpoints are consumed by various devices, we ran through our own set of Plugable USB devices to return the number of endpoints each device exposes (and consumes), and list those below.
Plugable Products Endpoint List
- Plugable PL2303-DB9 USB to RS-232 DB9 Serial Adapter—3 endpoints
- Plugable PSS-DD1 USB 3.0 Dual 2.5″ SATA Drive Dock with Cloning—2 endpoints
- Plugable PSS-SDC1 USB 3.0 2.5″ SATA Drive Dock with 3-Port USB Charger—2 endpoints
- Plugable UGA-165 USB 2.0 HDMI/DVI/VGA Adapter for Multiple Monitors up to 1920×1080—3 endpoints
- Plugable UGA-2K-A USB 2.0 HDMI/DVI/VGA Adapter for Multiple Monitors up to 2048×1152—3 endpoints
- Plugable UGA-3000 USB 3.0 HDMI/DVI/VGA Adapter for Multiple Monitors—4 endpoints
- Plugable UGA-4KDP USB 3.0 4K DisplayPort Adapter for Multiple Monitors—6 endpoints
- Plugable USB-AUDIO USB Audio Adapter—3 endpoints
- Plugable USB-BT4LE USB 2.0 Bluetooth Adapter—17 endpoints
- Plugable USB-EASY-TRAN Windows Transfer Cable—3 endpoints
- Plugable USB-HDMI-DVI USB 3.0 HDMI/DVI Adapter for Multiple Monitors—6 endpoints
- Plugable USB-KBM1 Keyboard and Mouse Bundle—3 endpoints (2 for the keyboard, 1 for the mouse)
- Plugable USB-OTGTF USB 2.0 Micro SD Card Reader—2 endpoints
- Plugable USB-VGA-165 USB 2.0 VGA Adapter for Multiple Monitors—3 endpoints
- Plugable USB-WIFINT USB 2.0 802.11n Wireless Adapter—4 endpoints
- Plugable USB2-CARDRAM3 USB 2.0 Memory Card Reader—2 endpoints
- Plugable USB2-E100 USB 2.0 10/100 Ethernet Adapter—3 endpoints
- Plugable USB2-E1000 USB 2.0 10/100/1000 Gigabit Ethernet Adapter—3 endpoints
- Plugable USB2-MICRO-200X USB 2.0 Microscope—9 endpoints
- Plugable USB2-OTGE100 OTG USB 2.0 10/100 Ethernet Adapter—3 endpoints
- Plugable USB3-3900DHE USB 3.0 Dual Display Adapter for Multiple Monitors with Gigabit Ethernet= 10 endpoints
- Plugable USB3-CARD6A Aluminum 6-Slot Memory Card Reader—2 endpoints
- Plugable USB3-E1000 USB 3.0 10/100/1000 Gigabit Ethernet Adapter—3 endpoints
- Plugable USB3-FLASH3 USB 3.0 Memory Card Reader—2 endpoints
- Plugable USB3-SATA-U3 USB 3.0 SATA Vertical Hard Drive Dock—2 endpoints
- Plugable USB3-SATA-UASP1 USB 3.0 SATA Lay Flat Hard Drive Dock—2 endpoints
- Plugable USB3-VGA USB 3.0 VGA Adapter for Multiple Monitors—4 endpoints
USB 2.0 Hubs
- Plugable USB2-HUB4BC 4-Port USB 2.0 Hub with one USB 2.0 hub chipset (Terminus FE1.1S Rev B)—1 endpoint
- Plugable USB2-HUB-AG7 7-Port USB 2.0 Hub with one USB 2.0 hub chipset (Terminus FE2.1)—2 endpoints
- Plugable USB2-HUB10C2 10-Port USB 2.0 Hub with two USB 2.0 hub chipsets (Terminus FE2.1 & FE1.1S Rev B)—3 endpoints
- Plugable USB2-HUB10S 10-Port USB 2.0 Hub with two USB 2.0 hub chipsets (Terminus FE2.1 & FE1.1S)—3 endpoints
- Plugable USB2-HUB7BC 7-Port USB 2.0 Hub with two USB 2.0 hub chipsets (Terminus FE1.1S Rev B)—2 endpoints
USB 3.0 Hubs
- Plugable USB3-HUB10C2 10-Port USB 3.0 Hub with three USB 3.0 hub chipsets (VIA VL812 B2)—6 endpoints
- Plugable USB3-HUB4M 4-Port USB 3.0 Hub with one USB 3.0 hub chipset (VIA VL812 B2)—2 endpoints
- Plugable USB3-HUB7-81X 7-Port USB 3.0 Hub with two USB 3.0 hub chipsets (VIA VL812 B2)—4 endpoints
- Plugable USB3-HUB7BC 7-Port USB 3.0 Hub with two USB 3.0 hub chipsets (VIA VL811+)—4 endpoints
- Plugable USB3-HUB81X4 4-Port USB 3.0 Hub with one USB 3.0 hub chipset (VIA VL811+)—2 endpoints
- Plugable PSS-SDH1 USB 3.0 2.5" SATA Drive Dock with USB 3.0 3-Port Hub—4 endpoints (2 for the USB 3.0 hub, 2 for the USB to SATA bridge)
- Plugable DC-125 USB 2.0 Thin Client—7 (1 for the USB 2.0 hub, 3 for the DisplayLink chipset, 3 for the audio adapter)
- Plugable UD-160-A Universal USB 2.0 Single Display Docking Station—9 (2 for the USB 2.0 hub, 3 for the DisplayLink chipset, 3 for the Ethernet adapter, 3 for the audio adapter)
- Plugable UD-160-M USB 2.0 Thin Client Full HD—9 (2 for the USB 2.0 hub, 3 for the DisplayLink chipset, 3 for the Ethernet adapter, 3 for the audio adapter)
- Plugable UD-3000 Universal USB 3.0 Single Display Docking Station—7 endpoints (2 for the USB 3.0 hub, 1 for the USB 2.0 hub, 4 for the DisplayLink chipset)
- Plugable UD-3900 Universal USB 3.0 Dual Display Docking Station—13 endpoints (2 for the USB 3.0 hub, 1 for the USB 2.0 hub, 10 for the DisplayLink chipset)
- Plugable UD-PRO8 Docking Station for Tablets like the Dell Venue 8 Pro—9 (2 for the USB 2.0 hub, 3 for the DisplayLink chipset, 3 for the Ethernet adapter, 3 for the audio adapter)
- Plugable USB3-HUB3ME USB 3.0 3-Port Bus Powered Hub with Gigabit Ethernet—5 endpoints (2 for the USB 3.0 hub, 3 for the Ethernet adapter)
This issue of "How many USB devices can I connect to a USB 3.x host?" is a critical question to many scenarios. We’ll continue to post as we discover more.
If your Plugable product isn't listed here, and you're curious about the number of endpoints it requires, please contact us and we can work on providing that information.