Installation
The Ground Agent uses the same install script as the Drone Agent. One command, one SD card image, one codebase. The hardware fingerprint at first boot picks the right profile automatically.Prerequisites
- A Raspberry Pi 4B (or supported SBC) with a fresh Raspberry Pi OS Bookworm 64-bit image
- An RTL8812EU USB WiFi adapter plugged in
- Internet access during installation (WiFi or Ethernet)
- An SD card with at least 16 GB (32 GB recommended)
One-line install
SSH into your SBC and run:What the install script does
System update
Runs
apt update and installs required packages: Python 3.11+, pip, systemd units, dnsmasq, hostapd, and build tools for the DKMS driver.DKMS driver build
Clones the RTL8812EU kernel module source and builds it via DKMS. This is the longest step. If kernel headers are missing, the script installs them first.
Agent install
Installs the
ados Python package from the GitHub release. Creates the ados system user, config directory at /etc/ados/, and runtime directory at /run/ados/.Systemd units
Deploys all systemd service units. They are not enabled yet because the profile has not been determined.
Profile detection
Runs
ados.bootstrap.profile_detect as the final step. The fingerprint checks for:- I2C device at
0x3Cor0x3D(OLED present) - Four GPIO pins with pull-ups (buttons wired)
- RTL8812EU USB device
- No flight controller on any serial port
profile: ground-station to /etc/ados/profile.conf and enables the ground-station systemd units.First boot after install
After the reboot, you should see:- OLED shows the Link screen with “No drone” (if not yet paired) or signal strength (if paired during install)
- WiFi AP broadcasts
ADOS-GS-XXXXwhereXXXXis the last four hex digits of the device ID - Setup webapp is reachable at
http://setup.ados.local/from any device on the AP
The AP passphrase is printed on the case sticker for production units. For bench builds, the default passphrase is
ados-ground. You can change it in the setup webapp or via the OLED menu.Verifying the install
SSH back into the SBC and run:Upgrading
To upgrade an existing ground station:Installing a specific branch
For testing pre-release features:Profile override
If auto-detection picks the wrong profile (rare, usually means ambiguous hardware), you can force it:/etc/ados/config.yaml directly:
Troubleshooting install issues
| Problem | Cause | Fix |
|---|---|---|
| DKMS build fails | Missing kernel headers | Run sudo apt install raspberrypi-kernel-headers and re-run the install |
| No WiFi AP after reboot | hostapd not started | Check systemctl status ados-wifi-ap |
| OLED blank | I2C not enabled | Run sudo raspi-config, enable I2C under Interface Options, reboot |
| Profile detected as “air” | Flight controller on USB | Unplug the FC and run sudo ados profile auto |
What is next
- Setup and Pairing for the first-time walkthrough
- WiFi AP to connect your laptop
- USB Tether for a wired connection