Measuring USB cable resistance

28.06.2019 15:04

I'm commonly hearing questions about finding good USB cables for powering single-board computers like the Raspberry Pi. The general consensus on the web seems to be that you need a good USB charger and a good USB cable. A charger typically has a specification, which gives at least some indication of whether it will be able to deliver the current you require. On the other hand, no USB cable I've seen advertises it's series resistance, so how can you distinguish good cables from bad?

Since it bothered me that I didn't have a good answer at hand, I did a bit of digging around the web to see what tools are readily available. Please note however that this isn't really a proper review, since I haven't actually used any of the devices I write about here. It's all just based on the descriptions I found on the web and my previous experience with doing similar measurements.

A bunch of random micro USB cables.

On battery-powered devices, like mobile phones, using a cable with a high resistance is hardly noticeable. It will often only result in a slightly longer charge times, since many battery management circuits adjust the charging current according to the source resistance they see. Unless the battery is completely dead, it will bridge any extra current demand from the device so operation won't be affected. Since most USB cables are used to charge smartphones these days, this tolerance of bad cables seems to have led us to the current state where many cables have unreasonably high resistance.

With a device that doesn't have its own battery the ability of the power supply to deliver a large current is much more important. If the voltage on the end of the cable drops too much, say because of high cable resistance, the device will refuse to boot up or randomly restart under load. Raspberry Pi boards try to address this to some degree with a built-in voltage monitor that detects if the supply voltage has dropped too much. In that case it will attempt to lower the CPU clock, which in turn lowers current consumption and voltage drop at the cost of computing performance. It will also print out an Under-voltage detected warning to the kernel log.

Measuring resistance is simple theoretically, it's just voltage drop divided by current. However in practice it is surprisingly hard to do accurately with tools that are commonly at hand. The troubles boil down mostly to non-destructively hooking up anything to a USB connector without some kind of a break-out board and the fact that a typical multimeter isn't able to accurately measure resistances in the range of 1 Ω.

"Charging slowly" on the bottom of Android lock screen.

Gašper tells me he has a method where he tests micro USB cables by plugging them into his smartphone and into a 2 A charger. If the phone says that it is fast charging, then the cable is probably good to power a Raspberry Pi. I guess the effectiveness of this method depends on what smartphone you're using and how it reports the charging rate. My phone for example shows either Charging or Charging slowly on the bottom of the lock screen. There are also apparently dedicated apps that show some more information. I'm not sure how much of that is actual measurement and how much is just guesswork based on the phone model and charging mode. Anyway, it's a crude, last resort method if you don't have any other equipment at hand, but it's better than nothing.

Riden UM34 USB multimeter

Image by Banggood

The ubiquitous USB multimeters aren't much use for testing cables. All I've personally seen have a USB A plug on one end and USB A socket on the other, so you can't connect them on the end of a micro USB cable. The only one I found that has a micro USB connector is the Riden UM34C. Its software also apparently has a mode for measuring cable resistance, as this video demonstrates, which conveniently calculates resistance from voltage and current measurements. However, you also need an adjustable DC load in addition to the multimeter.

I can't say much about the accuracy of this device without testing it in person. I like the fact that you can measure the cable at a high current. Contacts in connectors usually have a slightly non-linear characteristic, so a measurement at a low current can show a higher resistance than in actual use. The device also apparently compensates for the internal resistance of the source. At least that's my guess why it requires two measurements at approximately the same current: one with a cable and one without.

This was the only reasonably priced device I found that was actually in stock and could be ordered in an ready-to-use state.

USB Cable resistance tester from FemtoCow

Image by FemtoCow

I really like the approach FemtoCow USB cable resistance tester takes. It's very a simple PCB that allows you to use an adjustable lab power supply and a multi-meter to measure the resistance. It seems perfect when you already have all the necessary lab equipment, but just need a convenient setup with a reference resistor and a break-out for various USB connectors. I wanted to immediately order this one when I found it, but sadly it seems to be out of stock.

What I like about this method is again the fact that you are measuring the resistance at a high current. The method with the shunt resistor can be very accurate, since it doesn't depend on the accuracy of the multimeter. If the resistor value is accurate (and 1% resistors are widely available today), even multimeter calibration doesn't really matter, as long as the scale is roughly linear. The PCB also looks like it uses proper Kelvin connections so that resistance of the traces affects the measurement as little as possible.

USBcablecracker from SZDIY.

Finally, Gašper also pointed me to an open hardware project by the Shenzhen hackerspace SZDIY. The USB Cable Cracker is a stand-alone device based around the ATmega32U4. It tests the cable by passing approximately 25 mA through it. It then measures the voltage drop using an amplifier and ATmega's ADC and calculates the resistance. A switch allows you to measure either the power or the data lines. The measured value is displayed on an LCD. Gerber files for the PCB layout and firmware source are on GitHub, so you can make this device yourself (0603 passives can a bit of a pain to solder though). I haven't seen it sold anywhere in an assembled state.

