Physical UI (OLED + Buttons)
The ground station has a 128x64 pixel OLED and four tactile buttons. Together they give you status at a glance and a menu system for configuration, pairing, and network control. No laptop or phone required.
Hardware
OLED display. SSD1306 or SH1106 driver IC, 128x64 pixels, I2C interface at address0x3C. Wired with four connections: SDA, SCL, VCC (3.3 V), and GND. The 1.3” size is easier to read in the field. The 0.96” size works on the bench.
Buttons. Four 6mm tactile momentary pushbuttons. Each wires between a GPIO pin and GND. The agent enables internal pull-ups in software, so you do not need external resistors for the bench build.
Long-press events fire on release, not at the 2-second mark. If you hold B4 and change your mind, just let go before 2 seconds and nothing happens.
Status screens
Five auto-cycling screens rotate every 5 seconds. Press B1 or B2 to advance manually.1. Link
Shows the WFB-ng radio link to the drone.2. Drone
Shows the connected drone status.3. GCS (connected clients)
Shows who is connected to the ground station.PIC badge marks the pilot-in-command client.
4. Network
Shows current network state and uplinks.5. System
Shows SBC health and agent version.Role badge
When the node is mesh-capable (mesh_capable: true in /etc/ados/profile.conf), the status screen header carries a small role tag at the top right:
On a fresh box where no role has been picked yet, the OLED replaces the status cycle entirely with a “Role: unset” prompt that points at the Mesh menu. Pressing any button enters the Mesh -> Set role flow directly.
Menu system
Press B3 (Select) from any status screen to enter the menu. Navigation uses the same four buttons:- B1: move up
- B2: move down
- B3: enter / confirm
- B4: back / exit
mesh_capable: true in /etc/ados/profile.conf. profile_detect sets this flag at boot when a second USB WiFi adapter is present on the node. Children inside the submenu are filtered by the current role: a receiver sees “Accept relay” but not “Join mesh”; a relay sees the inverse; “Leave mesh” only appears when a mesh is up.
Mesh overlay screens
Mesh actions take over the OLED with dedicated screens that override the normal status cycle. Each overlay rebinds the four buttons to actions specific to that screen.
The first-boot unset screen (when a mesh-capable node has no role yet) is its own override that any button press dismisses by entering the Mesh submenu.
Factory reset
Factory reset is a two-step process to prevent accidents:1
Hold B4 for 10 seconds
The OLED shows a countdown: “Factory reset in 10… 9… 8…”
2
Confirm within 5 seconds
The OLED shows “Confirm? Hold B4 again for 3 seconds.” Release B4, then hold it again within 5 seconds.
3
Reset begins
The agent erases pairing keys, resets config to defaults, and reboots. The ground station returns to the first-boot state.
direct, stops the mesh services, and wipes /etc/ados/mesh/* (the mesh id, the shared PSK, the receiver hint, the revocation list, and the role sentinel). The node returns to a fresh state and can be paired into a different deployment.
Power saving and burn-in protection
OLED screens can develop burn-in from static content over long periods. The agent includes three mitigations:- Auto-dim: brightness drops to 20% after 60 seconds of no button activity
- Pixel invert: white-on-black swaps to black-on-white every 10 minutes
- Screensaver: a small bouncing “ADOS” logo appears after 5 minutes of idle
Graceful degradation
The OLED and buttons are optional. The ground station works fine without them.Remapping buttons
You can remap what each button does (short press and long press) from three places:- OLED menu: not available (you would need buttons to remap buttons)
- Setup webapp: Advanced page
- Mission Control: ground-station panel > Physical UI tab
What is next
- Display if your node has the SPI LCD attached for the touch surface and native dashboard
- Setup and Pairing for the first-time walkthrough
- Hardware Tab for the Mission Control management interface
- HDMI Kiosk for standalone flight display