Free & open-source · Signal K · Raspberry Pi

Your boat's instruments,
on a €50 screen you build.

Wind, navigation, batteries, solar, tanks, anchor watch with phone alarms, AIS collision monitoring, and full sailing-performance analysis — one clean panel, running on a Raspberry Pi in your nav station. No subscription. No cloud you don't control.

See the code
€150–250
Typical build
100%
Open source
24/7
Anchor & AIS watch
0
Subscriptions
The Oroboro dashboard on a nav-station tablet — wind rose, speed, depth, water tanks, house bank and solar readouts on a dark instrument panel
Live at anchor · Paros, Cyclades
The honest comparison

A Victron panel shows you Victron. This shows you the whole boat.

Victron's GX Touch is excellent — for Victron gear. But your wind, depth, heading, AIS, and tank senders live on the NMEA 2000 network, and the Cerbo barely speaks it. One Raspberry Pi reads everything — and costs a third as much.

Cerbo GX + GX Touch 50

  • Battery, solar, and Victron devices — beautifully
  • Limited NMEA 2000 — no real wind/depth/AIS dashboard
  • No anchor watch with phone alarms
  • No sailing-performance analysis
  • Closed ecosystem, fixed feature set
≈ €530–630 · electrical only

Oroboro Dashboard on a Pi

  • Wind, nav, depth, batteries, solar, tanks — one panel
  • Reads the entire NMEA 2000 network via Signal K
  • Anchor watch + AIS Guardian, alarms to your phone
  • Polar performance analyzer built in
  • Open source — change anything, owe nothing
≈ €150–250 · the whole boat
The main dashboard

Your whole boat, at a glance.

One screen brings together everything your instruments and Victron system already know — true and apparent wind on a live rose, speed, depth and water temperature, house-bank state of charge with power flowing in and out, solar yield panel by panel, and tank levels. No flipping between apps or squinting at four separate gauges: the numbers that matter are laid out the way a sailor actually reads them, updating live. It runs full-screen at the nav station, on a cockpit tablet, or on your phone — same panel, everywhere.

Wind & navigationBatteries & solarTanksLive, no refresh
The Oroboro main dashboard on a phone — wind rose with true and apparent wind, speed over ground, depth, water temperature, house-bank charge, solar panel output, and water-tank levels on one dark instrument panel
Anchor watch

Sleep easier at anchor.

Drop the hook, set an allowed circle — or a directional sector for a tight spot — and the Pi watches your swing all night. Drift outside the zone and your phone alarms, sent straight from the boat whether or not you're aboard. Because the alarm runs on the Pi, not the browser, it reaches you ashore at the taverna too.

GPS swing trackPushover alarmsWorks offline
Anchor watch on a phone — allowed zone circle, boat swing track, and nearby AIS vessels on the map
Guardian · AIS proximity watch

A witness that never sleeps.

Guardian watches every AIS-equipped vessel around you, day and night. A boat enters your zone — or drags down onto you at 3 a.m. — and it records a full breadcrumb track, closest approach, and top speed, then alarms your phone. Every encounter is saved as a timestamped incident report you can hand to a harbourmaster or insurer. Nearby boats even leave visible swing-arcs, so you see how the whole anchorage lies.

24/7 on the PiIncident reportsClosing alarms
Guardian push notifications on a phone — vessel-in-zone and anchor-dragging alerts with distance and speed
Polar performance

Sail closer to your boat's best.

Every sail is logged and scored against a VPP target polar for your hull. See live VMG versus target, a colour-coded performance heat-map of your track — green where you're sailing well, red where there's speed left on the table — and your personal-best envelope building up over the season. It turns a day on the water into something you can actually learn from.

VPP target polarTrack heat-mapPersonal bests
Polar performance screen — VPP polar diagram with live wind and VMG readouts Track heat-map — the sailed route coloured by percentage of polar target
One panel, any screen

Nav station, cockpit tablet, or the phone in your pocket.

