If you are a boat owner, I'll guess you've seen some of the prices on the chart plotters and navigation tools. Some of them are pretty expensive. In this article I'll show you how I deal with that.

For thousands of years, people have been using the sea as a source of food and a way to transport goods. One of the most important things they did was to keep track of where they were. If they got lost at sea, they never knew where they'd land. Fortunately, they started to make charts and tools to help navigate. The sextant is one of the tools that was made, but this article is not about the use of the sextant.

In modern times, we use GPS to navigate at sea. The fist GPS devices for marine use gave only latitude and longitude. To find your position, you had to write latitude/longitude on a sea map. Development has come a long way since then with GPS chart plotters. They work like the GPS navigation system in your car. You have a lot of different vendors with a lot of different models to choose from. The better the model, the higher the price. One of the biggest companies, Garmin, sells chart plotters in the price range of $199 USD to over$10,000 USD. The first one has a 4-inch screen, and the last one has a 24-inch full HD screen.

##### Screenshot from Garmin.com

Other vendors are Lowrance and West Marine.

Some systems let you define what are considered to be shallow and dangerous waters. When you plan your trip, you can make two points in the map and tell it to calculate the route. It'll make the trip safe, so you don't get stranded on dry land.

I didn't feel like spending that kind of money on something that I might as well build and make myself. Looking around in my different piles, I found most of the parts I needed. I found the three most important things: a Raspberry Pi, a GPS module, and an LCD screen running on 19v DC. Besides that, I needed some power circuits.

### Requirements:

You can connect several other devices to the setup, but I'm only using a GPS module. My GPS module is the EM-411. This is not a project about the use of OpenCPN, but merely how I've done my setup.

### Hardware

In a pile of monitors, I found one that runs on 19v DC. To power this monitor, I'm using a DC-DC step-up converter, that I found on eBay. I need to step up the voltage because the power on my boat is 12v DC. The step-up converter looks like this:

It was a good thing I bought two of those because one of them didn't work.

To power the Raspberry Pi, I'm using a homemade regulator based on the LM338K IC. The IC package is TO-3. The LM338K is a 5-Amp adjustable regulator, and the below schematic is based on the datasheet (PDF).

This is the schematic for the Raspberry Pis power regulator:

Here's the parts list:

My GPS module is connected to the Raspberry Pi with an RS-232 to USB converter. I found that on eBay as well:

Component side:

Back side:

### Software

To automate the startup process, I made a few changes to the default software settings. I made a script that starts the navigation automatically. First, make sure you log in automatically at boot-up.

Start the Raspberry Pi and log in with user "pi" and password "raspberry". Then start the GUI with the command startx. Then click on:

Menu → Preferences → Raspberry Pi Configuration

In the System folder, select the boot option "To Desktop", and check the auto login box "Login as user 'pi'".

When power is applied, the Raspberry Pi boots, automatically log in as user 'pi', and start the GUI. To auto start the navigation tool, open up a terminal, and navigate to the hidden folder .config/autostart.

cd .config/autostart

I'm an active user of the TAB-key. So I write

cd .co

and hit the TAB-key. The raspberry completes with config/. Then I press the a-key, and hit TAB again. So with only pressing the keyboard 9 times, I've written the command:

cd ./config/autstart/

Open nano in that folder with the command:

nano opencpn.desktop

Write these few lines:

[Desktop Entry]
Type = Application
Exec = opencpn

Press CTRL+X and answer yes to the questions. Now that we've made a script in the autostart folder of our 'pi' user, the next thing to do is to make the script executable. While in the .config/autostart/ folder, write the command:

sudo chmod +x opencpn.desktop

The actual navigation application is called OpenCPN. You can use a lot of different map sources.

Now, all I have to do is to make some nice enclosures to have the circuitry in.

### Conclusion

The total cost for my navigation system:

• 17" monitor, keyboard and mouse — from my pile of recycled stuff.
• Raspberry Pi — $35 USD. • GPS module —$30 USD.
• DC-DC Step-up converter — $6. • DC-DC Regulator — homemade. • RS-232 to USB —$2.
• OpenCPN and maps — Open source.

So for under \$100 USD, I've made myself an equally good navigation system in my boat.

One improvement that I will make is to get another monitor that does not eat Ampere for breakfast. I will also consider adding different measuring tools, like a motor temperature sensor and an oil pressure gauge.

## Pictures and video

To ensure everything is running on 12v, I've connected two 12v 100Ah in parallel. Onboard my boat, I've got a generator on the engine. When the engine is running, the batteries are charged.

Give this project a try for yourself! Get the BOM.

• Clayton_M 2016-05-13

Very good article.  It combines two of my hobbies, electronics and boats.  I could see turning this into an autopilot system if you really wanted to get crazy.
For those of us who are on the ocean, I see one key design challenge.  I have no idea how would one prepare this setup for a salt environment.  Most of the components you could build a sealed case for, but the keyboard and mouse I have no idea.  Thoughts?

• Jens Christoffersen 2016-05-15

Thanks. I have my boat on the ocean. I’m on the lookout for a watertight keyboard, with an integrated mousepad.

• pfrost 2016-08-03

I’m a sailor too, nice use of a Pi!

The Pi already had an onboard serial port, and since that GPS module seems to have TTL level serial output already, you could just wire it directly to pins 8 and 10 and eliminate the need for the serial to USB adapter!

• Wiky5 2016-09-16

Great project! I was thinking on doing something similar but using a small computer. Perhaps a touchscreen would be handy as typing and using a mouse on a moving boat might not be very comfortable.
On the other hand, why not use a switching buck regulator instead of a linear one? Also, aren’t your battery cables really thin?
Regards

• Jens Christoffersen 2016-10-30

A switching powersupply might be smaller, and more efficient. Regarding the cables; When the installation is permanent, I’ll increase the cables.

• sailpoq1 2017-03-01

I am very interested in doing the same thing except I would like to try to make it into more of a chart plotter system using Raspberry Pi’s touch display. However, I am confused about the Adafruit GPS breakout and what it really does. Would the system not work if something like this were plugged directly into the usb of the Pi 3?

If not, does the Adafruit module act as a stand alone system that has a built in gps receiver or does a separate receiver like the one above have to be purchased. Also, what was needed to be done to get the gps module to communicate the location information into OpenCPN?

• Jens Christoffersen 2017-05-25

I am not familiar with the Adafruit products.
When the GPS is plugged into the RPi, I configured OpenCPN to listen to the post the GPS is connected to.

• ihtruelsen 2017-09-29

Quick question: On the wiring from the em411 to the usb converter, does the Tx go to the data + or -?

• Jens Christoffersen 2017-09-29

It’s connected to the RX on the RS-232 to USB converter. I do not think you can connect it directly to a USB. It has pass through an FTDI, or similar, IC. To convert the RS-232 signals to USB signals.