October 30, 2017  Update v1.07 for USB, Wi-Fi and NMEA 0183 gateways

Waypoint and routes support was added to our gateways. Read the article below and learn more about this most intriguing NMEA subject and find out why Elon Musk will set foot on Mars before you'll able to send your waypoints from an iPad to a chart plotter.

Route transfer from OpenCPN to Coastal Explorer over NMEA 2000, click to enlarge

Figure 1. Route transfer from OpenCPN to Coastal Explorer over NMEA 2000, click to enlarge

Most of today's marine devices are connected via NMEA 2000. However, marine software still use the old NMEA 0183 protocol. For example, the very popular OpenCPN and Navionics Boating Apps use NMEA 0183. Rare exceptions like Coastal Explorer, which support NMEA 2000 in addition to NMEA 0183, do exist.

USB Gateway, Wi-Fi Gateway and NMEA 0183 Gateway all have a NMEA 2000 interface and built-in converter to/from NMEA 0183. The application, connected to a serial port (in the case of USB Gateway) or by TCP/IP (Wi-Fi Gateway), or a device connected to the NMEA 0183 wires of NMEA 0183 Gateway, sends and receives NMEA 0183 sentences. USB and Wi-Fi gateways can also send pure NMEA 2000 data to an application, but that is beyond the scope of this article, because in this mode the gateway is only forwarding the data.

So, we are faced with the problem of transferring waypoints and routes between NMEA 2000 and NMEA 0183. The same problem happens when you connect old NMEA 0183 equipment to a NMEA 2000 network.

And we did it. Great? Maybe. Because now we need to explain why it will not work in the real world. Let us start with a short technical overview.

NMEA 0183 uses two sentences to transfer routes and waypoints, RTE and WPL. WPL contains the waypoint position and name (001, 002 and 003 in the example below). RTE may contain one or more sentences (two in the example below); each sentence contains route name and the list of waypoint names. If you wish to learn more about the format of these sentences, we can point you to this article.

Example of "MyRte" route (containing waypoints "001", "002" and "003") sent by OpenCPN application:


    $ECWPL,3908.203,N,07625.862,W,001*70
    $ECWPL,3908.353,N,07625.018,W,002*72
    $ECWPL,3908.149,N,07624.753,W,003*73
    $ECRTE,2,1,c,MyRte,001,002*51
    $ECRTE,2,2,c,MyRte,003*4E

NMEA 2000 offers a set of eleven PGNs with numbers 130064-130074. PGN 130074 "WP Name & Position" is used to send waypoints:

NMEA 2000 PGN 130074

Figure 2. NMEA 2000 message with PGN 130074 (see the source)

NMEA 2000 is a bit more complicated than NMEA 0183. In addition to waypoint name and position, waypoints have WPID (numeric identifier of waypoint) and a database ID (making sync of databases of different devices easy).

To transfer the route, PGN 130066 "Route/WP-List Attribute" with the route name and PGN 130067 "Route - WP Name & Position" (very similar to PGN 130074 shown at Figure 2) with names and positions of the route's waypoints are used. The list of NMEA 2000 PGNs is published here if you wish to learn more about these PGNs or check a fields list.

We respect and appreciate the efforts that the NMEA association makes to ensure that devices from different manufacturers are compatible with each other. These eleven PGNs (130064-130074) were added to NMEA 2000 standard in 2004 (at a time when no NMEA 2000 devices were present on the mass market — they appeared about two years later). Despite some differences in NMEA 0183 and NMEA 2000, these PGNs provide smooth transfer of waypoint and routes between two networks.

Raymarine LightHouse R19 NMEA 2000 PGNs

Figure 3. Screenshot of Raymarine Lighthouse R19 (June 2017) documentation

Let's look how these NMEA 2000 PGNs and NMEA 0183 sentences are supported by major players.

1. Raymarine, modern chart plotters with Lighthouse R19 (June 2017) software

NMEA PGN 130064-130074 are not supported (or see the Figure 3 above). NMEA 0183 sentences WPL and RTE are not supported. This means that you cannot synchronize waypoints and routes either by NMEA 2000 or by NMEA 0183.

