This article introduces the NMEA2000 (NMEA2K or N2K) serial decoder for the PicoScope Automotive oscilloscope, a specialized tool designed to bridge the gap between raw voltage analysis and high-level CAN logging for the marine industry. While NMEA2000 is physically based on the J1939/CAN standard, it features unique architectural differences, specifically in how devices identify themselves and transmit large datasets, that require a dedicated decoding solution for accurate diagnostics.
What is NMEA2000 Decoder?
CAN, Controller Area Network, is everywhere these days. If something is created that moves, whether that’s on a purpose-built road, in a field, deep underground in a mine, at the top of a wind turbine or travelling across the oceans, the likelihood is it will have some form of CAN bus to communicate data between the vast number of ECUs we find fitted to modern machinery.
When diagnosing CAN-related faults, an oscilloscope, such as a PicoScope, has long been a go-to tool. Not only will it capture the raw voltage levels for bus integrity and display the packet structure, but serial decoders will also convert that raw voltage into numerical values. Decoding allows us to see the packet as the ECU would see it, providing information on the CAN ID, packet length, data fields, packet validity and acknowledgement from the network. Whilst PicoScope Automotive oscilloscopes are not a replacement for a CAN logger, many features within PicoScope bridge the gap between the raw voltage and a CAN logger, giving a broader picture of the network health.
Over the years, we have seen many CAN-related serial decoders. Classic CAN, CANFD, CANXL, J1939 and now we can introduce NMEA2000.

