Dr. PD, The USB Power Delivery Doctor, Is In — And Makes USB Power Supply Debugging a Cinch
Open source gadget connects to your device-under-test and provides everything from negotiation observation to manual power control.
Marco Tabini is preparing to launch a crowdfunding campaign for an open source gadget designed to make it easier to work with USB Power Delivery (PD): Dr. PD.
"Dr. PD is a USB Power Delivery (USB-PD) power analyzer and programmable sink for engineers, hardware hackers, repair technicians, and anyone who wants to understand what happens between a USB Type-C power source and the device attached to it," Tabini explains. "Place it inline between a charger and a device, and Dr. PD captures the negotiation, measures voltage and current, and shows you exactly how power is being offered, requested, and delivered. But Dr. PD is not just a passive observer — it can also act as a programmable USB Type-C sink, allowing you to request supported power profiles directly from compatible sources. That makes it useful both as a diagnostic instrument and as a practical lab tool for testing and characterizing chargers, cables, battery banks, docks, and USB-powered devices."
The Dr. PD unit itself is built around a Raspberry Pi RP2354A microcontroller, and uses USB micro-B for power and data — an unusual choice in the era of ubiquitous USB Type-C connectivity, but it does at least help keep the board's own power port distinct from the two USB Type-C ports on the front. The first of these is used to connect to the device-under-test; the second is a passthrough connector. There are also BNC connections at either end, providing CC-line and sync links to external instruments if required.
Two banana jacks on the front of the box offer direct voltage and current measurement as well as sink operation, while the power side of things can handle up to 60V at 6A — though support for the USB Power Delivery 3.2 standard with Extended Power Range (EPR) means that the most that can be negotiated from a compatible USB power supply is 48V at 5A for a total of 240W. Both voltage and current can be limited, with configurable over-voltage and over-current protection, and there's a web-based user interface along with a Python app and Standard Commands for Programmable Instruments (SCPI) support.
"We designed Dr. PD to be useful even if you aren't an expert in USB power negotiation," Tabini says. "It logs and visualizes each message, providing a complete, human-readable breakdown of its contents and context. So, instead of relying on an oscilloscope or logic analyzer, you can watch a full USB-PD negotiation and correlate the messages exchanged by sink, source, and cables with changes in voltage and current. That is useful whether you are characterizing a power bank, investigating a charging problem, validating a third-party adapter, or just trying to understand why one configuration works and another one does not."
Tabini is preparing to launch a crowdfunding campaign for the Dr. PD, with interested parties invited to sign up on Crowd Supply to be notified when it goes live; he has pledged to release board schematics, firmware and host software source code, documentation, protocol notes, and a bill of materials under the reciprocal GNU General Public License 3, though at the time of writing these were not yet available.