This is probably too much for most but I've kinda put together my user manual for how to operate this thing.... It takes a bit of setup to calibrate the compass and what not but once its installed the basics is that you can just go for a sail and when you're done you press the mode button one time and goes into a logbook stats mode where it reads out the information about your sail in an automatic scrolling page mode... The way I operate it is that its plugged in via USB-C to a switch that I turn on/off when I got for a sail. But then in the background it creates tons of logs for later analysis and nerdery and the GPX files are VERY detailed... All of this is functional and ready to be tested on the boat this summer already. Gemini has been very helpful in writing the Python code and its been way faster to redo this the whole thing took me like 9 months to write in C++. I've gotten this and the mechanical design done in like 1.5-2 months this time? Either I've improved or AI is very helpful... or probably a bit of both....
Operation Manual
Hardware Controls
The instrument uses a 3-button interface to navigate menus and adjust settings.
| Physical Button | Function | Description |
|---|
| TOP | UP | Cycle Backwards through pages or Increase values. |
| MIDDLE | MODE | Short Press: Cycle Main Modes (WIND $\to$ STATS $\to$ SENSORS $\to$ SETTINGS).
Long Hold: Trigger actions (e.g., "SAVE CONFIG", "CALIBRATE IMU") or enter Edit Mode. |
| BOTTOM | DOWN | Cycle Forwards through pages or Decrease values. |
Main Menu Modes
1. WIND MODE
Displays the primary sailing data. Use
UP/DOWN to cycle through the four available views:
- APPARENT ONLY
- Display: Shows Apparent Wind Speed (AWS).
- Pointers: Shows Apparent Wind Angle (AWA) only.
- TRUE ONLY
- Display: Shows True Wind Speed (TWS).
- Pointers: Shows True Wind Angle (TWA) only.
- APPARENT + TRUE (Combined A)
- Display: Shows Apparent Wind Speed (AWS).
- Pointers: Shows BOTH Apparent (White) and True (Blue) wind angles simultaneously.
- TRUE + APPARENT (Combined T)
- Display: Shows True Wind Speed (TWS).
- Pointers: Shows BOTH Apparent (White) and True (Blue) wind angles simultaneously.
2. STATS (LOGBOOK) MODE
Displays historical data for the current voyage. Use
UP/DOWN to cycle through the 4 logbook pages:
- Page 1: Voyage Status
- Start Time: When the boat left the geofence.
- End Time: When the boat returned (or current time if active).
- Page 2: Wind History
- Avg AWS: Average Apparent Wind Speed.
- Avg TWD: Average True Wind Direction (Speed-weighted).
- Max AWS: Highest recorded gust.
- Page 3: Sea State
- Barometer: Current pressure trend (inHg or hPa).
- Max Heel: Maximum recorded heel angle.
- Page 4: Performance
- TRIP: Odometer (Nautical Miles traveled since start).
- MAX SOG: Maximum Speed Over Ground.
- AVG SOG: Average Speed Over Ground.
3. SENSORS MODE
Raw data inspector for debugging. *
GPS: Lat/Lon, Fix Quality (FQ), HDOP. *
IMU: Compass Heading, Pitch, Roll. *
System: Battery Voltage, Internal Temp.
IMU Calibration (Compass & Level)
To ensure the compass heading and heel angle are accurate, the BNO055 sensor occasionally needs calibration.
You will usually only need to do this once for each time you move the location the instrument is installed. It accounts for metal objects and other electrical fields in the vicinity of the instrument.
- Enter Calibration Mode:
- Navigate to SENSORS mode using the MODE button.
- Use UP/DOWN to scroll to the screen labeled CALIBRATE.
- The display will show a status code like: S:0 G:0 A:0 M:0.
- Interpret the Status Codes:
- S (System): Overall calibration status (0 = Uncalibrated, 3 = Fully Calibrated).
- G (Gyro): Rotational sensor.
- A (Accel): Tilt/Gravity sensor.
- M (Mag): Compass/Magnetometer.
- Perform Calibration Motions:
- To Calibrate Gyro (G): Place the instrument on a stable surface and let it sit completely still for a few seconds. G should jump to 3 quickly.
- To Calibrate Magnetometer (M): Pick up the unit and move it in a "Figure 8" motion in the air, or rotate it 360° around each axis. M will increase to 3 once it maps the local magnetic field.
- To Calibrate Accelerometer (A): Rotate the unit slowly in 45° increments, pausing for a second at each angle. Placing it on 6 different sides (like a die) often works best.
- Save the Profile:
- Once the system shows S:3 (or you are satisfied with the individual sensors), LONG HOLD the MODE button.
- The screen will flash SAVED!.
- This writes the calibration offsets to IMUCAL.json on the SD card so they are loaded automatically on the next boot.
4. SETTINGS MODE
Adjust system preferences. *
Brightness: Adjust OLED and Pixel Ring intensity. *
Save: Write current settings to config.txt on the SD card.
Automated Features ("Zero-Touch" Logging)
The instrument is designed to require no manual interaction during a typical day sail.
- Auto-Start: When the boat moves >350mfrom the "Home" coordinates (defined in config.txt), the system detects a "Voyage Start."
- Trip Odometer resets to 0.0 NM.
- Max/Avg stats are cleared.
- A new GPX track file is created on the SD card. Format: (YYYY)_MM-DD_HHhMMm.gpx Example: (2026)_02-19_19h13m.gpx
- Auto-Log: While sailing, the system logs position, wind, and performance data to the GPX file every 1-5 seconds. (Configurable via config.txt on the SD card)
- Auto-End:When the boat returns within the home radius, the voyage is marked as complete.
- This means that your sail and wind statistics won't rot away as you sit at the dock talking to a friend. The stats are locked once you cross the geofence to home.
- A summary is written to voyage_log.csv.
- The GPX file is closed.
Visual Indicators (Clock Page)
- FQ: 0 = No GPS Fix.
- FQ: 1 = Standard 3D Fix.
- FQ: 2 = DGPS/SBAS Fix (High Precision - WAAS/EGNOS active).
Configuration (/sd/config.txt)
If you put a blank SD card into the unit it will create a file for you with default values. You can then edit this file to configure the instrument to your preferences. This file controls the behavior of the instrument. All lines must be formatted as KEY=VALUE.
Navigation & Orientation
- BowOffset (Default: 0)
- Description: Degrees to add to the wind angle. Use this if the wind sensor is not mounted perfectly parallel to the boat's centerline (e.g., set to 5 if twisted 5° to the right).
- MagVariance (Default: 14)
- Description: Magnetic declination for your region. This is added to the magnetic compass reading to calculate True Heading and True Wind Direction. (e.g., 14 is typical for the Pacific Northwest).
Geofencing & Automation
- HomeLat / HomeLon
- Description: The decimal coordinates of your home marina or mooring. This is the center point for the automation circles.
- HomeStatRadius (Default: 350)
- Description: Radius in meters. When you cross this line outbound, the trip stats (Odometer, Max Speed, etc.) are reset. When you cross it inbound, the voyage log is saved.
- HomeGPSRadius (Default: 50)
- Description: Radius in meters. GPX logging to the SD card is disabled while inside this circle to save storage space while at the dock.
Logging & Time
- GPXLogging (Default: True)
- Description: Master switch to enable/disable writing GPX track files to the SD card.
- GPXLoggingRate (Default: 1)
- Description: Seconds between log entries. Recommended: Set to 5 or 10 to reduce file size and system load.
- TrackName (Default: "Uncomfortably Level")
- Description: The name of the track written into the GPX file header (visible in mapping software like OpenCPN or Google Earth).
- LocalUTCTimeDelta (Default: -8)
- Description: Time zone offset from UTC in hours (e.g., -8 for PST, -5 for EST).
Sensor Tuning & Filtering
- SpeedMAD (Default: 5)
- Description: "Moving Average Depth" window size. This is the number of recent wind samples kept in the buffer for smoothing. Higher numbers = smoother wind speed but more lag. Lower numbers will give less lag but look jittery. At ~10 knots you can expect about 5 updates per second so the default of 5 smooths and averages 1 second of readings. This feels about right.
- DirectionFilter (Default: 250)
- Description: Smoothing factor for wind direction (0-1000). Lower numbers make the needle move slower and smoother; higher numbers make it more responsive to gusts.
- WindUpdateRate (Default: 1000)
- Description: Interval (in ms) to process wind data from the masthead unit.
- GPSUpdateRate (Default: 1000)
- Description: Interval (in ms) to poll the GPS for position updates.
- BaroRefAlt (Default: 114)
- Description: Your current altitude in meters (usually your home dock altitude). This is used to calibrate the barometer to report Sea Level Pressure correctly.
Display & Units
- TempUnits (Default: "F")
- Description: Temperature display units ("F" or "C").
- BaroUnits (Default: "inHg")
- Description: Barometric pressure units ("inHg" or "hPa").
- BackgroundPixelBrightness (Default: 0.025)
- Description: Brightness (0.0 - 1.0) of the static Port/Starboard colors on the LED ring.
- PointerPixelBrightness (Default: 1.0)
- Description: Brightness (0.0 - 1.0) of the active wind pointer LEDs.
GPX Log Format
The instrument creates standard GPX 1.1 files compatible with most mapping software (OpenCPN, Google Earth, etc.). However, to capture the full sailing telemetry, it utilizes a custom <extensions> block for data not supported by the standard GPX schema.
Standard GPX Tags
| Tag | Description | Unit |
|---|
| <trkpt lat="..." lon="..."> | GPS Latitude and Longitude. | Decimal Degrees |
| <ele> | Barometric Altitude (derived from BMP280). | Meters |
| <time> | UTC Timestamp. | ISO 8601 (Z) |
| <speed> | Speed Over Ground (SOG). | Meters/Second |
| <course> | Course Over Ground (COG). | Degrees (True) |
Custom Sailing Extensions
These fields are located inside the <extensions> block of each track point.
| Tag | Description | Unit |
|---|
| <gps_ele> | Raw Altitude from GPS (Ellipsoid height). | Meters |
| <hdop> | Horizontal Dilution of Precision (GPS Accuracy). | Lower is better |
| <sats> | Number of satellites used for the fix. | Count |
| <aws> | Apparent Wind Speed (Filtered). | Knots |
| <awa> | Apparent Wind Angle. | Degrees (0-359) |
| <tws> | True Wind Speed (Calculated). | Knots |
| <twa> | True Wind Angle (Calculated). | Degrees (0-359) |
| <heading> | Magnetic Compass Heading (IMU). | Degrees |
| <heel> | Heel Angle (Roll). | Degrees (Positive = Port up?) |
| <pitch> | Pitch Angle. | Degrees |
| <baro> | Barometric Pressure. | inHg (default) |