It's a web dashboard, so it runs anywhere with a browser — a fixed screen at the chart table, a tablet in the cockpit, your phone at anchor. Same live data, no app to install, shared across the whole crew.

The Oroboro dashboard shown at an angle on an iPhone — wind rose, speed, depth, battery and solar
Everything on one panel

Built for the way you actually sail.

Every instrument your NMEA 2000 network already produces, plus the tools cruisers wish came standard.

Wind & nav

True and apparent wind on a clean rose, heading, SOG, COG, depth, and water temperature — the core six at a glance.

Batteries & solar

State of charge, net power in or out, voltage, and solar yield — pulled from Victron over the same network.

Tanks

Fresh water, fuel, and waste levels front and centre — with the sender options spelled out for boats that lack them.

Anchor watch

Circular or directional zones, live swing track, and phone alarms that fire from the Pi even when you're ashore.

Guardian AIS

24/7 collision and drag watch on other vessels, with breadcrumb tracks and exportable incident reports.

Polar performance

A VPP-based analyzer that scores your sailing against target speeds, logs personal bests, and shows a performance heat-map of your track.

Built at sea, not in an office
I wanted to see my whole boat on one screen — wind, batteries, the anchor holding through the night — without buying a closed box that only spoke to half of it. So I built it on a Raspberry Pi, and now it runs every day aboard Oroboro.
Francesco · Skipper, S/V Oroboro · Leopard 40 · Cape Town → Greece
Your nav station, upgraded

The whole boat, on one screen you own.

Free, open source, and documented step by step — from which HAT to buy to the final git push. If you can follow a recipe, you can build this.

Browse the repo
CC BY-NC 4.0 · never your only anchor watch or navigation source
The build guide

From a bare Pi to a live panel.

Every step, in order — hardware, wiring, software, and deploy. New to Raspberry Pis and Signal K? This is written for you. The full README is the deep reference; this is the friendly path through it.

Plan · 01

What it costs

Approximate street prices, mid-2026 — they drift, so treat them as ballparks. The core electronics come in well under a Victron panel that does less.

ItemApprox.Needed?
Raspberry Pi 4 (4 GB) or Pi 5€60–90Yes
Quality microSD card, 32 GB+€10Yes
12 V → 5 V USB-C converter, 3 A+€10–20Yes
Waveshare RS485 CAN HAT€15–25Yes
Raymarine SeaTalkNG → NMEA 2000 adapter cable (the cable you cut)€20–25Yes (CAN-side boats)
Waveshare Industrial Grade Metal Case for Pi + HAT~$15Yes
4G/LTE WiFi router + data SIM€50–150For remote alarms
Cockpit HDMI touchscreen, 7–9″€60–120Optional
12 V piezo siren (continuous tone, ≥100 dB)€8–15Optional
5 V relay module (or MOSFET board)€5Optional
Typical core build (optional items excluded)€170–275

All software — OpenPlotter, Signal K, InfluxDB, Grafana, Tailscale, this dashboard — is free.

Plan · 02

The parts list

At minimum you need three things: a Raspberry Pi (the computer), a way to power it from the boat's 12 V, and an interface to your instrument network. Everything else — touchscreen, 4G router, Victron cables — extends what you can see and do.

Raspberry Pi 4 single-board computer
Raspberry Pi 4 / 5 — the brain
Waveshare RS485 CAN HAT — stacks on the Raspberry Pi GPIO pins
Waveshare RS485 CAN HAT — stacks on the Pi, connects to NMEA 2000 or NMEA 0183
Raymarine SeaTalkNG to NMEA 2000 DeviceNet adapter cable
SeaTalkNG → NMEA 2000 adapter — the cable you cut; both connector types in one
Waveshare industrial grade metal case for Raspberry Pi with HAT
Waveshare industrial metal case — fits Pi + RS485 HAT, ~$15 on Amazon
12V to 5V USB-C step-down converter
12 V → 5 V converter — boat power to Pi power
Official Raspberry Pi 7-inch touchscreen display
Official Pi 7″ touchscreen — the nav-station panel
NMEA 2000 drop cable cut open with white and blue data wires connected to the CAN HAT terminals
The wiring — white to CAN-H, blue to CAN-L
Victron Cerbo GX connected alongside the Raspberry Pi
Victron Cerbo GX — bridges battery & solar data
12 V piezo siren for external anchor alarm
12 V piezo buzzer — wakes you when the anchor drags, even with every phone dead

