USB nowadays is what the parallel port was 10-15 years ago. It’s everywhere and it became fairly easy to design with. But USB is also more capable and flexible (think speed, OS independence, mobile devices, power supply,..). This makes it per definition more difficult to handle. So I needed a way to cope with it.


One of the things that causes me most troubles is the power supply. Some odd devices violate/ignore the USB spec (5V ±0.25V), some cables aren’t really made for more than 200mA current, some cheap USB chargers are outright dangerous.

In the past I cut open USB cables and soldered 4mm “banana” plugs to it. I own a decent selection by now (Typ B, Mini, Micro, iPhone, Type A extension). But it is a nightmare because those measurement wires snap off easily and shorting 5V to ground is as easy as leaving the current path open. After all I am debugging a system and I am not focused on the “simple” task of connecting leads.

This is why I came up with a simple USB2.0 measurement card that plugs in series:

  • USB Type B input
  • USB Type A output
  • Testpoints for DP (D+) and DM (D-)
  • Current output
  • VBUS Voltage output

The picture above also shows 2 USB connectors with 50Ω SMD 1206 resistors soldered in. I use these to calibrate my current and voltage output under known load of 10Ω and 50Ω. It is crucial to use 4-Wire measurement to measure the “calibration” load exactly. Be careful those things get hot!

A spreadsheet quickly gives the scaling factors where the average of 3 load points improve accuracy.

Load U meas U real U factor I meas I theory I factor I check _
Ohm mV V V/V mV mA mA/mV mA
100M 388,37 4,979 12,820 -1,2 0,0 0,0
51,94 373,62 4,790 12,821 93,65 92,2 0,98475 91,8
10,67 324,12 4,155 12,819 409,6 389,4 0,95071 397,5
 Avg 12,820 0,96773