Tuesday, December 4, 2012

Beginners guide to Nmea 2000, Nmea 0183, and bridging

Most of the new instruments for boats are now coming out with NMEA 2000 (National Marine Electronics Association) as the preferred method of connecting various devices on a boat. The NMEA 2000 transmits data through Controller Area Network (CAN bus). It simplifies the connection and shares information among different devices by using a single trunk cable. Compared with NMEA 0183 in “RS422” interface, NMEA 2000 has better transmission reliability and shares data easily in a network. 
Here's a good primer for constructing NMEA 2000 networks
And Power and Motor Yacht has an article worth reading; " A Breakdown of Protocol: How a Boats' System Converse"
 I'll attempt here to explain some of the data networks and how to connect various different types.

Typical Nmea 2000 Backbone.

The Nmea 2000 Backbone is pretty easy to set up as you can see from the diagram. All you need is the right parts/cables/terminators and follow some simple rules. Read the link above for the do's and don't's. Even hooking in a new device is relatively easy. More hooking up Legacy Equipment to this network later. But here is some tables that illustrate the differences between the old and new nmea standards.

Nmea 2000 verses Nmea 0183

Nmea 0183
Nmea 0183 and it's various versions is the older standard from NMEA. But it will be around for quite a bit longer.
NMEA 0183 is a low-cost, low-capacity, single-transmitter/multi-receiver network for
interconnecting marine electronic devices, also known as a “single talker/multiple
listener” interface. The NMEA 0183 Standard, along with RS-232, RS-422, etc., is often called “Asynchronous Serial” interfaces. This means that data is transmitted serially (bit-by-bit) on a single line. Furthermore, the transmission is asynchronous because no “clock” signal is transmitted with the data.

Single Talker, Multiple Listener

Multi Talker to Single Listener

There are multiple versions of the NMEA 0183 specification in use in the marine industry.  Prior to NMEA 0183 version 2.0, including NMEA 0180 and NMEA 0182, the hardware employed a single ended interface implemented with one signal wire and a common ground. Early versions of the NMEA 0183 Standard specified that “listeners” must be isolated from ship’s ground but allowed ”talkers” to be simple single-ended drivers (referenced to ground). Furthermore, the input impedance of a listener was specified to be greater than 500 ohms, and opto-isolation was recommended. Later versions of the Standard retained the opto-isolated listener recommendation, but revised the talker requirement to be RS-422 compliant. As a result, there exist some instruments (talkers) with single-ended outputs and others with RS-422 (differential) outputs.
All implementations from 2.0 and later employ a differential interface with two signal wires.

Due to the difference between the single ended and differential interfaces 
implemented, older versions of NMEA 0183 prior to 
version 2.0 cannot be connected to equipment supporting NMEA 0183 version 2.0 or higher without proper interface circuitry. Do not connect one of the signal wires of the differential interface to the common ground of the single ended interface!  
Single-ended drivers are perhaps the simplest to design. The desired state indicated by the presence or absence of a voltage above some threshold. For NMEA 0183 (ver. 1.5), a “one” was any voltage less than +0.5, while a ‘zero’ was any voltage greater than +4.0. Besides their design simplicity, single ended drivers need only one wire to transmit data. Since voltages are referenced to Ground, no signal return line is needed.
Interconnecting NMEA instruments can be a real hassle if one is not familiar with the different types of connections. The NMEA-0183 standard specifies the talker ports (outputs) and listener ports (inputs) to be differential. This means that the data is transported by means of voltage levels over two wires, separated from ground. Roughly, the voltage levels swing between 0 and 5 Volt, and both wires are in opposite phase. When one is at 5V, the other is 0V and vice versa
Some  manufacturer's though, would not adhere to the standard. It would have been perfect if you could simply connect the 'A' terminal on a talker to the 'A terminal of a listener and do the same with the 'B' terminal. So what came about were these "single ended" connections which complicated matters for the DYI person.
There are four types of connections possible with differential and single ended.
They are,

  • Differential > Differential
  • Single ended > Single ended
  • Single ended > Differential
  • Differential > Single ended
What distinguishes NMEA 0183, RS-232, and RS-422 from each other is their physical voltage and current interface levels. NMEA 0183 originally allowed “single-ended” drive, but was later updated to differential drive (RS-422).  RS-232 is a bipolar interface and RS-422 is differential drive. These are explained in more detail next.

RS232 data is bi-polar. +3 TO +12 volts indicates an "ON or 0-state (SPACE) condition" while A -3 to -12 volts indicates an "OFF" 1-state (MARK) condition. Modern computer equipment ignores the negative level and accepts a zero voltage level as the "OFF" state. In fact, the "ON" state may be achieved with lesser positive potential. This means circuits powered by 5 VDC are capable of driving RS232 circuits directly, however, the overall range that the RS232 signal may be transmitted/received may be dramatically reduced. RS-232 interfaces are somewhat sensitive to environmental noise (motors, ignition pulses, etc.) and are therefore usually limited to installations of tens of feet or less.

RS-422 is most commonly called “differential drive”. Two wires, A and B are used for this interface, but neither wire is grounded. A “zero” is produced by making A positive with respect to B and a “one” by making B positive with respect to A. It is therefore the direction of current flow rather than a voltage level that determines the logic state. It is important to note that neither RS-422 signal line (A and B) can be connected to Ground.

