ANDROID GCSIn Development

A ground station that fits in a hand.

A native Kotlin and Compose app, not a wrapped web page. It reaches a node over the ground station's WiFi access point, or takes the radio dongle and the flight-controller cable directly on the tablet, which is something a browser cannot do at all.
In Development

The app is real and it flies: 143 Kotlin source files, video, flight control, mission upload and calibration wizards. What does not exist yet is a way for you to get it without a toolchain. There is no signed release, no Play Store listing and no F-Droid manifest, so the honest install path today is a source build.

13
Screens
4
Ways to connect
0.1.6
Version

INSTALL

Source build, and we are not going to pretend otherwise

Continuous integration builds a debug APK on every push and keeps it for two weeks. That is an artifact for contributors, not a distribution, so this page does not offer you a download button.

shell
$git clone https://github.com/altnautica/ADOSAndroidGCS
cd ADOSAndroidGCS
./gradlew assembleDebug
adb install app/build/outputs/apk/debug/app-debug.apk
Build
Package
com.altnautica.gcs
Version
0.1.6
Minimum Android
10 (API 29)
Architecture
arm64-v8a
Toolchain
JDK 17, SDK 35
License
GPL-3.0-only

WHAT IT DOES

Thirteen screens, built for one aircraft at a time

This is a pilot's app. It is deliberately single-node: one base URL, one vehicle, everything on the glass.

Fly

Live video with a HUD, arm and disarm, mode selection, takeoff, land and return to launch, a telemetry dashboard, a gimbal joystick and gyro control, camera switching and recording, plus a gamepad overlay and voice commands with a confirmation step.

Plan

A mission planner with a waypoint editor and survey configuration, mission upload over MAVLink, a geofence editor with upload, and follow-me.

Configure

The full flight-controller parameter list with an editor sheet, and accelerometer, compass and level calibration wizards on the tablet.

Ground station

A panel for the ground node: signal meter, packet-loss graph, diversity-receive statistics, and the radio channel, transmit power and FEC settings.

Log

Flight history from a local database, per-flight detail, and a telemetry log written to the device with microsecond timestamps so a flight can be reviewed with the network down.

Agriculture

A spray planning suite with its own mission generator, for the one vertical where a tablet in a field is the whole workflow.

CONNECTING

Four ways to reach the aircraft

The app looks for a node over mDNS with a three-second timeout and falls back to the access point address, so joining the ground station's WiFi and opening the app is usually the whole pairing flow.

Transports
Discovery
mDNS, _ados._tcp
Control
REST over the node's HTTP API
Telemetry
raw MAVLink over WebSocket
Ground station AP
SSID prefix ADOS-GS-
Direct radio
USB WiFi dongle, on-device
Direct serial
USB to flight controller

Pairing itself is a probe for the node's pairing info followed by a claim posting the local operator id; the credential is stored on the device and injected on later requests. Unpairing forgets the local key. The two direct paths are the interesting ones: the app bundles the radio driver and speaks to a USB WiFi dongle on the tablet, and it will take a USB serial cable straight to a flight controller with no node in the middle.

PARITY

Against the browser ground station

Neither one is a subset of the other. The tablet wins on direct hardware reach; the browser wins on everything fleet-shaped.

Live video and HUD

Android
Mission Control

Flight control and modes

Android
Mission Control

Mission and geofence upload

Android
Mission Control

Parameter editing and calibration

Android
Mission Control

Radio link stats and settings

Android
Mission Control

USB radio dongle on the device

Android
Mission Control

USB serial to the flight controller

Android
Mission Control

On-device telemetry log

Android
Mission Control

Multi-node fleet console

Android
Mission Control

Extension panels

Android
Mission Control

Configuration panel library

Androidparameters only
Mission Control78 panels

Log and audit queries

Android
Mission Control

KNOWN GAPS

What is not there yet

No signed release

The release build type enables minification but declares no signing configuration, so a release build comes out unsigned. Until that changes there is nothing to publish to a store.

Offline map tiles download but do not render

There is a working tile downloader with a 500 MB cap and oldest-pack eviction, and nothing reads the packs back: both map views use a live tile source. Treat offline maps as unfinished rather than shipped.

Fleet telemetry is not MQTT yet

The cloud telemetry client opens a plain WebSocket and sends a JSON subscribe frame. It is not speaking the MQTT protocol, despite the dependency being present, so do not plan an integration around that.

No extension surface

Extensions are a Mission Control and drone-agent concept. The Android app has no plugin host, so an extension's panel does not appear here.

Get Early Access