The NMEA2000 (or NMEA2K or N2K) standard is based on the CAN protocol, in particular the J1939 standard at the physical layer. Maintained by the National Marine Electronics Association, it has been designed to standardise connections for marine sensors and ECUs being used in the marine industry. This could be for GPS, engine data, autopilot functions or wind data that needs to be shared between multiple systems.
At its base level, NMEA2K operates with the same structure as classic CAN and you could use the standard CAN serial decoder if needed. There are also a lot of similarities with J1939, including PGNs (Parameter Group Numbers) that define the type of data being transmitted (e.g., engine RPM, GPS coordinates, depth). You could, in theory, also use the J1939 decoder and you would get similar decoded results; however, there are some key differences that would mean you are missing the complete picture.
Probably the most important from a diagnostic point of view is the source address. We have gone into quite a lot of detail about the source address on J1939, as, unlike classic CAN, it has a standardised list of source addresses that allow us to determine which ECU has sent a message. This also allows us to build a link file to turn a hex source address value into something that means something like Engine ECU, ABS ECU or Transmission ECU. NMEA2K does something a little different.
Why does NMEA2000 Matter for Technicians and Engineers
By using the NMEA2000, specific decoder rather than a generic CAN or J1939 decoder, technicians gain visibility into the NAME of the sending ECU and the integrity of multi-frame sequences. This level of detail is critical for pinpointing configuration errors and intermittent communication faults in complex marine electronic environments.
What are the Features of the NMEA2000 Decoder
- Dynamic Addressing: Unlike standard industrial networks with fixed IDs, N2K devices claim an address upon power-up. This “Dynamic Addressing” means a device’s Source Address can change between power cycles, requiring the use of PGN 60928 (ISO Address Claim) to verify a component’s unique NAME and Serial Number.
- The Data Page Bit: To prevent collision with J1939 protocols, N2K sets the “Data Page Bit” to 1. This shifts the Parameter Group Numbers (PGNs), and incorrect configuration here can lead to ECUs transmitting invalid data for the marine network.
- Fast Packets (Multi-Frame Messaging): For data exceeding 8 bytes, N2K utilizes a “Fast Packet” protocol. This allows up to 223 bytes to be sent in a sequence. The PicoScope N2K decoder automatically identifies the Sequence ID and Frame Counter, allowing engineers to track interrupted or multi-part messages effortlessly.
Dynamic addressing
Unlike J1939 networks, where ECUs have fixed addresses (e.g., Engine is always 0x00), NMEA2K addresses are Dynamic.
Devices claim their address every time the network is powered up. If the ECUs’ power-up sequence changes, devices may swap source address IDs.
- Example: A GPS unit might be Source Address 10 on Monday, but Source Address 11 on Tuesday because a new Radar unit claimed address 10 first.
For this reason, we should never rely solely on the Source Address to identify a component across different logs or key cycles.
To determine the claimed source address IDs, we can use the PGN 60928, ISO Address Claim message. This contains the device’s unique Serial Number and, most importantly, the NAME. This PGN is sent out by each ECU on startup of the network and so can then be tied to the source address and therefore an individual ECU. Whilst it wouldn’t be possible to use the built-in link file capabilities from the PicoScope serial decoder, technicians will have to rely on the use of the NMEA2000 decoder to determine the source address and NAME, which will be crucial for ECU identification in diagnosis.
At the wake-up of the network, this process should happen immediately. By making use of triggers and filters, you can catch the messages as the network wakes up and the important PGN 60928 to determine source address ID claims.
Data Page Bit
Another key difference is the use of the Data Page Bit. This ‘bit’ tells the network to expect data related to NMEA2K and is set to 1. Found within the header of the message, it changes the PGN numbers so there is no confusion with J1939. For example, with J1939, a standard engine parameter PGN would be 0x0F004, 61444. If we change this to a NMEA2K network, the data page bit is set to one, so we now have 0x1F004, 126980.
Why is this important?
Well, if you were working with an ECU that could be used on either a J1939 or NMEA2K network, it needs to be configured correctly. An ECU configured for J1939 will improperly transmit NMEA2K-specific PGNs with the Data Page Bit set to 0. This results in the wrong PGN number for the NMEA2K network, as the Data Page Bit should be set to 1.
Fast Packets
As with many networks, it is common for ECUs to require sending more data than the allowed 8 bytes. For this reason, NMEA enables support for multi-frame messages using Fast Packet. Unlike J1939 or other multi-frame packets in other networks, NMEA2K retains the same CAN message ID, making it easier to identify the message contents.
To instruct the network that a multi-frame message is about to begin, each frame of the multi-frame Fast Packet sequence has a control byte that contains the sequence counter and frame counter within the first byte of data.
Should the frame counter start with a 0, this informs the network that a multi-frame message is about to drop. The sequence counter remains the same for the entire message, but the frame counter increments with each message. The first message sent also contains the length of the data bytes that will follow. For example, the image below (Fig 1.) shows a multi-frame message with PGN 0x1F904 and source address 0x08. The first byte is 0xC0, which can be split up to find the sequence. To split this up, you first convert 0xC0 into binary = 1100 0000. The first 3 bits represent the Sequence ID, so 110 = 0x06 and the frame counter is the remaining 5 bits 00000 = 0x0. This gives us a maximum of 31 possible frames to send.
Following the first byte, the next byte indicates the number of expected data bytes, which in this example is 0x22 = 34 DEC. This means there will be 34 bytes of data to follow.

The fast packet can be of a considerable length, sending a maximum of 223 bytes in one sequence. Once the sequence is finished, the same ECU can start another one, but the sequence counter will be different. This is an easy way to determine different messages.
A clear differentiator with the NMEA2K serial decoder is that the Sequence and Frame ID are present in the decode table. This is automatically done when using the NMEA2K serial decoder. This can quickly help identify messages that are related.
Should an ECU need to send a message with a higher priority, it can interrupt this sequence. Once the message, or messages, have finished being sent, the sequence and frame counter can pick up where they left off and continue to send the remainder of the message.
Summary
Download PicoScope 7 Automotive software for free to access advanced NMEA2000 serial decoding. Move beyond generic CAN analysis to pinpoint marine-specific network faults, track multi-frame data, and verify ISO Address Claims with precision. Experience a complete picture of vessel network health today.