One thing easily forgotten: you need a case. Standard Pi cases won't fit once the RS485 HAT is stacked on top — the board sticks up too high. The Waveshare Industrial Grade Metal Case (~$15 on Amazon) is designed with enough internal clearance to fit the Pi with a HAT stacked on top, protects the electronics in a marine environment, and looks tidy in a nav station. Search Amazon for "Waveshare industrial metal case Raspberry Pi."

The single decision that trips people up is the instrument interface, because it depends on how old your boat's electronics are. That's the next step.

Wire · 03

The interface board — Waveshare RS485 CAN HAT

The Raspberry Pi has no marine-network port of its own. You add a small board that stacks directly onto its GPIO pins: the Waveshare RS485 CAN HAT (~€15–25 on Amazon or AliExpress). This is the board running on S/V Oroboro and the one this guide is written around.

Despite the name, this board has two completely separate interfaces on it — a CAN bus side and an RS485 side. You use one or the other depending on how old your boat's instruments are. Both are labelled clearly on the board.

Waveshare RS485 CAN HAT showing CAN H/L terminals and RS485 A/B terminals

Modern boat (NMEA 2000 or Raymarine SeaTalkNG) — use the CAN side

If your instruments are connected via a backbone cable with T-connectors — that's NMEA 2000 (or Raymarine's version of it, SeaTalkNG, which is electrically identical). Use the H and L terminals on the HAT.

The easiest cable to buy is a Raymarine SeaTalkNG → NMEA 2000 adapter (e.g. A06045 / A06075 type, ~€20–25). It has a SeaTalkNG plug on one end and a DeviceNet male on the other — so one purchase covers both backbone types: plug whichever end fits your backbone into a spare T-connector, cut the cable in the middle, and wire the cut end's two data wires to the HAT. The unused half is a spare. Connect two wires:

# SeaTalkNG / NMEA 2000 drop cable → CAN side of the HAT
white  →  H terminal
blue   →  L terminal
# Leave red (12V) and black (GND) disconnected — power the Pi separately
# Wire colours vary by brand — check your manufacturer's pinout if unsure
SeaTalkNG is NMEA 2000 with Raymarine connectors

Raymarine's SeaTalkNG backbone carries exactly the same CAN bus signals as standard NMEA 2000. The only difference is the physical connector. So when you cut a SeaTalkNG drop cable and wire white to H and blue to L, you are connecting to the CAN bus — and it works perfectly. No conversion needed, just a cut cable.

Older boat (NMEA 0183 or Seatalk1) — use the RS485 side

If your instruments use daisy-chained cables with yellow Seatalk connectors, or individual wires to each instrument, that's the older NMEA 0183 / Seatalk1 world. Use the A and B terminals on the HAT.

# NMEA 0183 talker → RS485 side of the HAT
TX+  →  A terminal  (receive channel)
TX-  →  B terminal
# Termination resistor jumpers must be set to OFF for NMEA 0183

Mixed fleet?

If you have both old and new instruments, the Waveshare HAT handles both simultaneously — CAN side for the NMEA 2000 backbone, RS485 side for any legacy NMEA 0183 talkers. One board, one solution.

Your networkTerminals to useWire colours (typical)
NMEA 2000 / SeaTalkNG / SimNetH and L (CAN side)white → H, blue → L
NMEA 0183 / Seatalk1A and B (RS485 side)TX+ → A, TX- → B
Wire · 04

