USB power and charging issues are surprisingly complex. It’s natural to assume that hubs “deliver” a certain amount of power to a device. But that’s not really how it works. Devices can pull as much power as they want, but there are consequences. Devices are supposed to follow certain rules, like pulling no more than 100mA unless they configure up to a higher amperage (500mA for USB 2.0 and 900mA for USB 3.0). This is to avoid voltage drops which might knock other devices off the bus. Hubs and chargers are supposed to fail gracefully if a device pulls too much.
And it’s all gotten more confusing as USB has become a primary way of charging phones and tablets. There are many proprietary methods devices use to detect “their charger” and start pulling higher amperages. The USB-IF has a standard for doing this called the Battery Charging class, but the big guys like Apple, Samsung, and others don’t follow it universally.
So what happens when a device pulls more power than a hub or charger expects? What does a graceful or non-graceful failure look like? We wanted to know.
How we tested
To test what happens when a device draws too much power from a port, we needed a USB “device” that let us set the amount of power that it draws. We came up with a box that uses large resistors to place a load on the USB power lines, simulating a device drawing power. Instead of using the power to actually do something as a device would, our device simply dissipates it as heat.
The box itself was designed in SketchUp and printed on a Printrbot 3D printer.
The red and black connectors are connected to the ground and +5V lines of the USB bus, and connected to a meter so that the bus voltage can be monitored. Each of the switches at the top turns on one bank of resistors below. Each set of resistors is chosen so that they draw 500 mA, 1 A, 2 A, and 4 A from a 5 volt supply. By selecting different combinations of resistors, it can draw from 0.5 A all the way to 7.5 A in 500 mA steps. Remember that the limit for USB 2.0 is only 0.5 amps–so we can pull up to 15 times more current than a host should be able to deliver. This was on purpose. We wanted to be able to take a hub and its power supply to the maximum, then a little further. Everyone here was really hoping for a fire (for better or worse, we weren’t able to create that much excitement even at the highest load).
Once connected to the device under test, the power draw was increased from 0 all the way to 7.5 amps, and the voltage recorded at each stop. While it claims 7.5 amps, on every test we did, the actual current was less than 7.5 amps because the draw had caused the supply voltage to drop, reducing the current.
What We Found
Below are the test results from several of our devices.
Power Supply Rating: 5V 4A
The UD-3000 has a 4A power adapter, and actively tries to prevent attached devices from affecting the core functions of the dock (graphics, network, audio). When the next step after the last one on this chart was turned on with the current tester, the port was disabled, and no longer delivered power until the load was removed. The UD-3000 properly cut power to the offending port, and as a result, the DisplayLink device and other USB ports would continue to function in this situation.
Each USB port of the UD-3000 is equipped with a device called a polyfuse. A polyfuse is a type of resettable fuse that automatically disconnects a power supply when too much power is drawn through the fuse. When the load is removed, the fuse returns to its initial state.
While the polyfuse in the UD-3000 device was the one that cut power to the device, the voltage drop before that happened was due to the voltage regulation in the AC power adapter. While the voltage had dropped considerably before power was cut, it was not low enough to cause devices to disconnect, and was far more than any device should be able to draw.
Power Supply Rating: 5V 3A
This is an example of a device with USB ports that do not have polyfuses. There is a direct connection from the AC adapter input, to the USB ports. This means that devices can draw as much power as they want, without being shut off. This is an obvious advantage, as it allows for the usage of devices like the Raspberry Pi that perform no power negotiation, and can draw upwards of 1.5A with devices connected to the Raspberry Pi. You can read more about the USB2-HUB-AG7 with the Raspberry Pi here.
While it looks like the voltage was quite low at the end of the test–and it is–this is because we were drawing nearly double the rated current capacity of the AC adapter. At its rated current (3A), the voltage was still high enough to prevent USB device disconnections. Past its rated current, it did continue to function, but the voltage was too low for some devices to function properly, and may reduce the life of the AC adapter.
USB Output Rating: 5V 2.1A
Our surge protector is another device that properly handles an overcurrent situation. On the surge protector, it states “2.1A Shared” between the two USB ports. The test data show that when the current draw is increased above ~2.3A, the surge protector cuts voltage in order to reduce the current draw. The regulator on this device is “smarter” than a simple polyfuse, and tries to reduce voltage so that the device will still receive some power, if at a lower voltage. The voltage regulator in this device also did the best job of maintaining the supply voltage at 5 volts under greater loads.
Questions? Comments? Feel free to comment below!