FD mark
FlatlineDynamics
UTC--:--:--
ZONEUTC
← Field notes
Web18 March 2026

Console UI: building the configuration interface

The Sentinel HMD-1 needs a configuration interface. The question was what kind, and where it runs. This note documents the decision.

The options

Three approaches were considered:

  1. Physical controls on the unit — buttons, dials, or a small display. Adds weight (~90g estimated for a minimal button cluster with tactile feedback), adds waterproofing complexity, adds failure modes. Ruled out early.
  2. Mobile app — Bluetooth or WiFi connected. Familiar, but introduces pairing overhead, OS compatibility maintenance, and a dependency on a device that may not be in the field kit.
  3. Local web console — the device hosts a small HTTP server on its USB network interface; configuration is done via a browser on any connected device.

Why the local web console

The web console was chosen for its operational properties:

  • No installation required — any device with a browser and a USB-C cable can configure the unit
  • No pairing state — always accessible when connected; no bonding, no PIN, no "device not found" failure mode
  • Legible interface definition — plain HTTP JSON; testable with curl, documentable without special tooling
  • Version-controlled UI — the console firmware is part of the device firmware; the interface version is the device version

The USB network interface also means configuration traffic is physically isolated. It doesn't travel over the air because it doesn't leave the cable.

Implementation specifics

The console is a single-file HTML interface served from flash. No framework, no build step on the device side.

File size: 68KB uncompressed, 19KB gzip. The device's flash allocation for the console is 128KB — we're using 53% of it. There's room for the diagnostic expansion planned for B02 without a flash upgrade.

HTTP response time for a configuration read: under 12ms on the USB network interface in all measured cases. Write-and-confirm (send config, device applies, confirms via response body): under 40ms. Both are fast enough that the UI feels immediate; no loading states required.

The console covers:

  • Brightness and display mode configuration
  • Optical offset calibration (coarse, ±2.5° range, 0.1° steps)
  • Firmware version and revision readout
  • Diagnostic outputs — sensor state, power draw, connection status
  • Firmware update (verified image only, SHA-256 hash-checked before flash)

What we didn't do

The interface is deliberately minimal. It presents configuration options, not a dashboard. We considered adding a live sensor feed to the diagnostic view — it would have been useful during development. We removed it before B01 because it introduced stateful connection handling that complicated the server implementation for a feature that isn't needed in the field.

The console source is published in the Sentinel firmware repository.

RELATED PROGRAMME

Sentinel HMD-1
FFD / LAB / CONSOLE-UI-001
← Back to field notes