Open-Source Plotter

Posted on Jun 5, 2023

THE OPEN-SOURCE OPTION

This post describes the “new” navigation system onboard our 1976 Hallberg-Rassy Rasmus 35. The quotation marks are there because the “new” system is actually a bunch of old hardware, connected through a Raspberry Pi single-board Linux computer running OpenPlotter. This open-source, DIY approach allowed us to modernize our system at a fraction of the price of a commercially available package. Hopefully this post can help provide some inspiration and resources for anyone wanting to undertake a similar project.

We needed a new system because we were going long-distance cruising. Our plotter, while fully functional, had outdated maps. Updated ones were no longer being produced for it. We also could not add a modern AIS unit to our system, since it relied on now-obsolete wiring and communication protocols. These are common problems, as producers of marine electronics tend to reinvent the wheel with new map formats, wire standards and communication protocols every few years. The new wheel unfortunately tends to be incompatible with any previously produced wheels. So if you have a flat, it is probably best to replace the whole car…

So what are the advantages of an open-source system? The most obvious is cost. You can reuse many things you already have, get “obsolete” marine hardware second-hand for peanuts and then connect it to an inexpensive Raspberry Pi or similar. A less obvious but equally important advantage is repairability. Most of the components in our system can be sourced cheaply at electronic stores anywhere. Because they are so cheap, we carry spares for almost everything. Finally, the open-source boating community has a wealth of forums, Wikis and YouTube channels. I can say from experience that the open source solution has technical support on a whole different level than its more commercial counterpart.

THE HARDWARE, THE SOFTWARE

Click the image to see a larger version

Click the image to see a larger version

First we needed a brain for the system: a computer. Some simply take an old laptop or tablet and install OpenCPN, an open-source marine navigation program that can run on any device. That in itself can be a fully functional system. For a more integrated solution, you can get a Raspberry Pi and run OpenPlotter. The Raspberry Pi is an inexpensive single-board computer, popular among engineers and developers. I made a separate post with advice on what model to choose. OpenPlotter is a Linux-based chartplotter operating system that includes OpenCPN as well as a bunch of other marine software and utilities.

We also needed a screen. Many opt to buy a waterproof touchscreen or simply use an old tablet. I found a way to use our old plotter as a screen for the Raspberry Pi. That gave us an 11”, daylight readable, low power consumption, waterproof screen for the cost of a few cables. It is not a touchscreen, however. So we needed some kind of input device. I considered a trackball like they use on commercial and navy ships. But the easiest solution turned out to be a waterproof silicone-covered USB mouse. These are used in industries like healthcare and made to be sanitized/washed frequently. They are waterproof, durable and relatively cheap. I actually like it better than a touchscreen, because it is so easy to use in the rain or with wet hands.

Many of our old devices, like the logger and wind transducer, could be connected directly through a USB-to-NMEA converter. We use our old GPS antenna as backup but also added a USB GPS. We bought a used AIS transceiver for 160 EUR. It does the same as the modern ones, but lacks USB, Bluetooth, WiFi and other such gizmos. All those can be added, however, by connecting it to the Pi via a cheap USB-to-Serial converter cable. Finally, we added USB WiFi dongle so the Pi can be on the Internet and work as a hotspot at the same time.

As for software, I installed the latest version of OpenPlotter on the Pi. This comes with OpenCPN, as the main navigation program. It can be set up such that when you boot the Pi, it launches OpenCPN in fullscreen mode. Maps can be bought inexpensively through O-Charts. Another important program is Signal K. It reads data from all your sensors with various communication protocols, translates them to a common format, and then outputs the data to OpenCPN or anywhere else you want it. There is also RealVNC, which allows you to remote control the Pi from any device. So I can take the plotter screen with me on my phone, PC or tablet when I go downstairs or up on the foredeck.

Power management was an important concern. With all those USB devices drawing on the Pi, the first addition was a powered USB hub. For better temperature control, I added a small fan that switches on when the PI processor temperature gets too high. The Pi itself is normally powered through USB. You should always shut down the Pi safely, before taking power away from it. If power is suddenly lost, it can corrupt the MicroSD card that it uses as data storage. One of the more time-consuming aspects of the project was a circuit to ensure it was always turned safely on and off. From a user perspective, you turn the system on and off with a switch on the boats main switchboard. In reality, the Pi always has power, but flipping the switch executes a script that either turns it on or safely closes out of all open programs and shuts down the Pi. This was achieved by using a Petrockblock Powerblock and a simple relay. It took a few tries to get it right, but I am very pleased with the results.

THE FUTURE

The system has a bunch of cool functionality that you will not find in your typical plotter. Since the Pi can connect to the Internet, we can download GRIB weather files and even compute optimal routes based on them. We can also overlay the pilot charts, containing statistical data about wind, waves and current from the last 40 years to help us plan longer voyages. The Pi can act as anchor watch, sound alarms and even send emails if it detects unexpected movement while at anchor. Another cool feature is that we can log our sail data and create a custom polar plot of boat speed at various wind angles and speeds.

Having a Raspberry Pi onboard gives endless possibilities. There are a number of future potential projects I would like to add to the system. Here are some examples:

  • Install either a Jellyfin or Plex media server to host music, podcasts, audiobooks and movies for sharing with any device on the boats network.
  • Add a flow sensor to the engine cooling water to keep track of engine hours and RPM.
  • Connect the bilge pump to the Pi, so we can get email alerts when the pump runs.
  • Connect via bluetooth to all our Victron chargers and controllers to view data about batteries and power management on the plotter.
  • Make a setup for running the autopilot pump through the Pi instead of the normal autopilot computer in order to save power and increase redundancy.
  • Set up a cheap SDR HF receiver to get free weather information offshore via Weatherfax and Navtex.
  • Connect to satellite internet for true offshore connectivity.

Has this been useful to you? Have I saved you a few smackeroonies? Consider buying me a coffee through the link at the buttom of the page.