GET STARTED

Four ways in. Pick one.

Nothing here is gated, trialled or licensed. The ground control station runs in a browser tab you can open right now. The agents install with one command. Everything is GPLv3 and the source is the same source we run.

1 / NO INSTALL

Mission Control in a browser tab

The ground control station is a web app. Open it, plug a flight controller into USB, and it talks MAVLink or MSP over WebSerial. No account is required to fly a local vehicle.

Hosted
URL
command.altnautica.com
Version
0.58.0
Install
none
License
GPL-3.0-only

Prefer to run it yourself? The same app self-hosts with one guided deployer, together with a self-hosted Convex backend, MQTT and the video relay. See the self-hosting guide.

shell
$# Stand up the whole cloud stack on your own box:
curl -sSL https://raw.githubusercontent.com/altnautica/ADOSMissionControl/main/tools/deploy/deploy.sh | sh

2 / THE AGENT

One command on the companion board

One installer serves every node role. It fetches a prebuilt ARM64 binary from GitHub Releases, verifies its SHA-256 before executing anything, installs the services, and reboots into a paired node.

shell
$# On the drone (default profile):
curl -sSL https://raw.githubusercontent.com/altnautica/ADOSDroneAgent/main/scripts/install.sh | sudo bash

# On the ground station:
curl -sSL https://raw.githubusercontent.com/altnautica/ADOSDroneAgent/main/scripts/install.sh \
  | sudo bash -s -- --profile ground-station

# Upgrade an existing node in place:
curl -sSL https://raw.githubusercontent.com/altnautica/ADOSDroneAgent/main/scripts/install.sh \
  | sudo bash -s -- --upgrade

Four profiles, one installer

--profile takes drone, ground-station, workstation or compute. Omit it and a fresh box installs the drone profile. A box that already has a profile keeps it across an upgrade.

On a Mac it builds from source

There is no prebuilt macOS binary, so the same script detects Darwin and compiles the workstation or compute profile with cargo into per-user launch agents. Run it without sudo; it refuses to run as root on macOS. Needs the Rust toolchain and git.

What a Linux node needs
CPU architecture
ARM64 (aarch64)
Operating system
Debian-family Linux, systemd
Privileges
root (sudo)
Python
3.11+, or provisioned

ARM64 is not a preference, it is the only Linux target the installer accepts. An x86_64 Linux box is refused with a clear error rather than half-installed. If no suitable Python is on the box the installer provisions a private CPython 3.11 instead of failing.

3 / DESKTOP

Mission Control as a desktop app

The same GCS wrapped for the desktop, built from the tagged release. Useful when you want USB serial and a local window instead of a browser tab.

Artifacts per release tag
macOS (Apple silicon)
.dmg, arm64
macOS (Intel)
.dmg, x64
Windows
Setup .exe, x64
Linux
.AppImage, x86_64

The macOS builds are not code-signed or notarized, so Gatekeeper will ask you to allow them on first launch and updates are a manual download. Grab the assets from the release page.

4 / ANDROID

Build the Android ground station

The native Android GCS is real code you can build and fly today, but there is no signed release and no store listing yet, so the only honest install path is a source build.

shell
$git clone https://github.com/altnautica/ADOSAndroidGCS
cd ADOSAndroidGCS
./gradlew assembleDebug
# app/build/outputs/apk/debug/app-debug.apk

Needs JDK 17 and Android SDK 35. The app targets ARM64 devices on Android 10 or newer. More on what it does, and what it does not do yet, on the Android ground station page.

VERIFY

Check the install actually worked

The agent ships its own diagnostics. Run these on the node over SSH or on its console before you take anything to a field.

shell
$ados                 # the terminal status page: setup URL, link, video, services
ados version         # the installed version, even when the service is down
ados status --json   # the same status as machine-readable JSON
ados diag video      # a per-hop verdict on the video pipeline
ados diag link       # the radio link: deaf, mis-keyed, jammed or healthy
ados logs tail       # follow the on-box Black Box log store

A healthy first boot shows a reachable setup URL, a flight controller with a live heartbeat, and the services running. If video is the problem, ados diag video names the hop that broke rather than making you read logs. The Black Box store survives a reboot and is readable with the network down.

FOR CONTRIBUTORS

Install binaries you built yourself

Working on the agent? The installer will take your local build instead of the release.

shell
$sudo ados-installer --upgrade --profile drone --channel edge --artifacts /tmp/stage

Each file in the directory is named for its service and needs a matching .sha256 beside it; any service the directory does not carry still comes from the release. It requires the edge channel and is refused on stable, because a locally built binary has no signature the stable channel can verify. Linux only.

Get Early Access