How everything connects

The shape of the system, start to finish:

boat instruments ─┐
Victron gear ─────┤→ NMEA 2000 backbone →  CAN HAT  →  Raspberry Pi
AIS / GPS ────────┘                                      │
                                              Signal K (reads it all)
                                                         │
                                          ┌──────────────┼──────────────┐
                                     this dashboard   InfluxDB       anchor-api
                                       (the panel)   +  Grafana      (24/7 watch)
                                                     (history)
boat instruments ─┐
Victron gear ──────┤
AIS / GPS ─────────┘
         │
  NMEA 2000 backbone
         │
       CAN HAT
         │
    Raspberry Pi
         │
      Signal K
  ┌──────┼──────┐
panel  InfluxDB  anchor
       Grafana   watch
       (history) (24/7)

Signal K is the translator: it reads every device on the backbone and republishes it in one common format. The dashboard, the history database, and the anchor/AIS watchdog all read from Signal K. A small WiFi router ties it together so your phone and cockpit tablet see the same panel.

Software · 05

Work on the Pi from your laptop

The touchscreen mounts on the bulkhead and the Pi hides behind it. There is no keyboard. Every command in this guide is run from your laptop over the boat's WiFi — not on the screen itself. Two tools make that possible: SSH for the terminal and VNC for the desktop when you need to see the GUI.

Enable SSH and WiFi at flash time

Before you remove the microSD card from your laptop after flashing, open Raspberry Pi Imager, click the gear icon (⚙) in the bottom-right corner, and configure:

  • Enable SSH — tick it, choose "Use password authentication"
  • Set a username and password (e.g. pi and a strong passphrase)
  • Configure WiFi — enter your boat router's SSID and password

With those set, the Pi joins your WiFi and accepts SSH connections the moment it first boots — no keyboard, no monitor needed.

Connect via SSH

On Mac or Linux, open a terminal. Before the static IP is set, mDNS usually resolves the hostname:

ssh pi@raspberrypi.local

Once you have a fixed IP (next steps), use that instead:

ssh pi@192.168.1.238

Windows: PowerShell has ssh built in — same commands, no extra software needed.

Enable VNC for graphical tasks

A few tasks — kiosk browser setup, touchscreen rotation — are easier with a full desktop. Enable VNC from your SSH session:

# run in your SSH session on the Pi
sudo raspi-config

Navigate to Interface Options → VNC → Enable. Then download RealVNC Viewer (free, Mac / Windows / iPad) and connect to the Pi's IP address. Use VNC when you need to see the desktop; use SSH for everything else.

Every command in this guide runs in an SSH session

Open a terminal on your laptop, SSH into the Pi, and paste commands there. The touchscreen is for sailing — not for building.

Software · 06

Install OpenPlotter

OpenPlotter is a ready-made Raspberry Pi image with Signal K already aboard — the fastest way to a working marine server. Flash it to the microSD card with Raspberry Pi Imager, boot the Pi, and you have Signal K running.

  • Download OpenPlotter and flash it to the SD card
  • Boot the Pi, connect it to your WiFi router
  • Open Signal K's admin panel in a browser at the Pi's address, port 3000
  • Add your CAN (or 0183) connection so Signal K starts seeing instruments

When the Signal K Data Browser shows wind, depth, and position updating, your hardware half is done.

Software · 07

Give the Pi (and Cerbo) a static IP

Dashboard bookmarks, the anchor-api service, SSH shortcuts, and the Signal K → Cerbo MQTT plugin all point at a fixed address. If the IP changes after a reboot, things silently break. Fix it once now.

Preferred — DHCP reservation on the router

Log into your router's admin page (usually 192.168.1.1 or 192.168.0.1). Find the DHCP client list, spot the Pi by hostname (raspberrypi), and reserve its current IP permanently. This survives Pi OS reinstalls and is the one place to manage network addresses. If you're not sure where to find it, search "your router model DHCP reservation".

