Alpha

Under active development. Breaking changes expected. APIs, installers, and UI may shift between releases.

GROUND AGENTAvailable

A ground station for any drone.

The Altnautica ground agent is an open-source Linux ground station for any drone. A small Linux box receives long-range WFB-ng video and telemetry from the drone and serves it to any laptop, phone, HDMI monitor, or cloud observer. Add a second node and they self-organize into a mesh that combines fragments and heals around drops.
Available

Usable today. Early access — some pieces run behind a feature flag and APIs may shift between releases.

<70ms
Glass to glass over HDMI
4
Client connect paths
5
Uplink options
3
Mesh node roles

THE OTHER HALF OF THE RADIO PAIR

The ground side of ADOS.

The drone agent flies. The ground agent receives. Same codebase, different profile, picked at boot by a hardware fingerprint.

A ground station is more than a video receiver. It is the bridge between a flying drone on a closed RF link and the people who need to see, control, archive, or relay what it sees. A pilot in the field wants a screen and a stick, not a laptop. An engineer at the bench wants a USB cable and a browser tab. A fleet operator wants telemetry in the cloud. The ground agent does all of that from one Linux box, with one binary, and one update path.

The radio card is the same RTL8812EU chip the drone uses on the air side. WFB-ng handles the long link. MediaMTX serves WebRTC to browsers. systemd holds the services together. The same install command that turns a fresh board into a flying drone turns a fresh board into a ground station, because the fingerprint check at boot picks the right profile.

clients
HDMI kiosk, WiFi AP, USB-C tether, native Android
services
WFB-ng receive, MediaMTX WebRTC, telemetry relay
mesh
batman-adv carrier, distributed receive, FEC combine
radio
RTL8812EU over WFB-ng, the same chip the drone runs

CLIENTS

Four ways to connect.

Every node serves all four at once. Pilot-in-command arbitration decides who holds the sticks.

HDMI kiosk

A monitor and a gamepad, no laptop.

The node runs a full-screen browser on its HDMI output and takes stick input from any USB or Bluetooth gamepad. Power on, plug in a display, fly.

WiFi access point

Any laptop or phone, any browser.

The node broadcasts its own access point. Open Mission Control at the local address. Multiple observers can watch the same stream at once.

USB-C tether

A hardwired link for Mac and Windows.

The operating system sees a USB Ethernet adapter. No drivers, no chipset matrix, no WiFi congestion. The lowest-friction path for a bench engineer.

Native Android

The ADOS app, built for a phone.

The phone joins the WiFi access point or tethers over USB-C. Same telemetry and video surface as the browser, tuned for a hand-held screen.

DISTRIBUTED RECEIVE

One drone. Multiple ground nodes. One stream.

One node covers a clean line of sight. Two nodes cover a ridge. Three nodes cover a corridor. Fragments combine at the receiver and the mesh routes around any node that drops.

Coverage shape
drone (air side)
WFB-ng transmit, video encode
obstruction splits the line of sight
relayridge side
receiverFEC combine, mDNS
relayroad side
Two relays catch the drone on opposite sides of the obstruction. The receiver runs FEC on the combined stream and serves a clean feed to every client.

SINGLE CODEBASE

Same binary as the drone.

Air side and ground side are profiles of the same agent. One install command, one version number, one release cadence.

  • A hardware fingerprint at boot picks the air or ground profile.
  • The same install command runs on every board. No separate installer to maintain.
  • The same over-the-air update path serves the drone and the ground station.
  • The same cloud relay, MQTT topics, and pairing protocol on both halves.
  • The same REST surface, WebSocket telemetry, and log format.
  • A fix lands once and both halves get it on the next release.
Boot decision
fresh boardinstall command runs
hardware fingerprint scan
flight controller on USB?
profile: drone
launch air-side services
video encodeMAVLink router
radio, OLED, buttons, no FC?
profile: ground-station
launch ground services
WFB-ng receiveMediaMTXphysical UI

HARDWARE TIERS

Three flavors. One agent.

Start at the bench, move to Lite when you ship, step up to Pro when you need diversity receive. The agent binary is the same on every tier.

Reference board

BenchRaspberry Pi 4B
LiteRadxa CM3 (RK3566)
ProRadxa CM4 (RK3588S2)

Radio card

Bench1x RTL8812EU
Lite1x RTL8812EU
Pro2x RTL8812EU

Diversity receive

Bench
Lite
Pro

OLED and buttons

Bench
Lite
Pro

HDMI out

Bench
Lite
Pro

Typical use

BenchBench, first build
LiteSingle-site field
ProLong-range mesh hubs

WHERE IT FITS

The path from drone to operator.

Data path
drone (air side)
ADOS drone agentWFB-ng transmit, MAVLink, video encode
WFB-ng over RTL8812EU
ground nodethis product
ADOS agent, ground-station profileWFB-ng receive, MediaMTX, physical UI, mesh
HDMIpilot display
WiFi APbrowsers on the LAN
USB-C tetherMac, Windows
cloud observeroptional
Same codebase as the drone, picked by a hardware fingerprint at boot.

FAQ

Frequently asked questions

Is there an open-source ground control station?

Yes. Altnautica Mission Control is an open-source, browser-based ground control station for any drone. It runs in the browser with no install and covers fleet telemetry, mission planning, a 3D simulator, deep flight-controller configuration, and a game-like cockpit, all under GPLv3.

Does Altnautica need the internet or the cloud?

No. The platform is local-first. Mission Control reaches a drone directly over the local network, and the drone-to-ground link is a local radio. Cloud fleet management through MeshNet is an optional layer for remote access and analytics.

Which flight-controller firmware does Altnautica support?

Altnautica supports ArduPilot and PX4 fully over MAVLink, and Betaflight and iNav over MSP. The same Mission Control ground station configures and flies all four.

Receive long-range video. Serve any client. Heal around drops.

One install command on a Linux SBC. Open source under GPLv3.

Read the docs
Get Early Access