Close
0%
0%

BoatOS – Open Source Marine Operating System on Pi

Complete boat OS with offline navigation, AIS, engine monitoring, automatic logbook and weather. Raspberry Pi 4, €250 hardware, open source.

Public Chat
Similar projects worth following
BoatOS is a complete marine operating system on Raspberry Pi with offline navigation, AIS, engine monitoring via ESP32, automatic logbook, weather and water level integration. Started as an AI-assisted development experiment – ended up as a full marine OS.

BoatOS is a complete marine operating system built on Raspberry Pi. It started as an experiment in AI-assisted development – and ended up as a full marine OS with offline navigation, live sensor monitoring, AIS, weather integration, a custom dashboard system, and a logbook that writes itself.

The boat: a 1989 motorboat with dead instruments, a lying fuel gauge and analogue VDO sensors that nobody has datasheets for anymore. The budget: €250 for hardware. The alternative: €2,000+ for a Raymarine chartplotter.

Architecture

Two frontends, one backend:

Helm – Flutter native app running directly on the Pi, fullscreen on the dashboard touchscreen. Fast, stable, always there.

Deck – Browser frontend. No install, no app. Type the IP address on any phone or tablet and you have full access to the chart, sensors and logbook.

Backend – FastAPI + WebSocket + MQTT (Mosquitto). The invisible heart that connects everything: GPS via SignalK, sensors via MQTT, routing via OSRM, weather via OpenWeatherMap, water levels via PEGELONLINE, AIS via AISStream.io.

Navigation

Offline-first. Always.

MapLibre renders OpenSeaMap vector tiles stored locally on the SSD. No mobile coverage needed. No subscription. No monthly fee. Fairways, locks, buoys, shallows – all there, all offline.

OSRM runs locally as a waterway routing engine built from OpenStreetMap data. Route from A to B, calculate travel time, simulate the route at ×1000 speed before departure.

AIS shows other vessels in real time on the chart. Came in very useful when a 110-metre cargo vessel came around a bend in zero visibility. 90 seconds warning instead of 15.

Engine Monitoring

ESP32 + 2× ADS1115 reads the existing VDO sensors directly. No expensive NMEA2000 interface needed.

Battery voltage, oil temperature, oil pressure, coolant temperature, RPM – all live on the dashboard. All calibrated empirically, because 1989 VDO sensor datasheets are not easy to Google.

The impact detection sensor (MPU6050) wasn't planned. It became a feature after an unplanned encounter with a rock in zero visibility during a delivery trip. The coffee flew. Everyone was okay. The MPU6050 registered a G-value that didn't fit any normal sailing situation. Now every impact is logged with timestamp, position, G-value and severity level (LIGHT / MODERATE / SEVERE / CRITICAL).

Logbook

Automatic. Every trip is recorded without thinking about it: GPS track, sensor data, events, weather snapshot at departure, water levels along the route. After one season: a complete record of everywhere you've been.

Dashboard

Custom widget system with a built-in editor. Configure your display without touching code. Gauge widgets, sensor cards, horizon widget showing tilt and impact warnings. Export and import layouts. All sensor topics from SignalK and MQTT are auto-discovered and selectable.

SOS / MOB Button

Man-overboard and emergency button integrated in both Helm and Deck.

In Development – BoatOpenIO

Modular universal marine IO system. Main board with ESP32 + up to 4× ADS1115 + CD74HC4067 MUX (16 channels). All components on sockets – no soldering needed for replacements. Stackable mini-boards per channel (voltage divider, pull-up/down, Schmitt trigger, optocoupler, pulse counter). Fully configurable via JSON. Coming soon as its own repository.

Open Source

Everything. Code, schematics, firmware, configuration, ready-to-use image. Free. Forever. Including commercial use.

If you'd like to support the project, check out the book series "Logbook Without Posing" on Amazon – where the whole story is documented, including all the mistakes, detours and the rock.

github.com/bigbrainlabs/BoatOS

"Made by hand means knowing what's inside and keeping it affordable."

  • 1 × Raspberry Pi 4 (4GB) Main computer
  • 1 × 10.1" Touchscreen Dashboard display
  • 1 × BU-353N5 GPS mouse GNSS receiver
  • 1 × 128GB SSD Offline storage
  • 1 × ESP32 WROOM-32 Sensor microcontroller

View all 9 components

  • BoatOpenIO – First prototype boards ready

    Maik6 hours ago 0 comments

    First mini-boards assembled and plugged in!

    • Multi mini-board with voltage dividers and pull-ups for channels 1-5 – connected via JST 2-pin for VCC/GND and pin headers for signal in/out
    • GND collector board for clean ground routing
    • All plugged into the main board

    The modular concept works – swap a mini-board, change the JSON config, done. No resoldering, no rewiring.

    Next: optocoupler board for RPM (W-terminal) and testing with real VDO sensors on the boat.

    github.com/bigbrainlabs/BoatOpenIO (coming soon)

  • #1 - How it started

    Maik21 hours ago 0 comments

    It started with a dead tachometer and a €2,000 quote for a Raymarine chartplotter.

    The boat: a 1989 motorboat that had been sitting around for decades, bought as a project. Motor running. Everything else: questionable. The instruments lying. The tachometer dead. And every time I looked up commercial marine electronics, the prices made me close the browser again.

    So I started experimenting. Raspberry Pi on the desk. A GPS mouse. Some Python code. And – this is the honest part – an AI assistant (Claude) as a development partner. What started as an experiment in AI-assisted development became, step by step, something much larger than planned.

    First: a map with a GPS position. Then: MQTT and sensor data. Then: a proper dashboard. Then: AIS. Then: weather warnings. Then: water level data. Then: routing. Then: a full logbook. Then: a Flutter app. Then: a second frontend.

    At some point it had a name: BoatOS.

    The first real test wasn't planned as a test. A delivery trip. Zero visibility. Rain squall. Crosswind stronger than the helm could handle. The boat left the fairway. Then: rock.

    The coffee flew. The MPU6050 registered a G-value it had never seen before. Everyone was okay.

    Two things happened that day: the GPS mouse (a cheap VK162 that had been putting the boat somewhere in Poland for weeks) got replaced immediately. And the impact detection feature was born – not from a specification, but from reality.

    That's how BoatOS works. Not top-down design. Bottom-up experience.

    The book series "Logbook Without Posing" documents the whole story – every mistake, every detour, every moment where what was planned met what actually happened.

    github.com/bigbrainlabs/BoatOS

View all 2 project logs

  • 1
    Download the image
  • 2
    Flash the image

    Use Balena Etcher (free, works on Windows/Mac/Linux):

    1. Download Etcher: etcher.balena.io
    2. Select the downloaded .img.gz file
    3. Select your SSD or SD card
    4. Click Flash

    That's it. Like flashing any USB stick.

  • 3
    Configure WiFi before first boot

    Before inserting the SSD/SD card into the Pi, open it on your computer and edit the file wlan.txt in the root directory:

    SSID=YourNetworkName
    PASSWORD=YourPassword

    Save the file, then insert the SSD/SD into the Pi and boot. BoatOS will connect automatically on first start.

View all 7 instructions

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates