Project title: Auto PiLot
Objective: Design, construct, commission and operate a complete autopilot system capable of safely
steering a sea-going motor boat under user command.
Method: Exploit the processing capabilities of the RPi to
(1) Receive and interpret NMEA-coded GPS signals from a suitable receiver chip to
determine vessel's current position, course and speed.
(2) Receive and interpret user commands to set the required vessel course and
speed. Two methods of command input will be provided: (a) mouse/keyboard (Note
1), and, if cockpit noise levels permit, (b) voice.
(3) Combine inputs (1) and (2) to derive control signals (Note 2) to operate two
12V steering servo motors which will continuously (Note 3) trim the steering
gear and throttle settings of the vessel so that the course and speed requested
by the user can be set and maintained if sea conditions permit.
(4) Provide continuous monitoring of the vessel's status (Note 4) to ensure that
the requested course and speed can be safely achieved and/or maintained and
provide timely warning of any change in status which may require a user
response (Note 5).
(1) In the cockpit environment of small vessels, any electromechanical device can
be at significant risk of damage and/or loss. The preferred 'failsafe' method
of user input would therefore be an environmentally hardened touchscreen but
these do not yet appear to have reached a sufficient stage of development to
provide the required reliability at an acceptable cost. Software experiments so
far indicate that a (radio controlled) mouse provides an adequate input device,
with occasional back-up from a keyboard (which may be kept under shelter).
(2) Ideally, all control signals will conform to NMEA protocols to ensure
broad-range compatibility with auxiliary equipment and ease of maintenance and
(3) Control adjustment cannot be truly 'continuous' and a major part of the
development effort will be devoted to the determination of control system
(4) The vessel 'status' data required will include accelerometer data (to gauge the
frequency and severity of aero- and hydrodynamic loadings) as well as the
vessel's position relative to navigational hazards. As an alternative, it may
be possible to use two GPS chips, situated at bow and stern, to provide the
required 'sea-state' data.
(5) A multi-level 'status notification' feedback is required, ranging from a simple
'advisory' VDU note to 'imminent hazard' warnings which will be backed by audio
alarms. The number and level of these will be determined by environmental tests.
- Raspberry Pi (c/w mouse, keyboard and WiFi dongle)
- Compatible GPS chip(s) and/or accelerometers (see Note 4, above)
- Gertboard I/O buffer
- Cockpit monitor (7" HDMI)
- 2 x 12V d.c. servo motors
- Appropriate power supplies for 12V source
Progress so far:
An RPi has been programmed to interrogate a GPS chip and provide a 'user friendly'
GUI for the display of vessel position and speed and for the input of user
commands (via mouse and, occasionally, keyboard, see Note 1, above). Plotter
software has also been completed which allows a display of the vessel's
position on user-selected chart. All programming has been carried out using
RISC OS; it is anticipated that conversion to Raspbian may be necessary if the
full functionality envisaged above is to be achieved.
This system was tested at sea during Sept.-Oct., 2013. Further development,
particularly the development of the active control system software and
associated hardware components, had to be curtailed due to (unrelated)
mechanical problems with the test vessel. Testing will be resumed in the spring
of 2014, by which time it is hoped to have a prototype control system ready for
testing, once the required components (Gertboard, 12V servo-motors) can be
This project is a 'real world' application of the RPi and associated Gertboard,
which aims to do a little more than flash a few LEDs. My immediate aim is to
provide my boat with a sophisticated autopilot costing orders-of-magnitude less
than possible commercial alternatives but the longer-term development
opportunities which will be opened up on successful completion are also
extremely attractive, particularly in the areas of automatic 'vessel status
monitoring' and ‘remote hazard warning’ where potential applications extend far
beyond my hobby interests.