GitHub - T76-org/drpd: An open-source USB-PD protocol analyzer that supports EPR and can act as a programmable sink

GitHub

3 min read Original article ↗

Dr. PD - Open-source USB Power Delivery Analyzer and Programmable Sink

DRPD Case Render

Dr. PD is a fully-featured USB Power Delivery (USB-PD) analyzer and programmable sink. It is designed to help characterize and troubleshoot USB-PD devices like chargers, cables, and sink devices.

Note

Dr. PD will be available for crowdfunding soon through Crowd Supply. Visit our prelaunch page to sign up and receive updates on the project, including the crowdfunding launch.

Features

Dr. PD can capture and decode USB-PD messages, measure voltage and current, and even emulate a USB-PD sink device to test chargers and cables under various conditions.

You can find out more about its features in the online datasheet, but here are some important highlights:

USB-PD protocol analysis

  • Real-time message decoding with detailed protocol analysis
  • Correlation of messages with VBUS voltage and current measurements
  • Sophisticated search and trigger capabilities based on message types, device attach/detach events, power level changes, or external signals

Programmable sink mode

  • Emulate specific sink behavior, trigger faults, or test edge cases without a dedicated test fixture
  • Analyze and test modern USB-PD implementations up to 48V / 5A / 240W with support for standard power delivery (SPR), extended power range (EPR), and programmable power supply modes (PPS/AVS)

Software

  • Real-time control software that runs in Chrome or Edge on Windows, macOS, Linux, and Android with no drivers or installation required
  • First-class automation support with Python and JavaScript host libraries, plus support for industry-standard SCPI and USBTMC command interfaces
  • Open-source hardware, firmware, and software with schematics and source code available on in this repo
  • USB-PD stack implemented in firmware (instead of depending on a dedicated external chip) for maximum flexibility and updatability

Documentation

You can access the full documentation for Dr. PD on the T76 website. The documentation includes a user manual, hardware and firmware design files, and software API references.

Downloadable hardware schematics in PDF and KiCAD format are available in the hardware folder of this repository. The current hardware version is R2605-A.

Interactive online schematics and PCB layout are available in the docs, which also contain a detailed, step-by-step description of the hardware design.

Screenshots

Click on the images below to view them in full size.

Dr. PD front panel Dr. PD back panel Dr. PD main interface
Front panel Back panel The Main interface runs in your browser and shows live analog measurement, message capture, and analysis.
USB-PD message details Sink inquiry workflow Source debugging workflow
The Message Detail breaks down each message into its constituent fields, timing data, CRC checks, and specification references. In Sink Mode, Dr. PD can interrogate the source by sending arbitrary messages to it. Source debugging: Dr. PD can correlate protocol traffic, electrical activity, errors, and recovery attempts to help troubleshoot connectivity between sources and sinks.
Malformed source response analysis Message log filters Capture trigger setup
Response analysis: Here, Dr. PD has discovered that the connected source sent a non-compliant response. Message log filters
Filter by message type, sender, receiver, SOP type, CRC, and flags.
Capture trigger setup
Trigger on protocol stages, message types, thresholds, or synchronized pulses.

Project status

Dr. PD is currently undergoing device validation testing and will be available for crowdfunding soon through Crowd Supply. Visit our prelaunch page to sign up and receive updates on the project, including the crowdfunding launch.