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.
Install the agent
--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 port8080.
From any of them, the node answers at these addresses (shown for the access point):
| Surface | Address |
|---|---|
| Dashboard and REST API | http://192.168.4.1:8080/ |
| On-box cockpit | http://192.168.4.1:8080/cockpit/ |
| Video (WebRTC WHEP) | http://192.168.4.1:8080/whep |
| MAVLink WebSocket | ws://192.168.4.1:8765 |
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.
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.
Pair the air link
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.
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: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. Theconfirm 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:
- Moves the role to
direct, which stops the mesh services. If that fails, nothing is wiped. - Unpairs the air link.
- Deletes every standing credential, the device identity and
config.yaml.profile.confstays. - Deletes the mesh identity, revocations, role file and gateway pin.
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.