What You Will Build
By the end of this page, the ADOS Drone Agent will be running on a companion computer (SBC) connected to your drone’s flight controller. It will auto-detect the FC, start streaming telemetry, and be ready to pair with Mission Control.Prerequisites
Hardware you need:- A single-board computer (SBC): Raspberry Pi 4B, Radxa ROCK 5C, or any supported Linux board
- A flight controller running ArduPilot or PX4, connected via UART or USB
- A USB camera (optional, for video)
- An internet connection on the SBC (WiFi or Ethernet) for the install
- A fresh Linux install: Raspberry Pi OS (Bookworm), Ubuntu 22.04+, Armbian, or Debian 12+
- SSH access to the SBC
curlinstalled (it is on most distros by default)
The Drone Agent supports 17 board profiles out of the box. It auto-detects your board at install time and configures hardware-specific settings (camera paths, serial ports, GPIO, power management). Check the supported hardware page for the full list.
Install in One Command
SSH into your SBC and run:- Installs system dependencies (Python 3.11+, ffmpeg, v4l-utils, and others)
- Creates the
adossystem user and directories - Installs the agent Python package from the repository
- Detects your board and writes the hardware profile
- Detects the flight controller on serial ports
- Sets up systemd services
- Starts the agent
Install with Pairing
If you already have a pairing code from Mission Control (from the cloud relay setup), you can pair during install:Verify the Install
After the script finishes, check the agent status:
What the Agent Does at Boot
Every time the SBC powers on, the agent runs automatically via systemd. Here is the boot sequence:Hardware detection
The agent reads
/sys/ and /dev/ to identify the board model, available serial ports, USB devices, and cameras. It loads the matching board profile YAML.FC auto-detect
The agent scans serial ports for MAVLink heartbeats. It tries common baud rates (921600, 460800, 115200, 57600) and picks the first port that responds with a valid heartbeat. No configuration needed.
Service startup
The supervisor starts core services in order:
ados-mavlink: MAVLink proxy and FC communicationados-api: REST API on port 8080ados-health: System health monitoringados-cloud: Cloud relay (if paired)ados-video: Video pipeline (if camera detected)ados-wfb: WFB-ng transmitter (if RTL8812EU adapter detected)
Using the CLI
Theados command is your primary tool for managing the agent. Here are the commands you will use most:
Using the TUI
The agent includes a terminal user interface (TUI) built with Textual. It gives you a live dashboard over SSH.- Service status for all agent services (green/red indicators)
- Live telemetry: attitude, GPS, altitude, battery, RC channels
- System resources: CPU, RAM, temperature, disk usage
- Log stream from all services
- Network status and cloud relay connection
q to quit.
Connecting Mission Control
With the agent running and connected to your FC, you can connect Mission Control.Over LAN (same network)
If your laptop and the SBC are on the same WiFi or Ethernet network:- Open Mission Control in your browser
- The agent’s REST API is available at
http://<SBC_IP>:8080 - Video is available via WebRTC at
http://<SBC_IP>:8889 - Mission Control will auto-discover the agent via mDNS if both are on the same subnet
Over the Internet (cloud relay)
If you want to connect from anywhere:- Pair the agent:
ados pair YOUR_CODE(get the code from Mission Control’s cloud settings) - The agent will start publishing telemetry via MQTT
- Open Mission Control at command.altnautica.com
- Your drone will appear in the dashboard
Configuration
The agent stores its configuration at/etc/ados/config.yaml. You rarely need to edit this by hand. The installer and CLI handle most settings.
Key configuration options:
ados config edit or directly with your text editor.
REST API
The agent runs a FastAPI server on port 8080. It serves OpenAPI documentation athttp://<SBC_IP>:8080/docs.
Key endpoints:
| Endpoint | Method | Purpose |
|---|---|---|
/api/status/full | GET | Full status (telemetry, services, resources, video) |
/api/v1/telemetry | GET | Current telemetry snapshot |
/api/v1/services | GET | Service status list |
/api/v1/video | GET | Video pipeline state and WebRTC URLs |
/api/v1/config | GET/PUT | Read and write agent configuration |
/api/v1/pair | POST | Pair with cloud relay |
/api/v1/command | POST | Send MAVLink command to FC |
Upgrading
To upgrade to the latest version:Troubleshooting
Agent won’t start:Next Steps
Quickstart: Ground Agent
Set up long-range video with a ground station node.
Video Pipeline
Configure the video encoder, resolution, and transport.
Cloud Relay
Set up MQTT telemetry and remote access.
Python SDK
Write scripts that control your drone programmatically.