Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.altnautica.com/llms.txt

Use this file to discover all available pages before exploring further.

Display

The ground station ships with an optional SPI-attached touch LCD. The OLED is the always-on glance. The LCD is what you reach for when you need to do something. Color, fonts that read at arm’s length, and gestures that mean what they mean on every other touchscreen.
ADOS ground station dashboard rendered on the SPI LCD
Looking for the OLED and four buttons? See Physical UI. The two surfaces coexist on the same node.

Auto-provisioning

The installer takes care of the panel end to end. No dtoverlay= editing. No kernel rebuild.
1

Detect

The board fingerprint resolves a HAL profile. The profile lists one or more supported displays. The installer picks the first match, or honors a flag if the operator wants a different one.
2

Provision

The overlay source compiles to a device-tree binary. Modules load on every boot through a drop-in. Resolution, rotation, and touch state land in /etc/ados/display.conf for the renderer to read at startup.
3

Bind

First boot brings up the panel. The renderer probes the framebuffer, the touch bridge attaches to the input device, and the GCS Hardware tab populates with live state.
See Installation for the install command and Hardware Tab for the Mission Control mirror.

Native dashboard

The dashboard is purpose-built for the LCD. Bigger fonts, four stat tiles, each one a tap target.
Dashboard with radio link, drone, mesh, uplink and cloud tiles
The carousel is upscaled from the 128x64 OLED canvas for backwards compatibility. The dashboard runs natively at 480x320. The same five screens that cycle on the OLED are upscaled onto the LCD. Glance behavior stays identical across hardware. Tap to freeze on the active screen.

Link

Link status screen
RSSI, bitrate, FEC repaired and lost, channel, TX power.

Drone

Drone status screen
Paired device id, flight mode, battery, GPS sat count.

GCS

GCS clients screen
Connected client list with PIC badge.

Net

Network status screen
AP SSID and IP, USB tether IP, current uplink and reachability.

System

System health screen
CPU, RAM, temperature, uptime, agent version.

Field tap-to-pair flow

Two devices, no laptop, under two minutes. Each step has its own screen. No silent transitions. No modal-blocking dead ends.
1

First boot, role unset

Role unset banner
A mesh-capable node with no role picked yet shows a banner pointing at the menu instead of cycling status screens.
2

Pick a role

Role picker
Cycle direct, relay, or receiver. Tap apply to commit.
3

Open the receiver window

Receiver accept window
On the receiver, open a 60-second accept window. The countdown is on the panel.
4

Scan from the relay

Relay scanning for receiver
On the relay, scan for the receiver. mDNS discovery on bat0 brings up host and signal.
5

Confirm joined

Mesh joined status
Mesh up. Confirmed on both ends.
The full ground-side reference for this flow lives at Field pairing.

Overlay screens

Recovery, confirmation, list views. A node without a second WiFi adapter shows a hint screen so the operator knows the feature exists and how to unlock it.

Neighbors

Mesh neighbors list
Mesh peers with link quality. Scrollable.

Hub unreachable

Hub unreachable grace period
Receiver lost, grace period running. Wait or fall back to direct.

Leave confirm

Leave mesh confirm screen
Two-tap confirmation before leaving the mesh.

Error states

Unified error overlay
Single overlay that switches on the agent error code.
A mesh-unavailable hint screen replaces the silent empty submenu when the node has only one WiFi adapter, with a one-line nudge to plug a second adapter and reboot.

Touch gestures

Gesture classification is shared across every screen. Same thresholds, same behavior. Hit zones are page-local so a tile tap maps to the right detail page regardless of theme.
GestureThresholdWhat it does
Tap< 400 ms, < 12 pxDrill into a tile or select an item.
Long-press>= 400 ms, < 12 pxOpen a context menu, start calibration.
Swipe< 250 ms, >= 24 pxNavigate between pages.
Drag>= 250 ms, >= 12 pxScroll a list or pan content.

Supported boards

New boards add a displays block to their HAL profile YAML and the installer picks them up. No code change in the renderer.
BoardSoCPanelDriverTouchResolution
Radxa Cubie A7ZAllwinner A733Waveshare 3.5” RPi LCD (A)ILI9486ADS7846480 x 320
Radxa ROCK 5C LiteRK3582Waveshare 3.5” RPi LCD (A)ILI9486ADS7846480 x 320
Raspberry Pi 4BBCM2711Waveshare 3.5” RPi LCD (A)ILI9486ADS7846480 x 320
Display profiles live in each board’s HAL YAML. Adding a new pair is a YAML change plus an overlay file.

Mission Control mirror

The Hardware tab in Mission Control mirrors the on-device display state. Type, controller, resolution, rotation, last-touch age, current page, calibration state. Calibrate from the desk before the operator walks out the door.

Live mirror

The local-display card appears the moment the panel binds. If the panel goes dark, the card flips to degraded state without taking down the rest of the Hardware tab.

Calibrate from the desk

The five-point calibration wizard runs from Mission Control as well as from a long-press on the panel itself. Calibration data persists across reboots.
See Hardware Tab for the full Mission Control surface.

Graceful degradation

If the LCD is absent, the agent does not complain. The OLED still cycles, the setup webapp still serves status, and the GCS Hardware tab still surfaces every config knob. Nothing in the agent’s runtime requires the panel to exist.

What’s next

Physical UI

The OLED + four-button surface that ships on every node.

Installation

The one-line install handles the LCD overlay automatically.

Setup and pairing

First-time pairing and onboarding from the device webapp or the GCS.

Field pairing

The full mesh tap-to-pair walkthrough, with the same screens shown on the panel.