NMEA 2000 PGN Decoder
Decode a 29-bit NMEA 2000 CAN identifier into priority, PGN, source address, destination address, PDU format and PDU specific fields. Optionally enter payload bytes to inspect raw NMEA 2000 message data and recognize common PGNs.
—
—
What Is an NMEA 2000 PGN Decoder?
An NMEA 2000 PGN Decoder extracts the Parameter Group Number and addressing information from the 29-bit CAN identifier used by an NMEA 2000 marine network. The identifier contains fields such as priority, data page, PDU format, PDU specific and source address.
The PGN identifies the type of information carried by a message. Examples include vessel heading, position, speed, GNSS data, engine parameters, environmental information and network-management messages.
NMEA 2000 29-bit CAN Identifier
29-bit identifier concept:
Priority
Reserved
Data Page
PDU Format
PDU Specific
Source Address
These fields determine:
• message priority
• PGN
• source node
• destination for PDU1 messagesNMEA 2000 uses the extended CAN identifier rather than the standard 11-bit CAN identifier.
How the NMEA 2000 PGN Is Calculated
The PGN calculation depends on the PDU Format value. This distinction is important because simply taking the middle bytes of the CAN identifier can produce the wrong PGN for destination-specific messages.
If PF < 240:
PDU1 format
PGN =
(Data Page << 16) |
(PDU Format << 8)
PDU Specific =
Destination Address
If PF ≥ 240:
PDU2 format
PGN =
(Data Page << 16) |
(PDU Format << 8) |
PDU SpecificPDU1 vs PDU2 in NMEA 2000
| Property | PDU1 | PDU2 |
|---|---|---|
| PDU Format | 0–239 | 240–255 |
| PDU Specific | Destination | PGN group extension |
| PGN Low Byte | 00 | PDU Specific |
| Addressing | Destination-specific possible | Normally broadcast |
Common NMEA 2000 PGNs
| PGN | Typical Description |
|---|---|
| 59392 | ISO Acknowledgement |
| 59904 | ISO Request |
| 60928 | ISO Address Claim |
| 126208 | NMEA Group Function |
| 126464 | PGN List |
| 126996 | Product Information |
| 127245 | Rudder |
| 127250 | Vessel Heading |
| 127251 | Rate of Turn |
| 127257 | Attitude |
| 127488 | Engine Parameters, Rapid Update |
| 127489 | Engine Parameters, Dynamic |
| 128259 | Speed, Water Referenced |
| 128267 | Water Depth |
| 129025 | Position, Rapid Update |
| 129026 | COG & SOG, Rapid Update |
| 129029 | GNSS Position Data |
| 129539 | GNSS DOPs |
| 129540 | GNSS Satellites in View |
| 130306 | Wind Data |
| 130310 | Environmental Parameters |
NMEA 2000 Priority
The CAN identifier includes a three-bit priority field. Lower numerical values represent higher CAN arbitration priority.
Priority range:
0 through 7
0 = highest numerical arbitration priority
7 = lowest numerical arbitration priorityPriority is separate from the PGN itself. Two CAN identifiers can therefore carry the same PGN while using different source addresses or priorities.
NMEA 2000 Source Address
The least-significant eight bits of the CAN identifier contain the source address. This identifies the network address currently used by the transmitting device.
Source Address:
8 bits
Range:
0–255
Example:
0x17 = decimal 23NMEA 2000 Destination Address
A destination address is directly encoded in the PDU Specific field only for PDU1 messages. If the PDU Format is less than 240, the PDU Specific byte is interpreted as the destination address.
For PDU2 messages, the same byte contributes to the PGN instead, so the calculator displays the destination as broadcast rather than incorrectly treating the group-extension byte as an address.
Single-Frame and Multi-Packet NMEA 2000 Messages
A classical CAN data frame carries up to eight payload bytes. Some NMEA 2000 parameter groups require more data than can fit into one frame and therefore use an NMEA 2000 transport mechanism such as Fast Packet or ISO transport.
A single captured CAN frame from a multi-packet message does not necessarily contain the complete application payload. Such messages must be reassembled before all application fields can be interpreted correctly.
PGN vs CAN Identifier
The PGN and the complete CAN identifier are not interchangeable. A PGN describes a parameter group, while the 29-bit identifier additionally contains priority and source-address information and, for PDU1 traffic, a destination address.
CAN Identifier
↓
Priority + addressing + PGN fields
↓
PGN
↓
Message type / parameter groupWhy Payload Bytes Cannot Always Be Decoded Automatically
The PGN determines the standardized layout for known NMEA 2000 parameter groups, but proprietary PGNs can use manufacturer-specific structures. Multi-frame payloads also need to be correctly reassembled before interpreting their fields.
For that reason, this tool always provides the raw normalized payload and CAN-ID structure even when it does not have a safe application-level decoder for the selected PGN.
NMEA 2000 PGN Decoder FAQs
What is a PGN in NMEA 2000?
Does NMEA 2000 use standard or extended CAN IDs?
What is PDU Format?
What happens when PF is below 240?
What happens when PF is 240 or higher?
What is PGN 129025?
What is PGN 127250?
What is PGN 129026?
Can an NMEA 2000 message exceed eight bytes?
Can this decoder identify proprietary marine data?
Decode NMEA 2000 CAN IDs and PGNs
Extract NMEA 2000 priority, Parameter Group Number, source address, destination information, PDU fields and raw payload bytes from extended marine CAN messages.