Open source boat projects

Boat electronics — Sea & Sea

A set of open source projects built around Signal K, SensESP and the HALMET hardware platform for a motor cruiser. All code is on GitHub and freely available to adapt for your own boat.

The setup in brief

Sea & Sea is a motor cruiser with a Raspberry Pi running Signal K as the central data hub. Multiple ESP32-based devices — using the HALMET board — connect over WiFi, read physical sensors (tank senders, bilge alarms, engine tacho, temperature sensors), and publish data to Signal K over WebSocket. A dedicated web dashboard and a CYD touchscreen display consume that data for at-a-glance boat monitoring.

The network runs on a dedicated boat WiFi (SeaAndSea_D), with the Signal K server at a fixed IP (10.1.1.12). OTA firmware updates are used throughout so devices can be updated without physical access.

Device / ProjectHardwareRole
halmet-tank-monitorHALMET + ADS1115 + BME280Water tank levels (port, centre, starboard) + environmental sensor
halmet-lower-helmHALMET + ADS1115 + DHT11Fuel tank levels, bilge alarms, engine RPM, galley temperature
CYD touchscreen displayESP32-2432S028 (CYD)Rotating 5-page display: power, tanks, environment, tides, tank graphics
Web dashboardAny browser on the boat networkMulti-page live dashboard: tanks, power, tides, environment
🛢️

halmet-tank-monitor

Three water tank levels published to Signal K via SensESP on HALMET hardware, with a BME280 environmental sensor.

halmet-lower-helm

Fuel tanks, bilge alarms, engine RPM tacho and galley temperature — all via HALMET + SensESP.

📱

CYD touchscreen display

A cheap ESP32 touchscreen showing live boat data from Signal K. Auto-rotating pages, touch to advance.

🔭

Web dashboard

Browser-based live dashboard connecting directly to Signal K via WebSocket. Tanks, power, tides, environment.

What is Signal K?

Signal K is an open source marine data standard and server. It runs on a Raspberry Pi (or similar) on the boat and acts as a central hub — devices publish sensor data to it, and clients (dashboards, displays, chart plotters) subscribe to the data they need. All communication uses standard WebSocket and JSON, which makes it easy to build custom integrations in any language.

The Signal K path format uses a dot-separated hierarchy: tanks.water.port.currentLevel, electrical.batteries.bmv712.voltage, environment.depth.belowKeel. Paths are standardised so any compliant instrument can send or receive any value.

More at signalk.org.

What is SensESP?

SensESP is an Arduino/ESP32 framework that makes it straightforward to connect physical sensors to Signal K. It handles WiFi connection, Signal K WebSocket authentication, automatic reconnection, OTA firmware updates, and a web-based configuration UI — all out of the box. You write the sensor-specific code; SensESP handles everything else.

More at signalk.org/SensESP.

What is HALMET?

HALMET (HALf-MEter Transducer) is an open source ESP32-based hardware board designed specifically for marine sensor applications with SensESP. It includes an ADS1115 four-channel ADC (for resistive tank senders), four digital inputs (for alarms and tacho), a CAN bus / NMEA 2000 interface, an I2C header (for additional sensors), and an OLED display header. It is designed to be installed in a sealed enclosure and connected to standard marine instruments.

HALMET is designed and sold by Hat Labs, a small Finnish company that deserves a proper shout-out. Hat Labs builds and sells open source hardware specifically for the boating community — their products are well-designed, well-documented, and genuinely open (schematics, firmware, everything). If you're building boat electronics projects around Signal K and SensESP, their hardware makes the job significantly easier, and supporting them keeps this kind of thing going. Worth bookmarking even if you're just browsing.

Hardware, documentation and source files at hatlabs.fi — and the HALMET repo at github.com/hatlabs/HALMET.