Skip to content

PGN reference ​

An NMEA 2000 message is identified by its PGN, its Parameter Group Number. The PGN says what the message is — 128267 is Water Depth, 129029 is a GNSS position — and every device on the bus broadcasts a handful of them.

This chapter lists every PGN this daemon decodes, every one it transmits, and how the multi-frame protocol works underneath. It is reference material for someone reading a candump capture or writing a compatible device; nothing here is needed to use the system.

Names below are the ones the decoders use.

Protocol PGNs ​

These carry the network itself rather than boat data. They are handled in the dispatcher and the address claim core.

PGNHexNameTXRX
593920xE800ISO Acknowledgmentyesyes
599040xEA00ISO Requestyesyes
609280xEE00Address Claimedyesyes
652400xFED8Commanded Addressyes
1262080x1ED00Request / Command / Acknowledge Group Functionyesyes
1264640x1EE00Transmit and Receive PGN Listsyesyes
1269930x1F011Heartbeatyes
1269960x1F014Product Informationyes
1269980x1F016Configuration Informationyes

126208 is used in both directions: the daemon answers Request and Command group functions addressed to it, and transmits Command group functions to change a remote device's instance or one field of one of its PGNs — see Navigation.

The contents of 126996 and 126998 are set by the --nmea-version, --product-code, --model-id, --product-name, --serial-number, --cert-level, --load-equiv and --install-desc1 options. Defaults are in Reference.

Alerts ​

PGNHexNameTXRX
1269830x1F007Alertyes
1269840x1F008Alert Responseyes
1269850x1F009Alert Textyes

126986, Alert Configuration, is defined but neither transmitted nor decoded. See Alarms.

PGNHexNameFramesEncoder
652670xFEF3Vehicle Position (J1939)single
652560xFEE8Vehicle Direction/Speed (J1939)single
1290250x1F801Position, Rapid Updatesingleyes
1290260x1F802COG & SOG, Rapid Updatesingleyes
1290290x1F805GNSS Position Datafastyes
1290440x1F814Datumfast
1292830x1F903Cross Track Errorsingleyes
1292840x1F904Navigation Datafastyes
1292850x1F905Route/WP Informationfast
1292910x1F90BSet & Drift, Rapid Updatesingle
1305770x1FE11Direction Datafastyes

Time and date ​

PGNHexNameFrames
1269920x1F010System Timesingle
1290330x1F809Time & Datesingle

GNSS and satellites ​

PGNHexNameFramesEncoder
1295390x1FA03GNSS DOPssingleyes
1295400x1FA04GNSS Satellites in Viewfastyes
1295420x1FA06GNSS Range Residualsfast
1295470x1FA0BGNSS Pseudorange Error Statisticsfast

Steering and attitude ​

PGNHexNameFramesEncoder
1272370x1F105Heading/Track Controlfastyes
1272450x1F10DRuddersingleyes
1272500x1F112Vessel Headingsingleyes
1272510x1F113Rate of Turnsingleyes
1272570x1F119Attitudesingleyes

Speed, depth and log ​

PGNHexNameFramesEncoder
1280000x1F400Nautical Leeway Anglesingle
1282590x1F503Speed, Water Referencedsingleyes
1282670x1F50BWater Depthsingleyes
1282750x1F513Distance Logfast

Environment ​

PGNHexNameFramesEncoder
1272580x1F11AMagnetic Variationsingle
1303060x1FD02Wind Datasingleyes
1303100x1FD06Environmental Parameterssingleyes
1303110x1FD07Environmental Parameters (deprecated)single
1303120x1FD08Temperaturesingle
1303130x1FD09Humiditysingle
1303140x1FD0AActual Pressuresingle
1303160x1FD0CTemperature, Extended Rangesingle

Engine and transmission ​

PGNHexNameFramesEncoder
1274880x1F200Engine Parameters, Rapid Updatesingleyes
1274890x1F201Engine Parameters, Dynamicfastyes
1274900x1F202Engine Parameters, Staticfast
1274930x1F205Transmission Parameters, Dynamicsingleyes
1274940x1F206Transmission Parameters, Staticfast
1274960x1F208Trip Parameters, Vesselfastyes
1274970x1F209Trip Parameters, Enginefastyes
1274980x1F20AEngine Parameters, Staticfast
1305760x1FE30Trim Tab Statussingleyes