Fallback — static IP on the Pi itself (Raspberry Pi OS Bookworm)

Bookworm uses NetworkManager. From your SSH session:

# list connections and find your WiFi connection name
nmcli con show
# apply static IP — replace "preconfigured" if your connection has a different name
sudo nmcli con mod "preconfigured" ipv4.method manual ipv4.addresses 192.168.1.238/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8 8.8.4.4"
sudo nmcli con up "preconfigured"

Replace 192.168.1.238 with your chosen address and 192.168.1.1 with your router's IP.

Do the same for the Cerbo GX

Reserve the Cerbo's IP on the router too — the MQTT plugin hardcodes it. Find the Cerbo's current IP at Settings → Ethernet (or WiFi) on the Cerbo screen, then reserve that address in the router the same way.

Software · 08

The network picture

The router is the hub of the whole system. The Pi, the Cerbo, your phone, and any cockpit tablet must all be on the same WiFi network. The most common "no data on the dashboard" complaint comes from devices on different networks — typically the Cerbo connected to its own access point while the Pi is on boat WiFi.

 [instruments/N2K] ──CAN HAT──▶ [Raspberry Pi] ──WiFi──▶ [boat router] ◀──WiFi/eth── [Cerbo GX]
                                                                 │
                                      phones / tablet / laptop  (dashboard · SSH · VNC)
[instruments/N2K]
       │ CAN HAT
 [Raspberry Pi]
       │ WiFi
 [boat router] ◀── [Cerbo GX]
       │
 phones / laptop
 (dashboard · SSH)

Before moving on, confirm:

  • Pi is on the boat router's WiFi ✓
  • Cerbo is on the same network (WiFi or wired to the router) ✓
  • Pi IP reserved at 192.168.1.238 (or your chosen address) ✓
  • Cerbo IP reserved ✓
  • Cerbo MQTT enabled: Settings → Services → MQTT on LAN
  • Signal K MQTT plugin will point at the Cerbo's reserved IP (configured next step) ✓
Prefer ethernet for the Cerbo if the cable run is short

A short patch cable from the Cerbo to the router is more reliable than WiFi inside a locker. If the run is easy, do it — WiFi works fine when you can't.

Software · 09

Connect your Victron system

Victron gear doesn't speak NMEA 2000 — it has its own proprietary communication system called VE.Direct, a simple serial protocol that runs over a small cable with a dedicated plug on each Victron device (MPPT solar controllers, battery monitors, inverter/chargers). To get battery and solar data into Signal K and onto the dashboard, you need to bridge that VE.Direct data across to the Pi. There are three ways depending on what Victron hardware you already have:

Option A — You already have a Victron Cerbo GX (or other GX device)

The Cerbo GX is Victron's own monitoring hub — it collects data from all your Victron devices via VE.Direct cables plugged directly into it, and can share that data over your local network using a standard protocol called MQTT. Signal K has a built-in plugin that reads MQTT, so the Pi just listens and picks up everything — battery state, solar yield, loads, inverter status. Enable MQTT on the Cerbo (Settings → Services → MQTT on LAN), install the Signal K MQTT plugin, and point it at the Cerbo's IP address. No extra hardware needed.

Option B — No GX device: run Venus OS on a second Pi

Venus OS is Victron's open-source operating system — the same software that runs on a Cerbo — and Victron officially supports running it on a Raspberry Pi. You plug your VE.Direct cables from each Victron device into the second Pi via cheap VE.Direct-to-USB adapters (~€15–20 each), and that Pi acts as a Cerbo substitute. It then shares data over MQTT exactly as in Option A. This is the path if you don't want to buy a Cerbo (€200+) and are happy running a second small Pi.

Option C — VE.Direct-to-USB directly into the OpenPlotter Pi

