Where PGN Fits in the J1939 Structure
J1939 organizes vehicle data into messages, and each type of message has a Parameter Group Number — PGN. The PGN defines what a message contains, how frequently it should be broadcast, and which SPNs are packaged inside it. For example, the Electronic Engine Controller message has a specific PGN and contains several engine-related SPNs transmitted together in one message.
From a fault diagnosis perspective, PGN is usually invisible — service tools and dashboard displays present fault codes as SPN and FMI, with source address, rather than as PGN. PGN becomes relevant when integrating body builder electronics, telematics devices, or custom monitoring systems that need to subscribe to specific message streams from the J1939 network.
PGN vs SPN — The Relationship
Think of the PGN as the container and the SPNs as the individual items inside it. A single PGN broadcast carries multiple SPNs, each occupying specific bit positions within the message data frame. When the engine ECM broadcasts an electronic engine controller message, it includes engine speed (SPN 190), engine load (SPN 92), accelerator position (SPN 91), and several other SPNs in the same message.
For fault diagnosis, working at the SPN level is sufficient. For network integration and data streaming, understanding PGN structure is necessary to know which message to subscribe to in order to receive a specific parameter.
Diagnostic Trouble Code PGNs
J1939 defines specific PGNs for broadcasting diagnostic trouble codes. The DM1 (Diagnostic Message 1) PGN broadcasts currently active fault codes. DM2 broadcasts previously active faults. DM3 is the clear-all-faults message. A J1939 diagnostic tool reads these specific diagnostic PGNs to populate its active and inactive fault code displays.
Understanding this helps explain why a fault code may appear in a telematics report without being visible on the truck's own display — if the telematics device is monitoring DM1 directly and the cab display only shows certain lamp-illuminating codes, the telematics record may contain more fault detail than the driver sees.
Related Pages
Sources
- SAE J1939 Standards Collection SAE International · official · accessed 2026-05-05 · confidence medium
Source: SAE International, SAE J1939 Standards Collection. This page paraphrases factual fields only and is not a substitute for the original document.
Open source - NHTSA Manufacturer Communications Search National Highway Traffic Safety Administration · government · accessed 2026-05-05 · confidence high
Source: National Highway Traffic Safety Administration, NHTSA Manufacturer Communications Search. This page paraphrases factual fields only and is not a substitute for the original document.
Open source
FAQ
Do drivers or fleet managers need to know PGN values for typical fault diagnosis?
Not usually. PGNs are more relevant to engineers integrating telematics or body builder electronics with the J1939 network. For fault code diagnosis, the SPN, FMI, and source address are the primary identifiers. PGN context appears in detailed J1939 protocol documentation but rarely in day-to-day service tool interfaces.
Is a PGN the same as an SPN, or are they at different levels of the protocol?
They are at different levels. A PGN is a message container — it defines how a group of related signals is packaged and transmitted on the bus. SPNs are the individual signals within that message. A single PGN can contain several SPNs. When the ECM broadcasts a diagnostic message, it is sending a PGN that contains, among other fields, the SPN and FMI of the fault.
Does PGN appear on dashboard fault code displays or service tool screens?
On most standard service tools and dashboard displays, PGN is not shown for fault codes — SPN, FMI, and SA are the typical displayed fields. PGN information appears in low-level bus monitoring tools (such as J1939 sniffers or protocol analyzers) used for network engineering or integration work rather than routine fault diagnosis.