Raymarine Lighthouse have "Data Master" feature, promising sync of waypoints and routes by SeaTalk HS (not to be confused with SeaTalk NG, SeaTalk HS is based on Ethernet protocol).

2. Garmin GPSMAP 8400/8600 (manual dated April 2017)

NMEA PGNs 130064-130074 are not supported (pages 52-53). WPL sentence of NMEA 0183 is supported (send and receive, page 53), but not RTE [Update: RTE is transmitted, April 2020] . Therefore, the only transferring of waypoints over NMEA 0183 is possible, but not over NMEA 2000.

Is it possible to transfer routes and waypoints between Garmin and Garmin? Yes, they offer "Synchronizing across Garmin Marine Network" (Ethernet protocol, not NMEA 2000).

3. Simrad, Lowrance and B&G (Navico brands)

Only PGN 130074 is supported, WPL and RTE sentences are not supported according the installation manual of Lowrance HDS Gen3 (pages 59-61).

4. Furuno

NMEA PGNs 130064-130074 are not supported. WPL sentence is supported (send and receive), but not RTE. This information is taken from the latest manual of TZTL12F (see Specifications section).

The companies above control over 80% of the marine electronics market in the leisure segment. And they ignore waypoint and routes transfer PGNs. We mentioned Coastal Explorer as a rare software product that supports NMEA 2000. Unfortunately but not surprisingly, Coastal Explorer does not support PGNs 130064-130074.

We implemented support of NMEA 2000 PGN 130066, 130067 and 130074, and support of RTE and WPL sentences of NMEA 0183, and nobody else supports it except us. We are alone.

We have the answer to your "why?" question. None of the major players is interested in strictly following the NMEA standards. They cannot leave NMEA, because it is strong brand. Customers expect that when they choose NMEA certified equipment, they will able to extend their system or replace components.

And this is true when we are talking about simple things like sensors. You can extend your system with barometer or thermometer or even with engine gateway. But what about replacing something? Let's look to our sailing vessel, the Mur Mur (Dufour 375 GL, 2011) equipped with Raymarine electronics.

We cannot change the radar RD418D, because it uses the proprietary SeaTalk HS protocol. Only Raymarine chart plotters will work with this radar and only Raymarine radars can work with our Raymarine C90W chart plotter.

Our Raymarine SPX30 autopilot uses proprietary PGNs and can be managed only from Raymarine displays (and from our gateways, but that is another subject). This is another reason why the replacement of C90W must be from Raymarine only.

I am not sure whether we can change ST70 instrument displays, because they are also used for calibration of depth sounder and wind vane. And that's why we probably can't change the wind vane. In most cases, you need a display from the same manufacturer to calibrate your sensors. Therefore, it is not true even for sensors.

We cannot change the vendor of anything we have installed. We can only purchasing new Raymarine gear, but we cannot replace it with Furuno or Garmin. To be honest, we added a Garmin AIS600 connected over NMEA 2000 (SeaTalk NG) and it works. However, our Raymarine C90W chart plotter annoys us with an "AIS connection is lost" alert in areas with low traffic and we cannot suppress it. Sometimes it appears every minute.

What we can say about Raymarine? Nothing, because it is a proprietary SeaTalk NG network which is compatible with NMEA 2000, but it is not NMEA 2000. Are the Furuno CAN, Simrad SimNet or LowranceNet better? We are not sure.

Major players are not very interested in seamless connectivity. They are more interested in exclusive selling of replacements for the life of your boat once you are hooked. That is why NMEA 2000 messages that were introduced before NMEA 2000 devices appeared, are not supported yet. Garmin Marine Network is not compatible with SeaTalk HS, so you will never able to sync routes on modern Garmin and Raymarine chart plotters connected with all possible wires, with NMEA 0183, NMEA 2000 and Ethernet. Our next hope is the upcoming NMEA OneNet (also based on Ethernet, as Garmin Marine Network or SeaTalk HS) but I believe more in Elon Musk and the Mars project.

 

It is not hard to implement the support of these PGNs. However, it will allow the use of PC or tablet instead of a secondary chart plotter near a chart table to plan the route. That's why the NMEA 0183 RTE sentence is not supported by any of the chart plotters mentioned above. You are consequently unable to transfer routes from a PC or mobile app to a modern chart plotter, neither by NMEA 0183 nor by NMEA 2000.

