Arduino and OpenCPN and boat autopilots

Hi, I am new to both Arduino and this forum so I'm begging a little patience and tolerance here.

I live on a boat and wander around the coast of Australia. A few months ago I bought a Freetronic's Uno board to have a fiddle about with. I liked it so I then went out and bought an RS485 shield and am now fiddling with that. I have not tried to write anything yet and am familiarizing myself with C programming.

Wandering about the ocean requires one to know where you are and where you are going, rocks, reefs, islands and continents get in the way and you may wish to know where you are going to arrive at. I started out with a compass and sextant then graduated to a GPS and last year started to use a freeware program called OpenCPN on my computer which I have found to be excellent.

Normally I plot my route, either on paper charts or on the computer using OpenCPN, then load all the waypoints into the GPS and tell the autopilot to follow the track to the next waypoint. Hockey puck GPS'S which plug into a USB port have become readily available and the OpenCPN program allows one to connect to the autopilot using a serial converter however the computer must be kept running all the time for this to work.

A common problem on sail boats is electrical power, particularly when you are on passage because as well as all the household stuff you have to run autopilots, nav lights radios and stuff and the sails quiet often shade the solar panels and one does not like to run engines just to recharge batteries. Consequently having to run a computer tends to add to an already excessive electrical load. In contrast to a full blown computer running bloatware the Arduino boards are extreme misers with electricity.

What would be wonderful is one could start up the computer, do the voyage planning, download the waypoints to an Arduino fitted with a GPS and the Arduino then do the calculations required to generate the NMEA 0183 sentences required by the autopilot to navigate between waypoints.

The autopilot listens for nav data sentences on a two wire bus using the NMEA 0183 protocol which defines the electrical characteristics of the link as RS422 which is a one directional protocol with electrical characteristics similar to RS485. Two links would be required, the first from the computer to the Arduino, which is only required for the waypoint downloading from computer to Arduino, and a second permanent connection between the Arduino and the autopilot.

I would be greatly assisted by being directed towards any previous work on this type of thing.


This forum looks like a good place to start. Second hit...