In this video, I measure the voltage drop on USB Power Cables using a Power Supply, DC Load, and Multimeter:
When I did my Seeed Studio Fusion PCB Review, I ordered a new board for my Raspberry Pi Midi Jukebox, that featured a 3.5×1.35 barrel jack for power. I like barrel jacks instead of micro-usb, as it’s easier and more foolproof to plug in a barrel jack. Anyhow, it didn’t work. The pi just sat there and blinked. No ssh. No VFD display. Did I design a bum PCB? Did I short something out when I plugged it in? Did I somehow ruin my pi?
It turned out to be one of those things you might not think of — the power cable. The project worked fine with the USB-MicroUSB cable that I normally use with my pi. However, it didn’t work with the USB-3.5×1.35 cable that I bought from ebay. Once I realized the power cable was the culprit, it immediately seemed likely that it was a voltage drop issue due to small wire or some other manufacturing issue. I set out to measure several cables and compare the results.
DC Load Design
The DC Load was based on Dave Jones’s EEVBlog episode 102. My schematic pretty much follows Dave’s design. Here is my schematic:
The terminal block X1-1 / X1-2 connects to the binding posts. The positive voltage from the binding post passes through a mosfet (Q2 or Q3, populate one or the other but not both) and then through a current sense resistor (R3-R14). The current sense resistor can either be a single big resistor or a lot of small resistors in parallel depending on what components are on hand. An opamp, IC1B, is used to control the mosfet, using the sensed current and a multi-turn pot as inputs. The current sense resistor is chosen to be 1 ohm, so that 1 volt across this resistor will equal 1 amp of current.
I’m not going into much detail on how this works — the EEVBlog video does a much better job than I possibly could.
DC Load Implementation
The DC Load was built pretty much from spare parts, eBay finds, and a custom OSH Park pcboard.
Several things to note in this picture:
- The large heat sink is some old pentium CPU cooler. I drilled and tapped it, and mounted the power mosfet (IRFP250) to it.
- The small gold component on the right is a precision 1 ohm resistor that I bought on eBay.
- The pot is a multi-turn (probably 10-turn) from eBay.
- The DC panel meter, also from eBay, displays the milliamps that the load is sinking.
My test setup used three pieces of equipment:
- Benchtop power supply, set to provide ~ 5V at up to 3 amps.
- DC Load, capable of creating a load from 3ma to several amps.
- Fluke multimeter, to measure the voltage at the load.
For each cable, I set a fixed output at the power supply, and then varied the load from 3 milliamps (the lowest my DC load is able to create) up to about 2 amps. At each different load value, I wrote down the voltage observed at the load.
Here are the cables that I tested:
- bar35: USB to 3.5×1.35mm barrel jack. This is the cable that failed to power my project.
- bar55: USB to 5.5mm barrel jack.
- bar55_sw: The bar55 cable with an inline power switch attached.
- bar55_adapt: The bar55 cable with a 5.5mm to 3.5×1.35 adapter attached.
- musb_long: USB to micro-USB cable, somewhat long and thick.
- musb_retract: Rectractable USB to micro-USB cable, marked “PLX”, probably from a kickstarter.
- musb_short: A relatively short and thin micro-USB cable.
Below is a chart that records the observed voltage at each milliamp setting on the DC Load. For example, the bar35 cable resulted in a measured voltage of 3.17 volts at a load setting of 300 milliamps.
The same data, plotted in a graph:
Some interesting observations from these results:
- The USB-to-3.5×1.35 cable that failed to power my project performed the worst. The closest I was able to measure was 1.87 volts at 500 milliamps. My project expected something close to 5V at 600 milliamps. It’s not surprising it failed.
- The USB-to-5.5mm cable did pretty well, but its performance suffered dramatically when I added the inline switch. Must be something funky with that switch.