Navigation charts for boat

I want to introduce you to the possibility of using nautical charts (real maps, not toy ones like now). I will not go into the details of the varieties of navigation charts and other things regarding my profession, I just want to share that it is possible. Previously, I used OpenCPN in my boat as a means of navigation, and thought why not connect it to the RC model. In the end, I think it turned out very well.

The picture shown above is the OpenCPN program and NMEA-Simulator (to move the ship to the desired position).

This picture is already a real transfer of the location from the MP program to the OpenCPN program. With the help of “Launch Virtual Serial Port Driver” I created a connection between them.

I also made a screen recording with a demonstration of OpenCPN

The main purpose of this post is to attract the attention of ArduPilot developers. More NMEA 0183 support needs to be added for Ardupilot and for MissionPlanner. I wrote earlier already. Full support will allow you to transmit a lot of information from all kinds of sensors (Echo Sounder, Compass, Log, AIS and others) via just one port. At the moment there is only GPS support. As a result, you will get a full-fledged navigation for both boats and sailing vessels.

At the moment, in principle, it is still possible to display AIS information, here it is more relevant than on toy maps from Google (and other sources).

What you will need

  • OpenCPN
  • NMEA-Simulator(for test)
  • Virtual Serial Port ( like Virtual Serial Port Driver Pro)

As for the settings, ask questions, I will answer here.


This is very cool , how do i get better charts?

im running the simulator in mission planner to generate the nmea data.

You need to install maps (download).
All world)

1 Like

I connected the AIS receiver. Everything works great.

Is depth sent from the rover?

I didn’t have nmea sonar connected, and in theory only GPS data should be transmitted (as stated in MP).
It is necessary to add nmea support to one of the pixhawk ports, and transmit the same MP data.
Mixers are used on ships that combine data from all devices and distribute this data for its intended purpose (radar, ecdis, VHF, etc.). I have a yacht mixer, it’s simpler (fewer inputs/outputs).

1 Like

its looking better!

There is a way of injecting custom imagery into mission planner rather than using the google data.

Settings to have more/less information on the chart

1 Like

It’s a raster format, it’s a terrible format. (scanned paper maps). These are not digital maps.

I wonder what it would take to get a marine radar working with ardupilot

Marine radar is the same device that transmits/receives nmea data. Data on captured targets is transmitted by nmea. The information about the echo signal is transmitted as a “video stream”. to do this, you need a separate device or a radar with a built-in device where the “video” is transmitted over LAN.

to get more nmea data mission planner would have to be edited here, it looks like it generates the nmea from the mavlink messages. so it should be possible to generate any NMEA messages with whats being sent from the boat.

As I understand from this script, it operates only with GGA, GLL, HDG, RMC data. It all comes from a GPS receiver. There is more information here that can be transmitted.

The boat itself cannot transmit NMEA except GPS. In SERIALx_PROTOCOL there is only GPS nmea and MWV message transmission.(you need to use a couple of COM ports already).

It is necessary that all information from devices with NMEA support comes to one COM port.
This is what I have (data is received from the echo sounder, compass, AIS)

I think maybe @rmackay9 and @iampete can help. :smiley:

I was talking about the NMEA data mission planner puts out, NMEA is not transmitted from the boat its being generated by mission planner using mavlink parameters, so it wouldn’t take much to add more parameters like depth or wind speed / direction to it.

I understand what you wanted to say. I meant that “on the side of the boat” there is no NMEA support.

1 Like

Are you taking about a combined NMEA output from ArduPilot? or a combined NMEA input into ArduPilot?


Yes on the boat NEMA support is limited. I think GPS, AIS wind and depth in are all thats currently supported.

What should be focused on is support for NEMA IN on the boat so it can support marine sensors natively.

NEMA out on mission planner. That way almost any sensor like, wind, GPS, compass or depth can be emulated from mavlink telemetry data and fed into marine software.

NEMA in on the boat and NEMA out of mission planner. It could be done as passthough but I think converting it into native formats could be more useful then it could be converted back to NMEA at the groundstation meaning you get get NMEA data from any ardupilot sensors.

We already have a “proof of concept” with the gps data via mission planner that would just need expanded.

There is also an issue where ardupilot expects NMEA devices to have their own serial port. So my AIS with GPS can only work as AIS or GPS it can’t do both.

There are a number of open issues for NMEA support on github.