J1939 PGN Calculator & Decoder

Free online tool to decode, convert, and look up J1939 Parameter Group Numbers and 29-bit CAN identifiers. Enter a PGN in decimal or hex, or paste a full 29-bit CAN ID, and see the priority, data page, PDU format, PDU specific, and source address breakdown. Comes with a small set of common SPNs as educational examples to illustrate how decoding works.

Open PGN Calculator

J1939 PGN Calculator — decoding PGN 61443 (EEC2) showing field breakdown (priority, DP, PF, PS) and SPN list including Accelerator Pedal Position, Engine Percent Load at Current Speed, and Road Speed Limit Status

What the PGN Calculator Does

Decode PGN → Fields

Enter a PGN number (e.g. 61444) and get the full breakdown: data page, PDU format (PF), PDU specific (PS), PDU1 vs PDU2 classification, and any matching name/acronym available in the tool.

CAN ID → PGN Conversion

Paste a 29-bit CAN ID in hex (e.g. 0x0CF00400) and extract the embedded PGN, priority, source address, and destination. Handles both PDU1 (peer-to-peer) and PDU2 (broadcast) frames automatically.

Build PGN → CAN ID

Set priority, PGN, and source address to construct the full 29-bit extended CAN ID. Useful when configuring transmit messages in ECU software or CAN bus analyzers.

J1939 PGN/SPN Lookup

Browse, search, and inspect PGNs, SPNs, parameter group definitions, transmission rates, data lengths, scaling, bit positions, units, ranges, and signal definitions in one place. The tool includes selected examples for training, and advanced use cases can use your own DBC/reference files to decode using your definitions.

Batch Decode

Paste multiple CAN IDs from a log file or trace capture and decode them all at once. Identify which J1939 PGNs are on the bus without decoding one by one.

No Software Required

Runs entirely in your browser. No downloads, no license keys, no Java runtime — open a tab and start decoding. Works on desktop, tablet, and mobile.

How J1939 PGN Decoding Works

In SAE J1939, every CAN message uses a 29-bit extended identifier. Unlike standard 11-bit CAN, the J1939 identifier encodes structured information about the message content, its priority, and the sending ECU.

29-Bit CAN ID Structure

The 29-bit identifier is divided into fields:

FieldBitsDescription
Priority3Message priority (0 = highest, 7 = lowest). Engine control messages typically use priority 3.
Reserved1Reserved bit, always 0 in J1939.
Data Page (DP)1Selects between page 0 (standard J1939) and page 1 (extended).
PDU Format (PF)8Determines the message type. PF < 240 = PDU1 (peer-to-peer), PF ≥ 240 = PDU2 (broadcast).
PDU Specific (PS)8In PDU1: destination address. In PDU2: group extension (part of the PGN).
Source Address (SA)8Address of the ECU transmitting the message (0–253).

PGN Extraction from a CAN ID

The Parameter Group Number (PGN) is extracted differently depending on the PDU type:

  • PDU2 (PF ≥ 240): PGN = DP + PF + PS — the PS field is a group extension, so it’s part of the PGN. Example: CAN ID 0x18FEF200 → PGN 65266 (FMS/Fuel Economy).
  • PDU1 (PF < 240): PGN = DP + PF only — PS is the destination address, not part of the PGN. Example: CAN ID 0x0CF00400 → PGN 61444 (EEC1), destination = global (broadcast).

Selected SAE J1939 PGN/SPN Examples

PGNAcronymNameKey SPNs
61444EEC1Electronic Engine Controller 1Engine Speed (190), Engine Torque (513)
61443EEC2Electronic Engine Controller 2Accelerator Pedal Position (91), Engine Load (92)
65262ET1Engine Temperature 1Engine Coolant Temp (110), Fuel Temp (174)
65263EFL/P1Engine Fluid Level/Pressure 1Oil Pressure (100), Coolant Level (111)
65265CCVSCruise Control/Vehicle SpeedWheel-Based Vehicle Speed (84)
65266LFEFuel Economy (Liquid)Fuel Rate (183), Instant Fuel Economy (184)
65269AMBAmbient ConditionsBarometric Pressure (108), Ambient Air Temp (171)
65270IC1Inlet/Exhaust Conditions 1Boost Pressure (102), Intake Temp (105)
65271VEP1Vehicle Electrical Power 1Battery Voltage (168), Alternator Current (114)
65279DM1Active Diagnostic Trouble CodesSPN + FMI + OC (fault codes)

