Cheapest Reliable Linux Autopilot Setup for Yamaha HARMO
Overview
This guide outlines the cheapest and reliable setup for integrating an open-source autopilot system with a Yamaha HARMO (NMEA 2000) on a Linux-based boat computer. Key goals: remote access via reverse SSH, open-source software (e.g., PyPilot/OpenCPN/Signal K), and NMEA 2000 compatibility.
Hardware Requirements
- NMEA 2000 to USB Interface (Key Cost Driver):
- Actisense NGT-1 (~$230 USD): Plug-and-play, reliable, but expensive.
- DIY CanboatUSB (~$20–$50 USD): Build using a Teensy 3.6/4.1 microcontroller and CAN adapter. Cheapest but requires technical setup.
- Alternative: Raspberry Pi with CAN Shield (~$30–$60 USD). More complex, but viable if using a Pi.
Software Stack
- NMEA 2000 Interface: Use Canboat to parse/convert NMEA 2000 messages.
- Signal K Server (Recommended): Use Signal K Server to translate NMEA 2000 to NMEA 0183 or network formats for autopilot software.
- Autopilot Software:
- PyPilot (Free). Works with NMEA 0183 via Signal K.
- OpenCPN + Autopilot Plugin (Free + optional plugins).
Setup Steps
- Connect Hardware: Attach the NMEA 2000 adapter to the Yamaha HARMO network and the Linux computer.
- Install Canboat (For DIY Adapters):
git clone https://github.com/canboat/canboat
Use `actisense-serial` or `analyse-knot` to test data flow.
- Set Up Signal K Server:
- Install Node.js and the server:
npm install -g @signalk/signalk-server
- Configure it to use the NMEA 2000 interface via Canboat (modify settings to read from `/dev/ttyUSB0` or equivalent).
- Integrate Autopilot Software:
- Test Bidirectional Communication (Critical!):
- Verify NMEA 2000 data (e.g., vessel position, heading) is visible in Autopilot/SK.
- Ensure the Linux computer can send commands (e.g., course change) to the HARMO via NMEA 2000. Use `cangen` (from cangen) to test messages.
Challenges & Solutions
- NMEA 2000 Message Compatibility:
- Yamaha HARMO might require proprietary PGNs (Parameter Group Numbers). Check Canboat for HARMO support or adapt the source code.
- Latency:
- Optimize Signal K/autopilot update rates (10Hz minimum for smooth control).
Cost Breakdown
| Component | Cost (Est.) | Notes |
| CanboatUSB DIY Kit | $20–$50 | Requires soldering and configuration. |
| Actisense NGT-1 | $230 | Plug-and-play; higher reliability. |
| Linux Computer | $0 | Already available. |
| Signal K + PyPilot/OpenCPN | $0 | Free and open-source. |
Recommendation
To minimize cost and maximize reliability:
- Build a DIY CanboatUSB adapter (low budget, technical expertise required). or use Actisense NGT-1.
- Deploy Signal K server to handle NMEA 2000/NMEA 0183 translation.
- Use PyPilot for lightweight autopilot control or OpenCPN for a UI + plugin approach.
- Validate reverse SSH for remote access and Starlink for connectivity.
Useful Resources