> ## Documentation Index
> Fetch the complete documentation index at: https://docs.altnautica.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart: Drone Agent

> Install the ADOS Drone Agent and open the local setup webapp.

## What You Will Build

By the end of this page, ADOS Drone Agent will be running on a companion
computer connected to your drone's flight controller. You will open the local
setup webapp, confirm MAVLink telemetry, and connect Mission Control.

<Note>
  The agent is a Rust-first hybrid. Native Rust services run the REST front on
  port 8080, MAVLink routing, video, radio, and the cloud relay. Python handles AI
  and vision, hardware bootstrap, and the plugin runtime. systemd supervises every
  service.
</Note>

## Prerequisites

**Hardware you need:**

* A supported Linux single-board computer.
* A flight controller running ArduPilot, PX4, Betaflight, or iNav, connected by
  UART or USB.
* A USB or CSI camera if you want video.
* Internet access on the SBC for install.

**Software requirements:**

* Raspberry Pi OS Bookworm, Ubuntu 22.04+, Armbian, Debian 12+, or another
  supported Linux distribution.
* SSH access to the SBC.
* `curl`.

## Install

The recommended path is to open Mission Control's [Flash Tool](/mission-control/flash-tool) and pick your board. The Flash Tool hands you a one-line install command to paste over SSH on a board running a stock OS (Pi 4B, Pi Zero 2 W, Radxa CM3, CM4, Rock 5C Lite, Cubie A7Z). See [Install paths](/getting-started/install-paths) for the full decision tree.

The install usually takes 3-8 minutes. It installs dependencies, creates the
`ados` user and directories, detects the board, writes config, sets up systemd,
and starts the agent.

<Warning>
  Run the install script with `sudo`. The agent needs root access during install
  to create services, set up device rules, and configure hardware. Runtime
  services run with restricted permissions where possible.
</Warning>

## Open Local Setup

After the script finishes, run:

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
ados
```

Open the setup URL shown at the top of the terminal page. Common URLs are:

| Access path  | URL                      |
| ------------ | ------------------------ |
| Same machine | `http://127.0.0.1:8080`  |
| mDNS         | `http://ados.local:8080` |
| Hotspot      | `http://192.168.4.1`     |
| USB tether   | `http://10.55.0.1:8080`  |
| LAN          | `http://<sbc-ip>:8080`   |

Use `ados status` for a compact terminal summary, or `ados status --json` for
support scripts.

## Finish the Checklist

The setup webapp walks through:

1. Identify device.
2. MAVLink.
3. Video.
4. Network.
5. Remote access.
6. Mission Control.
7. Finish.

MAVLink and video are local-first. They can work over hotspot, LAN, USB tether,
or direct Mission Control before any cloud or tunnel link is configured.

## Connect Mission Control

If your laptop and the SBC are on the same network:

1. Open ADOS Mission Control.
2. Use the agent URL shown in setup, usually `http://<sbc-ip>:8080`.
3. Use the advertised WHEP URL for video when Mission Control asks for a video
   source.

If you want remote access, open the Remote Access page in the setup webapp and
configure Cloudflare Tunnel with the token or install command from Cloudflare.

## Useful Commands

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
ados                 # terminal status page and setup URLs
ados status          # compact status
ados status --json   # machine-readable setup status
ados update          # update the agent
ados uninstall       # uninstall the agent
```

## Troubleshooting

**Agent will not start:**

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
journalctl -u ados-supervisor -n 50 --no-pager
ss -tlnp | grep 8080
```

**Flight controller is not detected:**

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
ls -la /dev/ttyUSB* /dev/ttyAMA* /dev/ttyACM* 2>/dev/null
journalctl -u ados-mavlink -n 50 --no-pager
```

**Camera is not detected:**

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
ls -la /dev/video*
v4l2-ctl --list-devices
```

See the full [Troubleshooting guide](/drone-agent/troubleshooting) for more.

## Next Steps

<CardGroup cols={2}>
  <Card title="Setup Webapp" icon="browser" href="/drone-agent/setup-webapp">
    Finish onboarding and find local URLs.
  </Card>

  <Card title="Terminal Status Page" icon="terminal" href="/drone-agent/tui-dashboard">
    Learn what `ados` shows over SSH.
  </Card>

  <Card title="Video Pipeline" icon="video" href="/drone-agent/video-pipeline">
    Configure video and WHEP playback.
  </Card>

  <Card title="Cloud Relay" icon="cloud" href="/drone-agent/cloud-relay">
    Add optional remote access.
  </Card>
</CardGroup>
