Protocol Analyzer Output - manuelbl/usb-pd-arduino GitHub Wiki
The protocol analyzer creates output as shown below.
It logs events such as Connected: CC2
or Disconnected
. Most of the output will consist of the recorded messages.
A USB PD messages consists of preamble, a start of package sequence (or ordered set), a message header, optional objects, a CRC checksum and a end of packet symbol. The protocol analyzer shows the SOP sequence, the header and the objects. The header is partially decoded.

The columns are:
Column | Information | Origin |
---|---|---|
Timestamp | Time of event or message (in µs since start of MCU) | PHY |
RX / TX | Indicates if message was received or transmitted. In monitoring mode, it will always be RX
|
PHY |
CC line | CC line where message was transmitted. Either CC1 or CC2
|
PHY |
Start of package sequence | Type of SOP sequence, usually SOP for messages between source and sink or SOP' for messages from an to active cable. |
SOP sequence |
Message originator | Component that sent message, either Source , Sink , Cable or Port
|
Message header |
Message type | Type of message | Message header |
Message ID | Consecutive ID of message. Separate sequence for each originator | Message header |
Message header | Complete message header | Message header |
Object n | Optional objects (of data messages) | Message objects |
Some of the data messages are decoded (currently Source Capabilities and Request). They show what voltages and currents the power supply offers and what voltage and current the sink requests:

Note that the Request message will always refer to one advertised capabilities. So when requesting a fixed voltage, the Request message will not specify the voltage but rather the so called object position, i.e. the index of the capability.