Installation
The agent installs with a single command. It detects your board, installs dependencies, configures systemd services, and starts everything automatically.Quick install
SSH into your companion computer and run:The install script requires root access. It installs to
/opt/ados/, creates config at /etc/ados/, and registers systemd services. On boards without systemd (rare), it sets up a process manager fallback.What the install script does
Detect the board
Reads
/proc/device-tree/model and matches against the 17 built-in board profiles. Sets the tier and enables the right features for your hardware.Install system packages
Installs Python 3.11+, pip, virtualenv, and any board-specific packages (like the RTL8812EU DKMS driver for WFB-ng). Uses
apt on Debian/Ubuntu systems.Create the virtual environment
Sets up a Python venv at
/opt/ados/venv/ and installs the ados-drone-agent package from PyPI along with all dependencies (pymavlink, FastAPI, uvicorn, paho-mqtt, structlog, Textual, and more).Generate device identity
Creates a unique device ID at
/etc/ados/device-id using a chained fallback: Python uuid, OpenSSL random, or hostname-timestamp-pid. This ID is used for cloud pairing and mDNS.Write default config
Creates
/etc/ados/config.yaml with defaults tuned for your detected board. Serial port, baud rate, video resolution, and tier are all pre-filled.Install systemd services
Copies service unit files to
/etc/systemd/system/ and enables them. The supervisor service starts at boot and manages all child services.Install with pairing
If you have a pairing code from ADOS Mission Control, include it during install:Install a specific branch
For development or testing a feature branch:Upgrade an existing installation
To upgrade to the latest version without losing your config:/etc/ados/config.yaml and your pairing state.
Install from source
For contributors and developers who want to modify the agent code:Install on macOS (for development)
You can run the agent on macOS for development and testing. It will not have systemd, WFB-ng, or hardware GPIO, but the REST API, demo mode, CLI, and TUI all work.Uninstall
On Linux (removes services, binary, and data, keeps config):Directory layout after install
Verifying the installation
After install, check that everything is running:ados diag command prints board detection results, system resources, service states, FC connection status, network interfaces, and installed dependency versions. This is the first thing to run if something looks wrong.
Requirements
| Requirement | Minimum | Recommended |
|---|---|---|
| OS | Debian 11+ or Ubuntu 22.04+ (arm64/armv7l) | Debian 12 or Ubuntu 24.04 |
| Python | 3.11 | 3.11 or 3.12 |
| RAM | 64 MB (Tier 1) | 2 GB+ (Tier 3/4) |
| Storage | 500 MB | 4 GB+ |
| Network | Serial UART to FC | + WiFi/Ethernet/4G |