Skip to content
design

Hardware status

The console's Hardware page: every bus, device, radio and end the vessel has, by type, with the state of each and the way to its problems.

On this page

The hardware page is the console's own answer to "is the vessel alive, and what is wrong": one full screen, grouped by the type of thing it describes — the NMEA buses, the devices found on them, the WiFi networks in range, the Bluetooth and audio ends — and, under all of it, the tools to debug what is not working. It is the screen a technician opens on arrival, and it lives in the console — the device's own first-boot surface is a different composition, because the console does not exist until the vessel is set up and online.

Nothing here is invented about the vessel: this page is drawn after setup, so the vessel's name, its network and its upstream are all facts by then. The figures themselves are a passage rather than a live feed — the page states that — but every part it is composed from is the kit's own.

Hardware

6 of 11 fresh3 below fresh · 2 deadchecked 14:32 UTC · every 5 s

Buses

2 buses · 4 talkers · 118 sentences/s
✓NMEA 0183 · ttyUSB04800 baud · 42 sentences/snow
✓NMEA 2000 · can0250 kbit/s · 76 frames/snow

Devices found

5 devices · 1 silent · 1 stale
✓Garmin GPS 19xNMEA 0183 · 4800 baud · ttyUSB01 s
✓Raymarine i70 windSeaTalk-NG · source 0x111 s
!Airmar depthNMEA 0183 · ttyUSB112 s
✓B&G compassNMEA 2000 · 1272501 s
✕Yanmar gatewayModbus · 192.168.4.51—

WiFi

4 in range · connected to Starlink
✓Starlink5 GHz · −52 dBm · WPA22 s
!Marina-5G2.4 GHz · −78 dBm · WPA29 m
✕Marina-Guestopen · no internet—
✓Harbour Cafe5 GHz · −64 dBm · WPA21 m

Bluetooth and audio

repeater paired · codec ready · headset not paired
✓Cockpit repeaterpaired · battery 82%now
✓USB audio codecoutput 0.8 · mic −12 dBnow
!Helm headsetnot paired—
The whole page

Layout

Five groups in one column, each a heading with the count that is not fresh beside it, then a row per thing: a state mark, the name, what it last said, how long ago, and the action that deals with it. The marks are the vocabulary the rest of the console uses — a check for fresh, an exclamation for below fresh, a cross for dead — and the heading carries the summary so a group can be read without its rows: 5 devices · 1 silent · 1 stale.

Every mark is also the way to the detail: hovering one answers with what the state means in words ("No echo, last 8.4 m", "Announced, but nothing answers behind it"), which is what keeps a dense screen from needing a second screen. The action on each row is the first thing a technician would try — restart the bus, diagnose the device, forget the network, play the test tone — and the debug panel at the foot gathers the ones that need explaining, with the sentence that says what to check first.

Built from

PartDrawn by
The summary badge and countsBadge beside the page title
The row's state markA mark shape with Tooltip for its detail; the mark carries the state before the colour does
The row's actionButton in its quiet emphasis, and only where an action exists
The sentence about a dead deviceInline message
The debug panelCollapsible, closed by default so the page reads as status first
A dead device's historySparkline, which draws a gap rather than a line through a missing reading
The instrument detailReading for a value with its trust state and age

What the crew sees first

Whether anything is dead, and how much is below fresh — the badge and the counts in the heading, before any row. A technician then reads the group they came for; the crew read the heading and leave. Dead things sort to the top of their group through the cross, not through a sort order: a row that has stopped is never below one that is merely late. An action that fails says so on the row it belongs to, in the sentence under it, since a hardware fault is a fact about the vessel and not an alert about a person's mistake.

Theme and size

The marks are shapes before they are colours, so the groups read in Night and to a colour-blind reader, and the rows are typographic, so they hold at helm size. On a phone the page is one column with the age column dropped; the marks, the names and the actions stay, because those are the three things a fault needs. Hover detail has a keyboard and touch twin: the mark is focusable and the tooltip opens on focus.

Kit gaps

Three, and they are the same three the composition has always had. The radios and the audio codec have no model — the situation view reports the instruments and the machinery, not the WiFi, the Bluetooth ends or the codec's gain — so those rows would come from the device's own API rather than the situation. There is no DataTable-shaped rendering here for the same reason the page is hand-composed: the rows carry an action and a detail that a generic table has no column for. And restarts are a privileged action the console does not have yet: the buttons name what they would do, and the Go side answers only some of them.

  • Status strip: the sensors summary in the top bar, one press from this page.
  • Desktop and Mobile: the shells this page opens inside.
  • WiFi portal: the setup the device runs before this console exists.