The analog design of this device seems sound. The biggest drawback I think is the low current it uses for measurement. The digital part however looks like an overkill. The author wanted to also use it as a general development board. That is fine of course, but if you're making this only for testing cables, having an expensive 44-pin microcontroller just for using one ADC pin seems like a huge waste. Same with the large 16x2 LCD that only shows the resistance. Another thing that I was missing was a more comprehensive BOM, so if you want to make this yourself be prepared to spend a bit of time searching for the right parts that fit the PCB layout.


In conclusion, this problem of measuring USB cabling was a bit of a rabbit hole I fell into. For all practical purposes, probably any of the methods above is sufficiently accurate to find out cables that are grossly out of spec. I guess you could even do it with a 3½ digit multimeter on the 200 Ω range and a cut-off extender cable as a break-out to access the connections. In the end, if all you're interested in is stability of a Raspberry Pi, just switching cables until you find one where it runs stable works as well.

On the other hand, there is some beauty in being able to get trustworthy and repeatable measurements. I wasn't happy with any of the tools I found and considering I already wasted plenty of time researching this I decided to make my own. It's heavily inspired by FemtoCow's design and I'll write about it in another post.

Posted by Tomaž | Categories: Analog

Comments

DC resistance might be secondary. 1,5 m wire at 1 A should not be a problem. I experienced some RF interference so I wonder bandwidth and common mode currents. Also shielding. AVO at 200 Ohms should be enough for DC. My car converter with AVC helps...

73 de S56A

Thanks for your excellent outline on measuring the resistance of USB cables via numerous techniques, and the questions this raises regarding cable quality.

In order to do this myself early this year, I bought several items from Amazon.com:

1. MakerHawk (Ruideng) UM 25C USB multimeter with USB A male, USB female and USB C in and out connections, with Bluetooth for interface to Android App or PC app - (don’t trust anything you download and run here). This meter displays cable resistance exactly as per your video demo.

2. USB Load Tester Electronic Load Tester Resistor Module Trigger QC2.0 QC3.0 25W 0.25-4A HD25 USB Interface Discharge Adjustable Constant Current Intelligent Temperature Control with Cooling Fan by MakerHawk

3. MakerHawk 7 in one USB converter board adapter. Has the following connections: USB A male, USB female, USB C, Mini USB, Micro USB, iPhone Lightning connector, DC 5 v, 2.5 mm power connector. This is the only way I could test my USB to Lightning cables.

4. RIITOP Short USB 3.0 Extension Cable Type A Male to Female Blue 1 Foot (2-Pack). Used to extend connection from USB power supply to make it easier to read the meter.

Bottom line, I was doing the same things as in a YouTube video. However, I wonder how I really tell which is my best cable? Per the USB Meter instructions, I set the load for 1.0 Amps, and got measurements from 0.302 ohms to 0.745 ohms on the same cable on multiple attempts.

So really, what’s good and what’s bad? It seems at these low resistances, nothing stands out. Unless maybe the DATA CABLE readings may cause the phone to request different voltages and currents from the power supply - I’ve seen up to 20 volts at .5 Amps from a 30 watt USB C power supply with USB C to Lightning cable that works great on my iPad Pro. So is it the MODE (PD2, QC 2) the thing that is making one cable work better than another?

Posted by Gino

When measuring the cable resistance, every connector will have a significant effect because of contact resistance. This depends on the quality of connectors (gold plating, etc.) but it's best to not use any adapters or extensions in such measurements.

The resistance of the copper cores in the cable doesn't change between measurements, but the contact resistance will (because the connectors will sit slightly differently on each attempt). If you got a range from 0.3 to 0.7 Ω, I'm guessing you were mostly measuring the resistance on connectors, not the copper cores. From these measurements you can only deduce that the resistance of copper is somewhere below 0.3 Ω.

USB IF publishes some detailed specifications for cables and connectors. The overall resistance for the power lines should generally be below 0.25 Ω according to these documents.

https://usb.org/documents

Using power delivery profiles that use higher voltages (and hence lower currents) will definitely reduce the effect of cable resistance, but this is a whole new topic.

Posted by Tomaž

Tomaž:
Thank you for your comments. Re: the readings of .3 and .7 ohms, I accidentally copied data from two different cables. The single cable readings were more like .3 and .5 ohms. I agree that the practice of unplugging the meter from the power supply and then inserting the cable in between isn’t the greatest. Also, I need to use that multi-adapter to test the Lightning cable, which may add resistance to the whole system.

I also plan to take future readings without the extension cable in an area where I can plug the USB meter directly into the adapter.

Bottom line, I think only gross differences would be noteworthy, and I will just continue to find better cables based on performance. For example, the Lightning connectors on the cables I’m looking to replace get warm and don’t charge my iPad Pro quickly with a 15 watt QC 2 power supply. This makes me think that the Lightning connector plug probably has too much resistance at the connector pins.

Using my Anker 30 watt USB C power supply with Anker USB C to Lightning cable results in quick charging with no overheating of anything.

Maybe folks out there could comment on cables and chargers they have used that make a real difference in performance.

Posted by Gino

Add a new comment


(No HTML tags allowed. Separate paragraphs with a blank line.)