> ## 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.

# Flash Tool

> Mission Control's universal flasher for flight controller firmware and companion-computer agents.

The Flash Tool is the universal flashing UI inside Mission Control at **Settings, then Flash Tool**. It handles both flight controller firmware and companion-computer agents from one place. You never need a separate flashing tool.

## What it does

The Flash Tool covers two jobs:

* **Flight controller firmware.** Flash ArduPilot, Betaflight, PX4, or iNav onto the FC from the browser. The STM32 boards (ArduPilot, Betaflight, iNav) flash over WebUSB DFU; PX4 flashes through its serial bootloader over WebSerial.
* **Companion computer agents.** Install the ADOS Drone Agent (air-side) or ADOS Ground Agent (ground-side) onto your SBC. The Flash Tool surfaces a `curl` install command for your board, which you paste over SSH.

It is the same panel for both. Pick your stack, pick the board, and the Flash Tool shows the right flow.

## Choosing your stack

When you open the Flash Tool, the first selector picks the stack:

| Stack             | Where it runs                    | Flow                 |
| ----------------- | -------------------------------- | -------------------- |
| ArduPilot         | Flight controller (STM32)        | WebUSB DFU           |
| Betaflight        | Flight controller (STM32)        | WebUSB DFU           |
| PX4               | Flight controller (STM32)        | WebSerial bootloader |
| iNav              | Flight controller (STM32)        | WebUSB DFU           |
| ADOS Drone Agent  | Companion computer (air-side)    | Install command      |
| ADOS Ground Agent | Companion computer (ground-side) | Install command      |

For flight controller firmware, see [Firmware Flashing](/mission-control/firmware-flashing). The rest of this page covers the companion-agent install flow.

## Install command flow

The companion agents install on a board that already runs a stock vendor OS (Raspberry Pi OS, Radxa OS, Ubuntu, JetPack, and similar). The Flash Tool surfaces a `curl ... | sudo bash` install command pre-filled for your board. SSH into the board and paste it. The install script handles the rest.

<Steps>
  <Step title="Pick the board">
    In the Flash Tool, pick **ADOS Drone Agent** or **ADOS Ground Agent** and select your board (Pi 4B, Pi Zero 2 W, Radxa CM3, CM4, Rock 5C Lite, Cubie A7Z, and similar).
  </Step>

  <Step title="Copy the install command">
    The Flash Tool shows a single command pre-filled for your selected board. Click **Copy**.
  </Step>

  <Step title="Paste over SSH">
    SSH into the board and paste the command. The install script installs Python, dependencies, the agent itself, and the systemd services. It detects the board profile, picks the right tier, and starts the agent.
  </Step>

  <Step title="Watch the installer output">
    The script logs its progress. On a fast network and a Class 10 SD card, expect 3 to 10 minutes.
  </Step>

  <Step title="Confirm the agent is up">
    After the script exits, run `ados status` on the board. You should see services in the `active (running)` state.
  </Step>
</Steps>

The install command runs on the board over SSH, so any browser that displays Mission Control will show you the command. A Chromium-family browser is only needed for the flight controller firmware flow, which uses WebUSB and WebSerial.

## After install: pairing

Once the agent is running, the board joins your fleet through the same pairing flow. The default and primary path is local, over the LAN.

<Steps>
  <Step title="Open the setup webapp">
    Open `http://<board-ip>:8080` in a browser, or join the board's `ados-setup-<id>` Wi-Fi network and follow the captive portal. The setup webapp walks you through identity, MAVLink, video, network, and Mission Control.
  </Step>

  <Step title="Add the node in Mission Control">
    In Mission Control's Fleet view, use **Add a Node** and enter the board's hostname or IP. Mission Control pairs with the agent directly over the LAN. Cloud relay is a secondary, opt-in path for remote access.
  </Step>

  <Step title="Confirm the drone is live">
    The board shows up in Fleet view. Telemetry, video, and configuration are now available.
  </Step>
</Steps>

For the full pairing walkthrough, see [Pairing](/drone-agent/pairing) or, for ground-side nodes, [Setup and Pairing](/ground-agent/setup-and-pairing).

## Troubleshooting

<AccordionGroup>
  <Accordion title="The install command fails on the board">
    Check that the board has internet access (`ping 1.1.1.1`). The install script downloads Python packages and any kernel-side modules. If your board is behind a corporate proxy, configure `http_proxy` and `https_proxy` before pasting the command. The full troubleshooting list is in [Drone Agent troubleshooting](/drone-agent/troubleshooting).
  </Accordion>

  <Accordion title="The board does not show up in Fleet view">
    Confirm the agent is running with `ados status` on the board. Then use **Add a Node** with the board's hostname or IP. Mission Control resolves `.local` names over mDNS server-side. If you are on a different network, the LAN path will not reach the board.
  </Accordion>

  <Accordion title="The captive portal does not load">
    Some phones cache an old captive portal. Forget the `ados-setup-<id>` network and rejoin. On Android, toggling Wi-Fi off and on usually fixes it. On iOS, open `http://192.168.4.1` directly. If you still cannot reach the portal, the board may not have started its AP yet. Wait 30 seconds after the LED indicates boot complete.
  </Accordion>
</AccordionGroup>

## What's next

<CardGroup cols={2}>
  <Card title="Install paths" icon="route" href="/getting-started/install-paths">
    Decision tree for picking the right flow for your hardware.
  </Card>

  <Card title="Drone Agent installation" icon="download" href="/drone-agent/installation">
    Canonical curl install for stock-OS boards.
  </Card>

  <Card title="Supported hardware" icon="microchip" href="/drone-agent/supported-hardware">
    Boards and companion computers the agent runs on.
  </Card>
</CardGroup>
