Boat Networks

Networks connect equipment: Gps to plotter; Gps to DSC VHF radio; Depth to plotter; heading information to autopilot; AIS data to MFD[multi function display]; engine data to display; etc. Here I discuss the two serial networks commonly used on boats. There are also higher throughput connections (eg radar scanner to display; MFD to MFD; etc) which may be connected by proprietary protocols, ethernet or WiFi.
  Ideally a network is "plug and play": it can be added to without disturbing what is already installed.


The first such network to be widely used (and which is still used) is NMEA0183. This is a serial network (so needing only two data wires for sending) with single talker and multiple (up to about 4) listeners. Devices can be both talkers and listeners. The listeners are just electrically connected to the talker output, no special connection arrangement is needed.

Electrical details: binary data (0 or 1) is sent as either high or low voltage difference through the two data wires. Most applications seem to use one wire close to ground and the other wire is either high (5-12 volt) or low (close to ground). This is like RS232 which is used for serial communication to personal computers. The bit rate is typically 4800 Baud (though AIS uses 38400 Baud). This has to agree between talkers and listeners. To reduce electrical interference, the cable carrying the message wires is shielded and the shield is grounded at the talker end. NMEA cable typically has more internal wires - to allow send and receive communication where needed. There is some care needed joining equipment with different implementations (using (i) single data wire plus ground/shield versus (ii) two data wires with different voltages plus ground) - see discussion.

Message content: data sentences are composed of ASCII (printable) characters and words are comma delimited. The header $XXYYY indicates message type (YYY) and sender (XX). The sentence ends with "*" followed by a two-character hexadecimal representation of the checksum (XOR of all characters after initial $ and preceding the *).

For example $INDPT,7.9,0.0*49 is a depth of 7.9 metres with offset 0.0 meters from transducer to waterline from instrument "IN". The sentence ends with control characters for CR (carriage return) and LF (linefeed).

NMEA data can be fed into a PC serial port and read by software such as screen, minicom, seaclear, hyperterminal,... I have written programs to read and digest such data - as part of my studies of seabed shape, wrecks and magnetic anomalies.

If you want to combine data from two talkers, you need to use a combiner/multiplexer with separate inputs and one output; ideally also with some buffer memory to hold messages if two arrive overlapping in time.


To allow higher data communication rates and more flexibility in connection, the improved system NMEA2000 (also known as N2K) is in use. This has been adopted by many equipment makers but some choose to use their own proprietary connectors (eg Raymarine seatalk NG). The basic NMEA2000 setup is known as DeviceNet and two connector conventions exist (mid and micro). NMEA2000 is based upon CANBUS: the system used in the automotive industry.

NMEA2000 is a serial system with a single data bus (so 2 data wires) with multiple talkers allowed. This must have rules to avoid a talker overwriting a message already being transmitted. The way this is achieved is by having two states of the bus: dominant (wires driven at different voltages) and recessive (wires having zero difference in voltage caused by terminating resistor). When a new message starts, the first "recessive" sent may hit a "dominant" and so be modified: the sender can detect this and then stops sending for a while, before retrying. This protocol allows senders to have different priorities - so one will "win out" if starting at the same time as another.

Electrical: the bus has H and L message wires, a ground, a 12 volt power supply wire and a shield. Dominant state (Logic 0) has H at 3.5v and L at 1.5v while recessive state (Logic 1) has both H and L at 2.5v. The bus is terminated by 120Ω resistances at each end. The bus is plug-and-play, provided you follow the rules about spur networks, providing power, daisy-chaining etc. Typical speed is 250 kBaud.

Message content: this is not offically published but most common message types have been deduced by now. Data are sent as binary packets (so not readable without conversion). Packets have a PGN (typically a 6-digit number) which identifies the type of data contained.

From NMEA2000:

Data messages are transmitted as a series of data frames, each with robust error checking and confirmed frame delivery. Data frames contain, in addition to control and error- checking bits, an 8-byte data field and a 29-bit identification field that sets message priority and identifies the data message, the source, and the destination. As the actual data content of a data frame is at best 50% of the transmitted bits, this standard is primarily intended to support relatively brief data messages which may be periodic, transmitted as needed, or on-demand by use of query commands.

NMEA2000 is totally different from NMEA0183 so to translate data from NMEA0183 to NMEA2000, you need to use computing power. Some MFDs can do this, also third party vendors sell such translators. The Arduino Due is also able to be set up for this purpose.

Return to Boat Pages.