Skip to main content
This page takes one ground station from a fresh install to receiving a drone. To grow it into a relay and receiver mesh afterwards, continue with Build a mesh.

Before you start

  • A board from Ground Agent supported hardware.
  • One RTL8812EU or RTL8812AU USB adapter for the drone link.
  • Antennas: a 5 GHz antenna on the drone-link adapter. Keep at least 30 cm between antennas on the same chassis.
  • Power, case and cabling. See Power and runtime.
The OLED, the LCD and the buttons are optional.

Install the agent

Add --name <hostname> to set a predictable mDNS name. Flags, upgrades and profile changes are on Install the Ground Agent.

Reach the node

Three ways in. All of them reach the agent on port 8080. From any of them, the node answers at these addresses (shown for the access point):
SurfaceAddress
Dashboard and REST APIhttp://192.168.4.1:8080/
On-box cockpithttp://192.168.4.1:8080/cockpit/
Video (WebRTC WHEP)http://192.168.4.1:8080/whep
MAVLink WebSocketws://192.168.4.1:8765
The access point broadcasts ADOS-GS-<id> and hands out addresses from 192.168.4.10 to 192.168.4.100. Until setup finishes, joining it on a phone raises the operating system’s sign-in sheet, which opens the setup wizard. If the sheet does not appear, open http://192.168.4.1:8080 directly. The access point passphrase is generated per unit. Read it on the box:
<hostname> is the node’s system hostname, which avahi publishes. Set it with --name at install time, or read it with hostname. For USB, connect a USB-C data cable from your laptop to the node’s OTG port. The node takes 192.168.7.1 and gives your laptop 192.168.7.2. See USB tether and Wi-Fi access point.

Pick a role

Every ground station runs in one of three roles. The role is one config key, ground_station.role, and it decides which services start.

direct

Single-node receive. The default. No mesh services.

relay

Forwards what it hears from the drone to a receiver over a local mesh.

receiver

The hub. Combines what it hears with every paired relay’s forwards and serves the stream.
Pick direct when one ground point sees the whole flight area. It needs the board, one radio adapter and antennas. Pick relay to extend reception across an obstructed area: behind a hill, across a field, on the far side of a building. A relay listens to the drone with its own adapter and forwards what it heard over the mesh instead of decoding it. A receiver must already exist, and the relay must pair with it first. Pick receiver for the node where the pilot and Mission Control sit. It combines its own reception with every relay’s forwards and recovers what any one radio missed. There is exactly one receiver per mesh. Setting relay or receiver is covered on Build a mesh.

Run the setup wizard

Open the reach URL and work down the steps. On a ground station with a cloud posture there are eleven steps; the default local-only posture hides the Mission Control pairing step, leaving ten. An optional step never blocks the finish.
1

Welcome

Confirms the device name, board and version, and shows which local networks are up (Wi-Fi, hotspot, USB tether or LAN). With no usable local network, this step asks you to bring one up first.
2

Profile

Confirms Ground station and the role.
3

Operating region

Optional. The agent defaults to an unrestricted RF posture. Pin a region here to enforce your jurisdiction’s channel and power limits. While unpinned, local RF compliance is your responsibility.
4

Hardware check

Sweeps the components the role needs: the board, the radio adapter, a display, a gamepad, and the second adapter for mesh roles. Resolve anything reported missing before you continue; optional items can be skipped.
5

Cloud posture

The default is local only: Mission Control reaches the node over the LAN by hostname or IP and stores the key locally. Pick the cloud relay or a self-hosted backend only when you need access from another network.
6

Pair with Mission Control

Shown only for a cloud or self-hosted posture. See Pair with Mission Control.
7

Video

Confirms WHEP video is live. On a ground station, that means the received stream is being served.
8

Ground receiver

Confirms the WFB receive path and the drone pairing. See Pair the air link.
9

Local display

Shown on every ground station. Sets up an attached SPI LCD and runs the nine-point touch calibration.
10

Remote access

Optional. Configure a tunnel for reaching the node from outside the local network.
11

Finish

Marks setup complete. The first-time sign-in responder on the access point stops from here on.
Once the node is in Mission Control, its node panel is the richest management surface: Overview, Cockpit, Carried drones, Radio (not on a receiver), Network, Mesh & RX, RC / ELRS Link (when a CRSF module is present), Display, Buttons, Peripherals and Logs. See Ground station node panel.

Pair with Mission Control

ADOS uses “pairing” for three separate things. A ground station normally needs the first two.
  • Mission Control pairing gives one Mission Control owner an API key for the node. See Pairing.
  • Air-link pairing (WFB-ng bind) exchanges radio keys between a drone and a ground station. See WFB-ng pairing.
  • Mesh pairing joins a relay to a receiver in a ground mesh. See Build a mesh.
Local only (the default): add the node in Mission Control by its hostname or IP over the LAN. Cloud or self-hosted: the agent shows a six-character pairing code. Enter it in Mission Control to claim the node. See Connect Mission Control and Pairing. The air link is the WFB-ng key exchange between the drone and the ground station, separate from Mission Control pairing. An unpaired ground station is armed for automatic pairing: a powered, unpaired drone in radio range pairs on its own, with no code. Live signal and bitrate appear once the drone is in range. The LCD Pair drone page and Mission Control’s Radio tab show the paired drone and its key fingerprint. After pairing:
  • This ground station receives video only from drones that share its key.
  • The pairing survives reboots and power cycles.
  • Several drones can share one ground station’s key; each takes its own fleet slot.
To pair with a different fleet, unpair first: the Unpair button on the LCD Pair drone page (two taps), Mission Control’s Radio tab, or DELETE /api/v1/ground-station/wfb/pair. Unpairing wipes the station’s radio keys for every drone. Key material and the channel plan are on WFB-ng pairing.

Verify

On a working setup, video and telemetry appear within seconds of both sides powering up. Later flights need no setup steps.

Re-run setup and reset

Re-run the wizard

On the box:
Pairing keys and Mission Control links survive a wizard reset.

Factory reset

Factory reset runs on the box only. A caller on loopback (or the operator socket) may reset; a remote caller is refused even with the pairing key. The confirm value is the installed drone key’s fingerprint, which GET /api/v1/ground-station/status reports as paired_drone.key_fingerprint, or factory-reset-unpaired on a station that holds no key:
The reset, in order:
  1. Moves the role to direct, which stops the mesh services. If that fails, nothing is wiped.
  2. Unpairs the air link.
  3. Deletes every standing credential, the device identity and config.yaml. profile.conf stays.
  4. Deletes the mesh identity, revocations, role file and gateway pin.
The node does not reboot on its own. Reboot it afterwards; it comes back in its first-boot state with a fresh access point passphrase. The full wipe list is on Hardening.

Next steps

Build a mesh

Add a receiver and relays.

HDMI kiosk

Fly from a monitor and gamepad.

Ground Agent troubleshooting

When something does not come up.
Last modified on October 11, 2026