So, what you will get with this update of our gateways in practice? For example, we have Raymarine C90W with NMEA 0183 Gateway connected to a NMEA 0183 port, and it can exchange routes and waypoints with a Coastal Explorer connected to NMEA 2000 by our USB Gateway (in NMEA 0183 mode). In this case, Raymarine C90W and Coastal Explorer work with NMEA 0183, but the data transferred across the network over NMEA 2000 (as on Figure 1). Unlike modern Raymarine chart plotters with LightHouse software, our old C90 Widescreen still support both RTE and WPL.

To our regret, OpenCPN can only send routes and waypoints to NMEA 0183, but it can't receive routes and waypoints. It also does not allow sending of waypoints and routes to TCP or UDP ports (Coastal Explorer can). We have no Navico equipment, and cannot test how the transfer of waypoints with PGN 130074 works. We hope to get feedback from Lowrance, Simrad and B&G users soon.

If anybody has other ideas why waypoint and route PGNs and NMEA 0183 sentences are not supported or if you have a note regarding the mention of your company, you are welcome to contact us. We'll publish will your answer on our pages. It is very sad to realize that simple tech things are not working only because marketing guys say that it will protect sales in the future.

That is not all that is included in update 1.07 of the firmware. We also added support of PGN 129285 which is used for transferring of waypoint names in the active route (it is not used to transfer the whole route; the message contains only the origin and destination waypoints and sends only when autopilot is engaged). This PGN is supported by all modern chart plotters. Gateways using this PGN during conversion to/from NMEA 0183 sentences APB and RMB used for autopilot control.

NMEA 2000 PGN 129285

Figure 4. NMEA 2000 message with PGN 129285 (see the source)

One of the main NMEA 2000 messages used to control an autopilot is PGN 129284 "Navigation Data". It cannot be directly converted to NMEA 0183 sentences RMB and APB because it contains only the numeric identifiers of waypoints, but not waypoint names used in RMB and APB (and which are available in PGN 129285):

NMEA 2000 PGN 129284

Figure 5. NMEA 2000 message with PGN 129284 (see the source)

The algorithm of conversion of waypoint names and identifiers between NMEA 0183 and NMEA 2000 is very smart now. It caches routes and waypoints transferred in both directions and maintains an internal database of waypoints, it uses PGN 129284 if it is available, and it uses proprietary Raymarine PGN 130848 and 130918 (because Raymarine ignored PGN 129284 until the release of the modern generation of chart plotters with LightHouse software).

Figure 6. Raymarine C90W shows active OpenCPN waypoint (004)

Figure 6. Raymarine C90W shows active OpenCPN waypoint (004)

Thanks to all of that, we expect that you will see the correct name of the destination waypoint on all chart plotters when controlling the autopilot from a mobile or PC application.

And now the last, but not the least feature of 1.07 version. Now you can configure the talker ID (two next characters after $ or ! sign) for NMEA 0183 output sentences. The default setting for the talker ID is "--" and gateway sentences looks like:


    $--WPL,5441.1350,N,02014.5420,E,001*6A
    $--WPL,5441.1240,N,02014.6170,E,002*6A
    $--WPL,5441.1150,N,02014.6850,E,003*62
    $--WPL,5441.1170,N,02014.7660,E,004*6B
    $--WPL,5441.1350,N,02014.8640,E,005*67
    $--RTE,1,1,c,My Funyy Route,001,002,003,004,005*0D

We found that some versions of MaxSea ignore sentences with this talker ID. The talker ID is XX in the below examples:

  • NMEA 0183 Gateway. Add the line TALKER_ID=XX to the configuration file.
  • USB Gateway. Use the SET command: SET TALKER_ID XX
  • Wi-Fi Gateway. Edit the talker ID on the "NMEA Settings" page of administration web site.

Updates are available in the downloads section. And don't miss the great update for our Wi-Fi Gateway expected next week, it will contain colorful web based gauges!

 

Next articles:

Previous articles:

See also: recent news, all news...