
I’m Ajay from Bangalore. I kept running into the same frustration with GCS tools. Changing a flight mode, checking RC channels, calibrating a compass. The existing tools obviously work, decades of development behind them, but the UIs were fighting me more than helping. So I started building my own.
Altnautica Command is an open-source ground control station, GPLv3. Use it in the browser or grab the desktop app (Mac, Windows, Linux). Plug in your FC over USB and WebSerial connects it directly.
What’s New
This post is kept up to date. Newest changes first.
-
Country selector removed. No longer forced on setup, units default to metric, changeable in settings
-
Interactive CLI added.
npm run clifor guided setup, demo mode, SITL with 7 drone presets, diagnostics -
Post cleaned up and reorganized
What it does
Browser FC connection. WebSerial API, no drivers, no middleware. Chrome or Edge on any OS.
Gamepad and flight stick controls. Fly with a gamepad, HOTAS, flight stick, or keyboard. 4-axis analog at 50Hz sending MANUAL_CONTROL messages. Deadzone, expo curves, full axis mapping. I wanted to grab a controller and fly from the browser and nothing else did that, so I built it.
Flash firmware from the browser. Select your board, pick ArduPilot firmware, flash over WebSerial. No STM32CubeProgrammer, no Zadig.
25 config panels. Full parameter tables. Calibration for accel, compass, gyro, level, ESC, RC. Flight modes, motor outputs, PID tuning, failsafe, power monitoring, serial ports, OSD layout editor, geofencing. Timer group conflict detection that shows which outputs share STM32 hardware timers. 9 board profiles right now (SpeedyBee F405 Wing/V3/V4, Matek H743, Pixhawk 4/6C/6X). Happy to add more, just tell me what you’re flying.
Mission planning. Drag and drop waypoints with per-waypoint altitude, speed, and actions. Geofence editor. Mission library for save/load. Upload and download with per-item ACK tracking.
ArduPilot fully supported. PX4 partial. Betaflight and iNav planned.
Interactive CLI

If you clone the repo, npm run cli gives you an interactive menu. No flags to remember.
-
Dev server on port 4000 with hot reload
-
Demo mode, 1 to 10 simulated drones with full mock telemetry
-
SITL with real ArduPilot physics. 7 presets: 5" FPV freestyle, 7" long range, 10" hex, cinewhoop, X-class racer, tiny whoop, and my 7" reference build. Configurable drone count, sim speed, GPS location, wind
-
Build and deploy in one command
-
Setup wizard that checks Node, installs deps, creates env config
-
System diagnostics
Each command works standalone too: npm run cli dev, npm run cli demo, npm run cli sitl.
Try it now
Demo mode runs 5 simulated drones with realistic telemetry. Visit the live app or clone and run npm run demo. You can poke around every panel and plan missions without plugging anything in.
Rough edges
The 3D view works but it’s not pretty. My time goes into reliable MAVLink, correct parameter handling, and safe FC configuration. The visuals will get there eventually.
It’s a young project. Bugs exist. That’s why I’m here. I want feedback from people who actually fly and configure drones daily.
Screenshots






Links
-
Live app: https://command.altnautica.com
-
Discord: altnautica
Built on ArduPilot and MAVLink. Respect to everyone maintaining those projects.
GPLv3. PRs welcome. If something breaks, open an issue or come to Discord.
What panels are you missing? What bugs you about your current GCS? If you’ve got hardware to test with, I’d really like to know what works and what breaks.
About this post and AI. I use AI to help write and update this post. My process: I talk through what I want to say, then use AI to clean it up into readable English. I’m not a native speaker and I’m one person building this. I’d rather spend my hours writing code than editing forum posts. The ideas, architecture, and code direction are all mine. AI helps with the words. I also use it to track feature requests from this thread and keep the changelog updated, because maintaining a long post manually every week is not a great use of my time. I still reply to comments myself most of the time.








