> ## Content Index
> Fetch the complete content index at: https://dangraf.io/llms.txt
> Use this file to discover other available public pages before exploring further.

# Smart helm: NMEA 2000 instruments on a rotary knob
- URL: https://dangraf.io/work/smart-helm-display/
- Published: 2026-10-09T14:10:09.000Z
- Updated: 2026-10-09T14:15:09.000Z
- Description: Turning a 1.3" round rotary display into a reconfigurable boat instrument, from sensor to CAN bus to screen.
- Author: Dan Graf
- Tags: Marine, #work, #Import 2026-10-09 15:24

Marine instruments are expensive and single-purpose. I wanted one small rotary knob at the helm that could be the rev counter, fuel gauge, temperature or autopilot control, depending on what I need at the time.

## The system

- **Display driver.** The knob's display controller renders a GUI from its own flash. Instead of one screen per instrument, I flash a single generic "canvas" of addressable slots: a 60-tick colour ring, labels, symbols and a value. The host composes any instrument at runtime over UART, with no reflashing.
- **Instrument registry.** RPM, temperature, fuel and autopilot are just data: ranges, colour zones, sweep and style.
- **Telemetry pipeline.** Sensors are read through an ADC on an RP2040 CAN board and broadcast as NMEA 2000 messages, or bridged through Signal K, including an autopilot provider plugin.

## How it's built

Go for the host tools and N2K codec (CAN framing, PGN scaling, fast-packet reassembly over SocketCAN or serial), PlatformIO firmware for the cockpit nodes, and a Python "canvas compiler" that generates every display asset and its page config.