Search J1939 PGN examples in the calculator →

J1939 SPN List & Lookup

Each PGN contains one or more Suspect Parameter Numbers (SPNs). An SPN defines a single signal within the 8-byte data payload — its bit position, length, scaling factor, offset, unit, and valid range.

For example, PGN 61444 (EEC1) contains SPN 190 (Engine Speed) at bytes 4–5 with a resolution of 0.125 RPM/bit, giving a range of 0–8,031.875 RPM.

The PGN Calculator lets you search by PGN number, name, or SPN number across the data it’s working with. It ships with a small set of common SPNs as educational examples — for the full SAE J1939 specification, see the J1939 Digital Annex from SAE International.

Frequently Asked Questions

What is a J1939 PGN?

A Parameter Group Number (PGN) is a unique identifier in the SAE J1939 protocol that defines a group of related parameters. For example, PGN 61444 is “Electronic Engine Controller 1” and contains engine speed, torque, and starter mode. PGNs range from 0 to 131,071 and are embedded within the 29-bit CAN identifier.

How do I convert a CAN ID to a PGN?

Extract bits 8–25 of the 29-bit CAN identifier. If the PDU Format (PF) field is 240 or higher (PDU2), the PGN includes the PDU Specific (PS) byte as a group extension. If PF is below 240 (PDU1), the PS byte is the destination address and is NOT part of the PGN. Our CAN ID to PGN converter handles this automatically.

What is the difference between PDU1 and PDU2?

PDU1 (PF < 240) messages are peer-to-peer — the PS field specifies which ECU the message is addressed to (or 0xFF for global broadcast). PDU2 (PF ≥ 240) messages are always broadcast, and the PS field extends the PGN number. Most common J1939 messages (EEC1, CCVS, temperatures) are PDU2.

What is a J1939 SPN?

A Suspect Parameter Number (SPN) identifies a single data signal within a PGN’s 8-byte payload. Each SPN defines the bit position, length, resolution, offset, and unit. For example, SPN 190 is “Engine Speed” with 0.125 RPM/bit resolution. SPNs are also used in Diagnostic Trouble Codes (DTCs) alongside a Failure Mode Identifier (FMI).

Do you have the full J1939 PGN/SPN database?

No. The complete SAE J1939 specification — including the Digital Annex with the full set of PGN and SPN definitions — is maintained and licensed by SAE International. The Digital Annex contains thousands of SPN definitions covering the full heavy-duty vehicle, marine, and industrial CAN ecosystems. Our PGN Calculator includes a small set of commonly-used PGNs and SPNs as educational examples to illustrate how J1939 decoding works. For real-world work with your own data, you can upload your own DBC or reference file into the tool and we’ll decode against your definitions.

Is this PGN calculator free?

Yes. PGN decoding, CAN ID conversion, and PGN lookup are free with no account required. Pro features include batch decoding from log files, DBC/reference file support, and building CAN IDs from custom fields.

Start Decoding J1939 PGNs

No download. No signup required for basic decoding. Open the calculator and paste a PGN or CAN ID.

Open PGN Calculator

Need to understand J1939 at a deeper level? Our CAN Troubleshooting course covers J1939 protocol analysis, PGN/SPN interpretation, and real-world diagnostic techniques.

SAE® and J1939® are registered trademarks of SAE International. CANbus Academy is not affiliated with, sponsored by, endorsed by, or authorized by SAE International. This page includes selected J1939 examples for education and does not provide or replace the complete SAE J1939DA database. Users are responsible for the files and data they upload.