J1939 engine PGNs ​

Some engines and gensets on a marine bus speak J1939 rather than NMEA 2000 for their own data. These are decoded too:

PGNHexName
614430xF003Electronic Engine Controller 2 (EEC2)
614440xF004Electronic Engine Controller 1 (EEC1)
614450xF005Electronic Engine Controller 3 (EEC3)
652140xFEBEAuxiliary I/O Status (AUXIO)
652420xFEDASoftware Identification (SOFT)
652530xFEE5Engine Hours, Revolutions
652600xFEECVehicle Identification Number (VIN)
652620xFEEEEngine Temperature 1 (ET1)
652630xFEEFEngine Fluid Level/Pressure 1 (EFLP1)
652660xFEF2Fuel Economy, Liquid (LFE)
652700xFEF6Inlet/Exhaust Conditions 1 (IC1)
652710xFEF7Vehicle Electrical Power 1 (VEP1)
652720xFEF8Transmission Fluids (TF)

Electrical ​

PGNHexNameFrames
1275010x1F20DBinary Switch Bank Statussingle
1275030x1F20FAC Input Statusfast
1275040x1F210AC Output Statusfast
1275050x1F211Fluid Levelsingle
1275060x1F212DC Detailed Statusfast
1275070x1F213Charger Statusfast
1275080x1F214Battery Statussingle
1275090x1F215Inverter Statusfast
1275130x1F219Battery Configuration Statusfast
1277440x1F300AC Power / Current, Phase Asingle
1277450x1F301AC Power / Current, Phase Bsingle
1277460x1F302AC Power / Current, Phase Csingle
1277470x1F303AC Voltage / Frequency, Phase Asingle
1277480x1F304AC Voltage / Frequency, Phase Bsingle
1277490x1F305AC Voltage / Frequency, Phase Csingle
1277500x1F306Converter Statussingle
1277510x1F307DC Voltage / Currentsingle

AIS ​

PGNHexNameFramesEncoder
1290380x1F80EAIS Class A Position Reportfastyes
1290390x1F80FAIS Class B Position Reportfastyes
1290400x1F810AIS Class B Extended Position Reportfast
1290410x1F811AIS Aids to Navigation Reportfastyes
1297930x1FB01AIS UTC and Date Reportfast
1297940x1FB02AIS Class A Static and Voyage Related Datafastyes
1297950x1FB03AIS Addressed Binary Messagefast
1297960x1FB04AIS Acknowledgefast
1297970x1FB05AIS Binary Broadcast Messagefast
1297980x1FB06AIS SAR Aircraft Position Reportfastyes
1298010x1FB09AIS Addressed Safety Related Messagefast
1298020x1FB0AAIS Safety Related Broadcast Messagefastyes
1298090x1FB11AIS Class B Static Data, Part Afastyes
1298100x1FB12AIS Class B Static Data, Part Bfastyes
1298120x1FB14AIS Single Slot Binary Messagefast

The encoders exist because the simulator transmits realistic AIS traffic; the daemon itself does not transmit AIS on a boat.

DSC ​

PGNHexNameFrames
1298080x1FB10DSC Call Informationfast

Route and waypoint service ​

PGNHexNameFramesEncoder
1300640x1FC40Route and WP Service — Database Listfast
1300650x1FC41Route and WP Service — Route Listfast
1300660x1FC42Route and WP Service — Route/WP-List Attributesfastyes
1300670x1FC43Route and WP Service — Route, WP Name & Positionfastyes
1300680x1FC44Route and WP Service — Route, WP Namefast
1300690x1FC45Route and WP Service — XTE Limit & Navigation Methodfast
1300740x1FC4ARoute and WP Service — WP List, WP Name & Positionfast

Radar and target tracking ​