RS-232 interfaces are somewhat sensitive to environmental noise (motors, ignition pulses, etc.) and are therefore usually limited to installations of tens of feet or less.
RS422 standard that is widely used for the transmission of high speed serial data. Transmissions using RS-232 are limited in their speed and the length over which data can be transferred. Normally the maximum is 19.2 k baud and the distance 15 metres, although for slow transmission speeds longer lengths can sometimes be used.
It is very immune to external noise, and so can be used over greater distances (hundreds of feet).Under the latest version of NMEA 0183, all talkers are supposed to be RS-422. RS-422 is not strictly compatible with RS-232, but most RS-422 drivers will act like a single-ended driver if only one output line is used. In this way, the RS-422 “A” output can be used to drive either an RS-232 input directly. The “B” line is simply left unconnected.
Fortunately, both types of outputs will drive opto-isolated listeners. What is "optp-isolation"... Opto-isolators are actually quite simple devices. They consist of a light source (LED) coupled to a photo transistor.  The input data signal turns the LED on and off which causes the photo transistor to switch on and off. The LED and photo transistor are completely isolated from each other electrically. The data source (talker) must provide sufficient current and voltage to power the LED. A current limiting resistor in series with the LED is generally used for protection.  The advantage of opto-isolated inputs is that virtually any type of driver can activate them.

Here are the possible connections...
Differential to Differential
Single ended to Single Ended
Single ended to Differential
Differential to Single ended
When multiple listeners of different nature (single-ended vs. differential) are to be connected to a talker port, the same connection rules apply. Here, two differential and one single-ended listener are connected to the differential output of a multiplexer.

Multiple Talker Circuits.

Where a single listener requires data from multiple talkers, a data multiplexer or combiner will need to be installed.  Data multiplexers buffer the input sentences from each talker, and provide a single data stream that may then be connected to multiple listeners.
There are a number of companies that provide multiplexers and these days, you can even get a multiplexer that outputs Nmea 0183 Sentences via Wifi.

There is a practical limit to the number of talkers that can be combined based on the available bandwidth and the number of sentences that each talker transmits.  Products are available that combine up to four talkers and replicate the combined output into four or more new talker circuits, each capable of supporting multiple listeners.   Here you see a typical setup using a Brookhouse multiplexer which has also the capability of converting Seatalk to Nmea as well.

Typical Multiple Talkers Combined to Single Listener
But what do we do if we want to mix our older hardware which runs on the older "bus" of Nmea 0183 and the newer Nmea 2000?
Well, I can only find two devices that do this directly. Presented here are......
Here's some of what the company says... 
The Actisense® NMEA 2000 to NMEA 0183 Gateway is the easiest way to link between a boats old and new data networks. The NGW-1 can convert NMEA 0183 data into NMEA 2000 data and vice-versa.

The NGW-1 allows current NMEA 0183 equipment to be kept, or allows the latest NMEA 2000 equipment to be incorporated into the NMEA 0183 system. Once the single cable NMEA 2000 bus system has been installed, data from any node on the bus can be listened to by any other, including any NMEA 0183 instruments connected using an NGW-1.

The NMEA 2000 network acts like a bi-directional multiplexer, allowing all data sources to talk and listen to each other.

At the moment, this seems the simplest way of achieving a bi directional talking of the two Nmea standards.

Amec NK-80

An alternative to Actisense would be this product from Amec
NK-80 is a gateway between NMEA 0183 electronics devices and NMEA 2000 device/network. NK-80 allows users to connect NMEA 2000 network with their existing NMEA 0183 devices. 

Key Features of NK-80 according to the company: 

‧Upgrade NMEA 0183 equipment to NMEA 2000 
‧Conversion between NMEA 2000 and NMEA 0183 
‧Full NMEA 2000 compliance 
‧Full NMEA 0183 compliance 
‧Compact size, easy for installation 
‧Isolation between NMEA 0183 and NMEA 2000 
‧Fully galvanically isolated for electrical spike protection

One final way that may prove beneficial to some. There are now devices such as MFD's that have both NMEA 2000 and NMEA 0183 in and out. It may seem odd that the Raymarine E-Series can input/output data via good old NMEA 0183, SeaTalk, (similiar to NMEA 0183) SeaTalk2 (actually NMEA 2000), and SeaTalk HS (actually Ethernet).  So the E’s (and C’s) do something called data bridging. It works by taking data, if it is not on a particular level, and converts and sends the data on at the higher level. I suspect it is converted up to the higher level, but not converted down. Perhaps someone can leave a comment and advise as to whether this is true?

That's it for now. Hopefully soon, I'll post about Raymarine and their Seatalk interface, along with it's interface with NMEA2000 and NMEA0183


  1. I'm a garmin tech support rep. This is very helpful. Keep it up!

  2. The NMEA 0183 was fine when originally implemented. It used a simple pull up/pull down bus driver transistor combination on a tri-state floating bus with 1.2k node impedance. What you refer to as talkers could share the same bus. You are right, they shared a common ground but back in those days isolation was very difficult so the original idea was to isolate the PSU so as not create what we used to call false negatives. However this all got a bit confused somewhere along the way! It is not quite serial as in the strict timing sense of 8250/16550 USARTs etc because it was based around the Z80 with a three times over-sample, that meant I had to guarantee a three stop bit gap between sentences. Thats why I had to use 4800 not 9600 (as per the original design) because we couldn't in the software sample the start using a Z80 at 9600 and maintain the sample points at the correct intervals, it wasn't about distance it was about interrupt code. It can drive very long distances, 30m is not uncommon, the issue was always the drive up power whilst remaining decoupled, remember in those days, MosFET etc were ridiculously expensive devices with huge capacitive issues! You may be interested to know that originally it was developed as a marine engine management monitoring system but was 5 years ahead of technology and was adopted by NMEA as a marine instrumentation system.
    Regards Paul


Note: Only a member of this blog may post a comment.