CAN Frame Decoder

The J1939 CAN Frame Decoder translates raw CAN bus data into human-readable parameter values. Enter the 29-bit extended CAN identifier (8 hex characters) and the 8 data bytes from your bus analyzer or diagnostic tool to instantly decode every parameter in the frame — with physical values, engineering units, and valid ranges pulled directly from the SAE J1939DA standard.

Loading J1939DA decoder database...

Examples: EEC1 (Engine Speed) ET1 (Temperatures) EEC2 (Throttle)

PGN
Priority
Source Address
Destination

Data bytes (click to highlight)

Decoded parameters

Every J1939 CAN frame consists of two parts: the 29-bit identifier and up to 8 bytes of payload data. The identifier encodes the message priority (bits 28–26), the Data Page bit (bit 24), the PGN (bits 23–8 for broadcast messages, or bits 23–16 for peer-to-peer), and the Source Address (bits 7–0). The decoder extracts all of these fields automatically from the 8-character hex header you provide.

The data bytes are decoded using the scaling parameters defined in the J1939DA standard for each SPN: physical value = (raw value × scale factor) + offset. A value of 0xFF in a 1-byte SPN or 0xFFFF in a 2-byte SPN indicates “Not Available” — the transmitting ECU is reporting that the parameter is not currently measurable or not supported. These N/A values are displayed clearly in the decoder output so technicians can immediately identify which parameters are active and which are not reported.

Broadcast PGNs (PDU Format ≥ 240) include the destination address in the PGN itself — the PS byte becomes part of the PGN number. Peer-to-peer PGNs (PDU Format < 240) use the PS byte as the destination address, which the decoder extracts and displays separately as the target node address. For fault code information on any SPN shown in the decoded frame, use the SPN FMI Lookup tool. For complete PGN documentation including transmission rates and data length, use the PGN Lookup tool.