This is the simplest and cheapest option if you only have one or two Victron devices (say, a single MPPT controller and a SmartShunt battery monitor). Each Victron device has a VE.Direct port — a small socket on the side. You buy a VE.Direct-to-USB cable (~€15–20 per device), plug one end into the Victron device and the other end into a USB port on your OpenPlotter Pi. Signal K's Victron plugin then reads each device directly. No Cerbo, no second Pi, no MQTT — just a cable per device. The limitation: each device needs its own cable and USB port, and if you have many Victron devices it becomes unwieldy. For one or two devices it's perfect.

What's the right choice for you?

Have a Cerbo already? → Option A, easiest path, ten minutes of configuration.
No Cerbo, three or more Victron devices? → Option B, a second Pi with Venus OS.
No Cerbo, one or two devices? → Option C, a USB cable per device, done.

The README's "you don't need a Cerbo" section covers each path in detail with the exact plugin names and settings.

Software · 10

Deploy the dashboard files

The dashboard is a set of HTML files that Signal K serves. Put them in Signal K's public folder and open them in a browser. The repo's README gives the exact copy commands; the essence:

# on the Pi — fetch each page into Signal K's public folder
sudo wget -O /usr/lib/node_modules/signalk-server/public/oroboro.html \
  https://raw.githubusercontent.com/fpugliano/oroboro-dashboard/main/oroboro.html

Repeat for each page — anchor.html, polar.html, settings.html, and the logo. Then open http://YOUR-PI-IP:3000/oroboro.html and the panel appears.

Software · 11

Anchor & Guardian background service

The anchor watch and the AIS Guardian run as a small always-on service on the Pi — anchor-api.js — so alarms reach your phone even when no browser is open. Install it to /home/pi/anchor-api/ and register it with systemd so it starts on boot and restarts itself.

# after copying anchor-api.js to the Pi
sudo systemctl restart anchor-api
sudo systemctl status anchor-api    # expect: active (running)

This service is what makes the safety features real: it watches your swing and every AIS vessel around you 24/7, and pushes alarms whether you're at the helm, asleep, or ashore.

Software · 12 · Optional

External anchor alarm buzzer

Phone alarms fail when you most need them: dead battery, silent mode, left in the cockpit, forgotten below. A 12 V piezo siren wired to the Pi wakes the crew regardless — a physical alarm inside the boat that sounds whether any phone is charged or not. It runs off the same 24/7 anchor-api service, needs no browser open, and costs around €15.

Parts

  • 12 V piezo siren, continuous tone, ≥100 dB — ~€8–15
  • 5 V relay module (or MOSFET board) — ~€5
Buying advice

Cheap listings often quote dB at 10 cm, not 1 m — a "90 dB" mini buzzer can be barely audible through a cabin door. For wake-from-sleep duty aim for a piezo siren rated ≥100 dB, and mount it inside the cabin near the berth. You want continuous tone specifically — the software generates the beep patterns on top of it.

Wiring

# GPIO HIGH = relay closes = buzzer sounds
Pi BCM 17 (pin 11) ──▶ relay IN
Relay NO            ──▶ buzzer + (switched by relay)
12 V +              ──▶ relay COM
Buzzer −            ──▶ 12 V GND
# GPIO HIGH = sounding
Pi BCM 17 ──▶ relay IN
Relay NO  ──▶ buzzer +
12 V +    ──▶ relay COM
Buzzer −  ──▶ 12 V GND

Use any 3.3 V-compatible 5 V relay module (HiLetgo SRD-05VDC-SL-C or equivalent). The relay switches the 12 V circuit; the Pi GPIO only sees a low-voltage control signal. Full wiring and GPIO permissions setup are in the repo README.

Alarm behaviour

The software generates distinct patterns so you know at a glance why it's sounding:

  • Anchor drag or GPS loss — urgent 3 × 150 ms bursts + 700 ms pause, loops until silenced
  • Guardian zone breach — slow 800 ms on / 800 ms off
  • Both active at once — drag pattern wins

