USB PD Message Decoder: PDO, RDO, AVS and Cable VDO
Turn analyzer bytes into named USB PD messages, power capabilities, requests, and cable identity fields.
The sequence view also checks the core path from advertised capabilities to PS_RDY.
Message input
Header + 0 to 7 data objects
Byte order
Wire bytes, little-endian fields
Object support
Fixed, battery, variable, PPS, AVS
Privacy
Decoded locally; input is not uploaded
Contract timeline
One message per line
Optional prefixes: TX:, RX:, SOP:. GoodCRC lines are shown but ignored by the contract state check.
CRC bytes can be removed from the input length check, but this tool does not calculate or validate the CRC.
Decode result
Decoding...
Bench workflow
Where these bytes come from
- 01Capture CC traffic with a USB PD analyzer, PD-capable oscilloscope decoder, or the trace output of your port controller.
- 02Export each decoded message as header and payload bytes. Keep message boundaries; one line in the sequence view equals one PD message.
- 03Use
TX:andRX:labels when available. They are preserved for reading but the role bits in the PD header remain authoritative. - 04Return to the original analyzer when the issue involves CC voltage, BMC symbols, timing, retries, CRC, resets, or electrical compliance.
Byte-order check
Do not reverse the whole packet
- Wire bytes
- A1 61 2C 91 01 08 ...
- Decoded 16-bit header
- 0x61A1 - Source_Capabilities, 6 objects
- First decoded 32-bit PDO
- 0x0801912C - fixed 5 V / 3 A
Object-only and cable-identity modes instead expect the already assembled 32-bit words shown by most controller logs.
Interpretation limits
A complete four-message path is useful evidence, not proof of a correct implementation. EPR entry and exit, swaps, resets, extended-message chunking, timing, source power rules, cable authenticity, and electrical behavior need the full trace and the applicable USB-IF test procedures. An e-marker reports claims stored in the cable; software cannot verify the conductors or insulation inside it.
USB PD decoding FAQ
Why does the header object count matter?
The three-bit field declares zero to seven 32-bit objects. A byte count mismatch usually means the capture still includes SOP/CRC bytes, a message boundary was lost, or the byte order was copied incorrectly.
Can a Request RDO be decoded without Source_Capabilities?
Its object position and raw fields can be shown, but their current, power, or programmable-voltage meaning depends on the selected PDO. The sequence view retains the preceding Source_Capabilities so it can apply the correct layout and limits.
Does EPR capable mean a cable is genuinely safe for 240 W?
No. It means the identity data claims EPR capability and the associated voltage/current fields can be checked for internal consistency. Only certified testing and physical construction can establish actual cable performance.
Specification and implementation references
Field layouts were reviewed against the USB-IF USB Power Delivery Specification Revision 3.2 Version 1.2, published May 20, 2026.
The message, PDO, RDO, and VDM definitions were cross-checked with the Linux kernel pd.h and pd_vdo.h headers.
Current cable VDO interpretation was also compared with the open-source WhatCable decoder and its public test corpus. USB-IF specifications remain authoritative.
Related USB-C and PD resources
- USB-C PD Contract CheckerTool
Model the source, cable, and sink limits before comparing them with a captured negotiation.
- USB-C PD Hardware Design GuideGuide
Carry protocol findings into controller, protection, inrush, power-path, and layout decisions.
- USB-C Pinout ExplorerTool
Verify CC, VCONN, VBUS, SBU, and data-lane assignments around the captured port.