A modern ground control station built for pilots who want more from their flight data.
Plan missions. Fly with confidence. Record everything. Analyse it all.
Website · Features · Docs · Download
Helios is a free, open-source ground control station for drones and unmanned vehicles. It connects to your flight controller over USB, Wi-Fi, or telemetry radio and gives you everything you need in one place: live flight instruments, mission planning, video streaming, airspace awareness, and post-flight analytics that go far beyond what other GCS software offers.
What makes Helios different is how it treats your flight data. Every flight is automatically recorded into a queryable database -- not just a log file you'll never open. After you land, browse past flights, compare performance across sessions, chart any telemetry parameter, or run custom queries. It's a flight recorder that you'll actually use.
Helios works with the hardware you already own. ArduPilot, PX4, Betaflight, iNav -- multirotor, fixed-wing, VTOL, rover, or submarine. Connect over UDP, TCP, or USB serial and the protocol is detected automatically. No configuration wizards, no firmware-specific builds. One app for your entire fleet.
- Fly -- Real-time PFD with attitude, speed, and altitude tapes. Live map with vehicle tracking, home marker, and mission path overlay. Configurable telemetry tiles you can drag and rearrange. One-tap arm, disarm, RTL, land, and mode switching.
- Plan -- Visual mission editor with drag-and-drop waypoints and DO_ action commands. Area surveys with automatic lawnmower grid generation. Geofencing, rally points, and KML/GPX import from other tools.
- Record -- Every connected flight is recorded to a local database automatically. No manual start/stop. No cloud uploads. Your data stays on your machine.
- Analyse -- SQL query editor, pre-built analysis templates, interactive charts, flight replay on the map, and Parquet export for external tools. Compare vibration, battery health, or GPS accuracy across dozens of flights in seconds.
- Airspace -- Live no-fly zone and restricted airspace overlays from OpenAIP. Draw custom planning zones. Automatic waypoint conflict detection warns you before upload.
- Video -- RTSP video streaming with picture-in-picture overlay on the Fly view. Hardware-accelerated playback.
- Simulate -- One-click ArduPilot SITL with wind and failure injection. Practice missions, test failsafes, and train new pilots without risk.
- Your data, queryable. Other software gives you a log file. Helios gives you a database. Every flight. Automatically.
- Modern interface. Clean, responsive design. No cluttered toolbars or buried menus. 60fps rendering even at high telemetry rates.
- All platforms. macOS, Windows, Linux, iOS, and Android. Same experience everywhere.
- All flight controllers. ArduPilot, PX4, Betaflight, iNav. MAVLink and MSP. Auto-detected.
- No lock-in. Open source (GPL 3.0). No accounts, no subscriptions, no telemetry phoning home. Free forever.
Helios supports both MAVLink (ArduPilot, PX4, iNav) and MSP (Betaflight, iNav, Cleanflight). Protocol is auto-detected on connect.
| Flight Controller | Protocol | Status |
|---|---|---|
| ArduPilot (Plane, Copter, Rover, Sub) | MAVLink v2 | Full support |
| PX4 | MAVLink v2 | Full support |
| iNav (MAVLink mode) | MAVLink v2 | Full support |
| Betaflight | MSP | Full support |
| iNav (MSP mode) | MSP | Full support |
| Cleanflight | MSP | Full support |
| Feature | MAVLink | MSP | Notes |
|---|---|---|---|
| Live Telemetry | |||
| Attitude (roll, pitch, yaw) | ✅ | ✅ | |
| GPS position & fix | ✅ | ✅ | |
| Altitude (relative to home) | ✅ | ✅ | |
| Altitude (MSL) | ✅ | ✅ | |
| Groundspeed | ✅ | ✅ | |
| Airspeed | ✅ | ❌ | MSP does not expose airspeed sensor data |
| Climb rate | ✅ | ✅ | |
| Battery voltage | ✅ | ✅ | |
| Battery current | ✅ | ✅ | |
| Battery remaining % | ✅ | ✅ | |
| Flight mode | ✅ | ✅ | |
| Armed state | ✅ | ✅ | |
| GPS satellite count | ✅ | ✅ | |
| HDOP (GPS accuracy) | ✅ | ❌ | MSP_RAW_GPS does not include HDOP |
| Vibration (X/Y/Z) | ✅ | ❌ | MSP has no vibration reporting; use Blackbox |
| RSSI | ✅ | ✅ | |
| Status messages / alerts | ✅ | ❌ | No MSP equivalent to STATUSTEXT |
| Status message log overlay | ✅ | ❌ | Scrolling STATUSTEXT feed on Fly View |
| Fly View Controls | |||
| Flight action panel | ✅ | ❌ | ARM/DISARM, mode picker, RTL/LAND/LOITER/AUTO/BRAKE/TAKEOFF |
| Vehicle-type-aware flight modes | ✅ | ❌ | Correct mode names for Copter, Plane, Rover, VTOL |
| Customisable telemetry tiles | ✅ | ✅ | 21 fields; drag-to-reorder, long-press-to-remove |
| Recording & Analytics | |||
| DuckDB flight recording | ✅ | ✅ | MSP uses separate msp_* table prefix |
| Altitude chart | ✅ | ✅ | |
| Speed chart | ✅ | ✅ (GS only) | Groundspeed only for MSP; no airspeed |
| Climb rate chart | ✅ | ✅ | |
| Battery chart | ✅ | ✅ | |
| GPS quality chart | ✅ | ✅ (sats only) | Satellite count only; no HDOP for MSP |
| Attitude chart | ✅ | ✅ | |
| Vibration chart | ✅ | ❌ | Not available via MSP |
| SQL query editor | ✅ | ✅ | MAVLink and MSP tables available in same DB |
| Parquet export | ✅ | ✅ | |
| Predictive maintenance | ✅ | Vibration analysis unavailable without IMU data | |
| Flight Forensics | ✅ | ✅ | Cross-flight DuckDB analytics |
| Setup & Configuration | |||
| Connection (UDP / TCP) | ✅ | ✅ | |
| Connection (Serial / USB) | ✅ | ✅ | macOS, Linux, Windows only -- not available on iOS/Android |
| Protocol auto-detection | ✅ | ✅ | 5 s probe; first valid frame wins |
| Parameter editor | ✅ | ❌ | MSP has no parameter protocol in Helios |
| Sensor calibration | ✅ | ❌ | ArduPilot/PX4 calibration commands only |
| Stream rate control | ✅ | ❌ | Polling rates are fixed in MSP service |
| Mission Planning | |||
| Waypoint upload / download | ✅ | ❌ | Betaflight has no waypoint mission support |
| DO_ action commands (speed, jump, camera, gimbal, gripper) | ✅ | ❌ | Labelled param editor per command type |
| Multi-select + batch altitude / delete | ✅ | ❌ | Long-press → checkbox mode; Ctrl+A |
| KML / GPX import | ✅ | ❌ | Placemark, LineString, wpt, trkpt |
| Polygon area survey | ✅ | ❌ | Tap polygon vertices → lawnmower grid clipped to shape |
| Geofence | ✅ | ❌ | MAVLink fence protocol only |
| Rally points | ✅ | ❌ | MAVLink only |
| Simulate (SITL) | |||
| One-click SITL launch | ✅ | ❌ | macOS/Linux; native binary auto-download; not iOS/Android/Windows |
| Vehicle + airframe picker | ✅ | ❌ | ArduCopter/Plane/Rover/Sub/Heli + variants |
| Predefined start locations | ✅ | ❌ | CMAC, Duxford, SFO Bay, Sydney + custom lat/lon |
| Wind injection | ✅ | ❌ | SIM_WIND_SPD + SIM_WIND_DIR via MAVLink params |
| Failure injection (GPS, compass, battery) | ✅ | ❌ | Live toggle while SITL running |
| Speed multiplier (1×-8×) | ✅ | ❌ | SIM_SPEEDUP param; test long missions fast |
| SITL log viewer | ✅ | ❌ | Live stdout/stderr stream in Setup tab |
| Points of Interest | |||
| POI markers (pin/star/camera/target/home/flag) | ✅ | ✅ | 6 icons × 6 colours; Plan + Fly View |
| POI details panel (name, notes, coords, altitude) | ✅ | ✅ | Tap to view, long-press to edit |
| Orbit mission generator | ✅ | ❌ | Clockwise circle, configurable radius/laps/speed |
| No-Fly Zones & Airspace | |||
| OpenAIP live airspace fetch | ✅ | ✅ | Free API key required; 7-day local cache |
| GeoJSON airspace file import | ✅ | ✅ | OpenAIP v1/v2 + standard GeoJSON |
| User-drawn NFZ overlays | ✅ | ✅ | Local planning overlays, not sent to FC |
| Waypoint conflict detection | ✅ | ✅ | Highlights wps inside restricted zones |
| Diagnostic Panels | |||
| Servo output viewer (CH1-CH16 PWM bar graphs) | ✅ | ❌ | SERVO_OUTPUT_RAW; traffic-light colour coding |
| RC input viewer (CH1-CH18, RSSI, failsafe) | ✅ | ❌ | RC_CHANNELS; per-channel bars + failsafe badge |
| Other | |||
| Dataflash log download | ✅ | ❌ | Use Betaflight Configurator for Blackbox |
| Video streaming (RTSP) | ✅ | ✅ | Transport-independent |
| Dark / light mode | ✅ | ✅ | |
| Offline map tiles | ✅ | ✅ |
| Feature | Description | |
|---|---|---|
| Fly | Real-time flight instruments | PFD, live map, configurable telemetry tiles, flight action panel |
| Plan | Visual mission editor | Drag-and-drop waypoints, area surveys, geofencing, rally points, KML/GPX import |
| Analyse | Post-flight analytics | SQL query editor, flight browser, cross-flight comparison, Parquet export |
| Connect | Any hardware | UDP, TCP, USB serial. Auto-detects MAVLink or MSP on connect |
| Video | Live RTSP streaming | Picture-in-picture with flight data overlay |
| Simulate | One-click SITL | Downloads ArduPilot binaries on demand. No Docker. Wind and failure injection |
| Airspace | No-fly zone overlays | OpenAIP integration, custom NFZ drawing, waypoint conflict detection |
| Record | Every flight, automatically | DuckDB columnar storage. 10-100x faster analytics than SQLite |
See the full feature breakdown at jamesagarside.github.io/helios/features.
Pre-built binaries for macOS, Windows, and Linux are available on the Releases page. iOS alpha builds are on TestFlight.
Requires Flutter SDK 3.38+ and platform toolchain (Xcode for macOS/iOS, Visual Studio for Windows, clang/cmake for Linux).
git clone https://github.com/jamesagarside/helios.git
cd helios
flutter pub get
flutter run -d macos # or linux, windows, <device_id>- Open Setup (press
4) - Choose transport: UDP (default
0.0.0.0:14550), TCP, or Serial - Click Connect
- Switch to Fly (press
1) to see live telemetry
Telemetry simulator -- sends synthetic ArduPlane data to localhost:
dart run scripts/sim_telemetry.dartBuilt-in SITL -- full ArduPilot simulation from the Setup tab. Pick a vehicle, airframe, and start location. Helios downloads the binary on first use. Available on macOS and Linux.
Every flight is automatically recorded to a DuckDB file. Switch to the Data tab to browse past flights, run SQL queries, chart any parameter, or export to Parquet. Think of it as a flight recorder that speaks SQL.
lib/
core/ Business logic (MAVLink, telemetry, mission, airspace)
features/ UI views (fly, plan, analyse, setup)
shared/ Models, providers, theme, widgets
packages/
dart_mavlink/ MAVLink v2 parser (pure Dart)
flutter test # 558 tests
dart analyze lib/ # zero warningsContributions are welcome. Please open an issue first to discuss what you'd like to change. See the docs for architecture details.
Part of the Argus Platform
Helios sees from the sky. Argus sees from the ground.