While the buzzer is sounding, a large SILENCE button appears on the anchor page. Pressing it stops the sound immediately — the visual alarm (red banner) stays active. The buzzer re-arms automatically after rearmSeconds (default 30 s), and re-arms immediately if the drag distance gets worse. Pushover phone notifications continue independently whether the buzzer is silenced or not.

Configuration

# /home/pi/anchor-api/anchor-api-config.json
"buzzer": {
  "enabled": false,        // set to true to activate
  "gpioPin": 17,           // BCM pin (physical pin 11)
  "rearmSeconds": 30,      // seconds until buzzer re-arms after Silence
  "rearmOnWorsening": true // re-arm immediately if drag distance increases
}

The feature is off by default — existing installs without a buzzer are unaffected. After editing the config, restart the service:

sudo systemctl restart anchor-api
sudo journalctl -u anchor-api -n 10 # look for: [buzzer] GPIO BCM17 ready
Test before you trust it

Settings → Alarms has a Test buzzer button — it plays the drag pattern for 3 s. Run the test the afternoon before your first night at anchor with it enabled. Better yet: do a while-you're-asleep drill with a crew member watching. An alarm you've never heard is an alarm you won't trust.

Software · 13

History & polar performance

For graphs over time and the sailing-performance analyzer, add InfluxDB (stores the data) and Grafana (draws the history graphs). Signal K's InfluxDB plugin logs everything; Grafana visualises it; the polar page reads back your speed-vs-wind history to score your sailing. The README covers the tokens and settings step by step.

Software · 14

Configure your boat's specifics

One file, config.js, holds your boat's details — network addresses, your Pushover keys, your polar targets. It stays on the Pi and never goes into the public repo, so your secrets are yours. Set it once and the whole dashboard picks it up.

Software · 15

Phone alarms with Pushover

Anchor-drag and Guardian alarms reach your phone via Pushover — a one-time small purchase, no subscription. Create an account, paste your user and API keys into the Pi's config, and the background service does the rest. Because the alarm is sent from the Pi, it works as long as the Pi has internet — even with your phone locked and every browser closed.

Live · 16

See it from anywhere

Add Tailscale (free tier) and the Pi joins a private network you can reach from your phone anywhere with signal — no port-forwarding, no exposed ports. Check your batteries from the beach, watch the anchor hold from dinner ashore. The anchor and Guardian alarms run independently on the Pi regardless, so they protect the boat whether or not you're connected.

Live · 17

Frequently asked questions

Why a Raspberry Pi and not an ESP32?

An ESP32 (even with SD-card logging) is a great NMEA-to-WiFi bridge: live gauges on your phone, a track log, even a basic anchor alarm — cheaper, lower power, and if that's all you need there are ready-made projects for it. What an ESP32 can't be is the boat's computer. Signal K's plugin ecosystem, InfluxDB + Grafana history you can actually query ("show me wind and battery voltage overnight"), Tailscale remote access, and a wall-mounted touchscreen kiosk all need Linux. Two different products for two different jobs — this guide is for the second one.

They coexist happily. ESP32s make great cheap sensor nodes — tank senders, bilge monitors, temperature probes — feeding data into Signal K over WiFi via SensESP. The Pi is the hub; tiny microcontrollers are the leaves.

Can I skip the buzzer — is the phone alarm enough?

For many sailors, yes. Pushover is reliable and reaches you ashore. Skip the buzzer until you've used the system for a season and decided you want the extra assurance. The case for adding it is simple: phones die, go silent, get left in the cockpit. A buzzer inside the cabin is the backup that doesn't depend on anyone's battery. See External anchor alarm buzzer above for parts, wiring, and configuration.

Live · 18

You're done — go sailing

That's the whole build: a Raspberry Pi reading your entire boat, a clean panel on any screen, a 24/7 anchor and collision watch in your pocket, and performance analysis that turns every sail into data. All of it yours, all of it free, none of it locked to anyone's cloud.

Hit a snag, or built something you're proud of? Open an issue on GitHub — the project is alive and the fleet is growing.

Get the code →