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.

What the PGN Calculator Does
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.
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.
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.
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.
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.
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:
| Field | Bits | Description |
|---|---|---|
| Priority | 3 | Message priority (0 = highest, 7 = lowest). Engine control messages typically use priority 3. |
| Reserved | 1 | Reserved bit, always 0 in J1939. |
| Data Page (DP) | 1 | Selects between page 0 (standard J1939) and page 1 (extended). |
| PDU Format (PF) | 8 | Determines the message type. PF < 240 = PDU1 (peer-to-peer), PF ≥ 240 = PDU2 (broadcast). |
| PDU Specific (PS) | 8 | In PDU1: destination address. In PDU2: group extension (part of the PGN). |
| Source Address (SA) | 8 | Address 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
| PGN | Acronym | Name | Key SPNs |
|---|---|---|---|
| 61444 | EEC1 | Electronic Engine Controller 1 | Engine Speed (190), Engine Torque (513) |
| 61443 | EEC2 | Electronic Engine Controller 2 | Accelerator Pedal Position (91), Engine Load (92) |
| 65262 | ET1 | Engine Temperature 1 | Engine Coolant Temp (110), Fuel Temp (174) |
| 65263 | EFL/P1 | Engine Fluid Level/Pressure 1 | Oil Pressure (100), Coolant Level (111) |
| 65265 | CCVS | Cruise Control/Vehicle Speed | Wheel-Based Vehicle Speed (84) |
| 65266 | LFE | Fuel Economy (Liquid) | Fuel Rate (183), Instant Fuel Economy (184) |
| 65269 | AMB | Ambient Conditions | Barometric Pressure (108), Ambient Air Temp (171) |
| 65270 | IC1 | Inlet/Exhaust Conditions 1 | Boost Pressure (102), Intake Temp (105) |
| 65271 | VEP1 | Vehicle Electrical Power 1 | Battery Voltage (168), Alternator Current (114) |
| 65279 | DM1 | Active Diagnostic Trouble Codes | SPN + FMI + OC (fault codes) |
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.
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.