PGNHexNameFrames
1285200x1F608Tracked Target Datafast
1285210x1F609Tracked Target Informationfast
1285220x1F60ARadar Guard Zonefast
1285230x1F60BRadar Data Processing Statusfast
1285240x1F60CRadar Sweep Statusfast

Thrusters, windlass and watermaker ​

PGNHexNameFramesEncoder
1280060x1F406Thruster Control Statussingleyes
1280070x1F407Thruster Informationsingleyes
1280080x1F408Thruster Motor Statussingleyes
1287770x1F709Anchor Windlass Operating Statussingle
1287800x1F70CLinear Actuatorsingle
1305670x1FE07Watermaker Input Setting and Statusfast
1305680x1FE08Watermaker Operating Statusfast
1305690x1FE09Watermaker Production Statusfast

Fast Packet ​

Single CAN frames carry 8 bytes. Anything longer uses NMEA 2000's Fast Packet protocol, which splits the message across consecutive frames of the same PGN.

PropertyValue
Maximum payload223 bytes
Reassembly timeout750 ms
Frame counterfirst byte, bits 0–4
Sequence counterfirst byte, bits 5–7
Timeout check interval100 ms

The first frame carries the sequence and frame counters, the total byte count and the first 6 payload bytes; every subsequent frame carries the counters and 7 more bytes. The 3-bit sequence counter lets two Fast Packet messages of the same PGN interleave without being confused for one another, and the reassembler keys its sessions on it.

An incomplete message is dropped when the 750 ms timer expires. The daemon counts completed, dropped and processed frames and prints the totals at shutdown:

Fast Packet: Stats completed=1234 dropped=2 frames=9876

--fp-delay USEC sets the gap between transmitted Fast Packet frames, default 1000 µs. Some chartplotters lose frames sent back to back.

The Linux kernel's J1939 stack may reassemble a Fast Packet itself, in which case the whole payload arrives in a single read and bypasses the reassembler entirely. Both paths end in the same handler.

--pgn-list-fp-only restricts the transmitted PGN List (126464) to what fits in one Fast Packet message — 74 PGNs — rather than using ISO transport for a longer list. It is a compatibility workaround for plotters that cannot read the longer form.

Proprietary PGNs ​

NMEA 2000 reserves four ranges for manufacturer-specific messages. The first two bytes of the payload carry an 11-bit manufacturer code and a 3-bit industry group; the rest is manufacturer-defined.

RangeHexFramesAddressing
61184–614390xEF00–0xEFFFsingledestination-specific
65280–655350xFF00–0xFFFFsinglebroadcast
126720–1269750x1EF00–0x1EFFFfastdestination-specific
130816–1310710x1FF00–0x1FFFFfastbroadcast

An unrecognised proprietary PGN is logged and ignored; it never produces an error. --verbose-pgn-proprietary logs them with their manufacturer code and payload, which is the starting point for adding support for a new one.

Supported proprietary PGNs ​

ManufacturerCodePGNHexNameFrames
Cyclops Marine641652930xFF0DLoad Datasingle

Unknown PGNs ​

A PGN with no decoder is logged with its number, source address and payload length, and otherwise ignored. That is deliberate: a marine bus carries traffic from equipment this daemon has never heard of, and a gateway that treated the unknown as an error would be useless.

Name tables ​

Three JSON tables ship with the package and are loaded at startup from --data-dir:

FileContent
manufacturers.jsonNMEA manufacturer code to name
functionNames.jsonJ1939 function code to name
pgn.jsonPGN number to name

pgn.json has a standard array of { "pgn": …, "name": … } and an empty proprietary object reserved for manufacturer-specific definitions.

A missing or unreadable table is not fatal: the daemon logs the failure and reports numeric codes instead of names.

Standards ​

PGN numbers, their field layouts and the Fast Packet protocol are defined by NMEA 2000 (IEC 61162-3). The 6xxxx-range PGNs and the NAME and address-claim machinery come from SAE J1939. Neither standard is reproduced here; MUXEN's copies are third-party material and are not part of this manual.

Integration of multiplexed solutions
MUXEN and the MUXEN logo are trademarks of MUXEN SAS.