This article is part of CAN Bus Embedded Development, my growing online book about practical CAN Bus hardware, software, and embedded system development.
View the complete Table of Contents →
If SAE J1939 is closely associated with heavy-duty vehicles and machinery, NMEA 2000 occupies a similar position in the marine world.
NMEA 2000 is a CAN-based higher-layer protocol designed to allow electronic devices throughout a vessel to exchange information over a common network. Instead of running separate point-to-point connections between navigation instruments, engine controllers, displays, sensors, and other equipment, multiple devices can share the same network.
Typical NMEA 2000 applications include:
GPS and GNSS receivers
Chartplotters and multifunction displays
Engine and transmission interfaces
Autopilots
Depth and sonar equipment
Wind sensors
Heading sensors and compasses
Tank-level monitoring
Battery and electrical-system monitoring
Weather instruments
AIS equipment
Navigation and vessel-control systems
A major advantage is interoperability. Equipment from different manufacturers can exchange standardized information as long as the devices follow the NMEA 2000 specifications.
Closely Related to SAE J1939
Anyone familiar with SAE J1939 will recognize many NMEA 2000 concepts immediately.
That is because NMEA 2000 adopted significant elements of the J1939 architecture.
Like J1939, NMEA 2000 uses CAN with the 29-bit extended identifier. Messages are organized using Parameter Group Numbers (PGNs), devices use source addresses, and network management includes an address-claiming process.
Even the structure of the 29-bit CAN identifier will look familiar to a J1939 developer.
The application data, however, is very different.
Instead of primarily dealing with engines, transmissions, brakes, and other heavy-duty equipment, NMEA 2000 defines PGNs for marine information such as vessel position, speed, heading, water depth, wind, navigation data, engine information, electrical status, and many other parameters.
The underlying networking concepts may be related to J1939, but NMEA 2000 is its own protocol designed specifically for marine applications.
A Decentralized Network
Like J1939, NMEA 2000 does not require a central master to control normal network communication.
The underlying CAN network is inherently multi-master. Any device can transmit when necessary, and CAN arbitration determines which message receives access to the bus if multiple devices begin transmitting at the same time.
There is therefore no requirement for a master/slave hierarchy controlling the entire network.
A GPS receiver can transmit position information, an engine interface can transmit engine parameters, and a depth sensor can transmit water-depth information. Displays and other devices interested in those PGNs can receive and process them.
Messages may also be addressed to a specific device when required.
This distributed approach is particularly useful aboard a vessel because the failure or removal of one device does not inherently eliminate a central network controller on which every other device depends.
Network Management
As with J1939, simply placing CAN devices on the same wires is not sufficient to create a manageable network.
Each NMEA 2000 device needs a source address so that other devices can identify the origin of messages.
NMEA 2000 therefore uses an Address Claiming mechanism derived from J1939. A device announces itself and attempts to claim a source address when joining the network.
Device identity is based on the familiar 64-bit NAME concept. If two devices attempt to use the same source address, the address-claiming rules determine how the conflict is resolved.
Again, no central master is necessary to assign every address.
This is one of the important benefits of a higher-layer protocol. CAN itself handles message transmission and arbitration, while NMEA 2000 adds the network-management mechanisms necessary for many independent devices to coexist on the same network.
Parameter Group Numbers
NMEA 2000 organizes its messages around Parameter Group Numbers, or PGNs.
A PGN identifies the type of information contained in a message.
For example, different PGNs are defined for information such as position, heading, vessel speed, engine parameters, environmental information, electrical data, and navigation information.
A device interested in a particular type of information can therefore recognize the appropriate PGN regardless of which manufacturer’s equipment generated it.
This is one of the foundations of NMEA 2000 interoperability.
A sensor from one manufacturer can provide data that is displayed by equipment from another manufacturer without the two companies having to develop a proprietary communication protocol between their products.
More Than Eight Bytes: Fast Packet
NMEA 2000 is based on Classical CAN, meaning an individual CAN frame can contain no more than eight data bytes.
For many parameters, eight bytes are sufficient. Other NMEA 2000 messages require considerably more data.
One of the mechanisms NMEA 2000 uses to solve this problem is Fast Packet.
Fast Packet divides a larger NMEA 2000 message across a sequence of CAN frames. The receiving device collects those frames and reconstructs the original message.
Fast Packet supports messages containing as many as 223 data bytes, providing considerably more capacity than a single Classical CAN frame.
NMEA 2000 also inherits ISO/J1939-style transport mechanisms for certain communications, but Fast Packet is particularly characteristic of NMEA 2000 and is commonly encountered when developing marine applications.
A Defined Physical Network
There is another important difference between discussing CAN in general and discussing NMEA 2000.
NMEA 2000 does not define only the messages.
It also specifies how the physical network is constructed.
A typical installation uses a backbone running through the vessel. Individual devices connect to that backbone through shorter drop cables, usually using T-connectors. The backbone is terminated at both ends.
The network can also distribute DC power to connected devices, subject to the electrical limitations defined for the installation.
This standardized physical architecture is one of the reasons NMEA 2000 equipment from different manufacturers can be installed together relatively easily.
Rather than every manufacturer inventing its own connectors, cabling, topology, and communication rules, NMEA 2000 provides a common networking environment.
How Many Devices?
A standard NMEA 2000 network supports up to 50 physical devices.
This should not be confused with the number of possible source addresses. The CAN/J1939-derived addressing mechanism provides a much larger address space, but the NMEA 2000 physical-network specification limits the number of physical devices on a single network.
For most recreational and many commercial vessels, 50 devices provide considerable room for navigation equipment, sensors, displays, engine interfaces, and other electronics.
The distinction is worth remembering:
Available addresses and permitted physical devices are not necessarily the same thing.
What About CAN FD?
Standard NMEA 2000 is based on Classical CAN operating at 250 kbit/s.
This differs from the evolution taking place within SAE J1939, where J1939-22 formally introduces CAN FD as an alternative data-link layer.
CAN FD would certainly be attractive for marine networking because of its larger payload and higher potential data throughput, but it should not simply be assumed that an NMEA 2000 network can be converted to CAN FD.
NMEA 2000 devices are designed to communicate according to the defined NMEA 2000 physical and data-link requirements. Maintaining interoperability between equipment from many different manufacturers is far more important than simply increasing the CAN bit rate.
For now, Classical CAN at 250 kbit/s remains fundamental to conventional NMEA 2000 networks.
CAN FD and the Move to OneNet
While CAN FD would appear to be a logical way to increase the bandwidth of NMEA 2000, NMEA chose not to adopt CAN FD as the next generation of its marine networking technology. Instead, the organization developed OneNet, an Ethernet-based standard intended for applications requiring substantially higher data rates.
This represents a different evolutionary path from SAE J1939, where CAN FD has been formally incorporated through J1939-22. NMEA 2000 continues to use Classical CAN at 250 kbit/s, while OneNet addresses higher-bandwidth requirements through Ethernet.
OneNet is designed to complement rather than simply replace NMEA 2000. Traditional NMEA 2000 remains well suited for sensors, engine data, navigation parameters, instrumentation, and other relatively low-bandwidth real-time information. OneNet provides the capacity required for much larger data streams and higher-performance marine applications while providing mechanisms for integrating NMEA 2000 information into the broader network.
The result is an interesting divergence between two closely related CAN-based protocols: SAE J1939 expanded toward CAN FD, while NMEA chose Ethernet-based OneNet for its higher-bandwidth future.
Certification and Interoperability
NMEA 2000 differs from many proprietary CAN systems in another important respect: certification is part of the ecosystem.
Manufacturers developing NMEA 2000 products must follow the applicable NMEA specifications and certification requirements if their products are to be represented as NMEA 2000 certified.
That controlled environment helps maintain interoperability.
This is particularly important aboard vessels where an installation may contain equipment from numerous manufacturers. A chartplotter, engine interface, GPS receiver, autopilot, tank monitor, and wind sensor may all come from different suppliers yet share the same network.
The value of NMEA 2000 is not simply that all these devices use CAN.
The value is that they agree on how to use it.
A Marine Network Built on CAN
NMEA 2000 demonstrates particularly well what a higher-layer protocol adds to CAN.
CAN provides reliable message transmission, arbitration, and error handling.
NMEA 2000 adds standardized PGNs, device identification, source addressing, address claiming, multi-frame communication, network-management rules, physical-network requirements, and marine-specific data definitions.
And, like J1939, it accomplishes this without requiring a central master to control the entire network.
For developers already familiar with SAE J1939, NMEA 2000 can therefore feel surprisingly familiar. The terminology and basic network architecture have much in common.
But the marine application layer, Fast Packet mechanism, physical network requirements, and certification environment make NMEA 2000 a distinct protocol with its own engineering considerations.
In future posts, I will look more closely at NMEA 2000 PGNs, the 29-bit identifier, Address Claiming, Fast Packet communication, physical network design, and practical implementation in embedded systems.
NMEA 2000
CAN identifier: 29-bit extended CAN ID
Bit rate: Fixed at 250 kbit/s
Maximum physical devices: 50 devices per network
Network structure: Multi-master, self-configuring; no central network controller
Node addressing: Dynamic source-address claiming; addresses 0–251 are available to devices
Network management: Automatic address claiming, device identification, commanded addressing, and configuration information
Message organization: Parameter Group Numbers (PGNs), derived from the J1939 approach
Communication: Broadcast and destination-specific messages
Large messages: Includes Fast Packet, supporting payloads up to 223 bytes, as well as ISO transport mechanisms where applicable
Physical topology: Defined backbone/drop-cable architecture with termination requirements
Certification: NMEA certification is required for products that read or transmit NMEA 2000 information
Typical applications: Marine navigation, engines, instrumentation, sensors, autopilots, electrical systems, and vessel monitoring
Follow CAN Bus Embedded Development
New chapters and technical material are added regularly. Subscribe to receive new additions as the online book continues to grow.



