A modern, cross-platform ground control station for ArduPilot, Betaflight, and iNav.
ALPHA SOFTWARE - ArduDeck is under active development. Features may be incomplete, unstable, or change without notice. Use at your own risk and always have a backup configuration tool available. We appreciate early testers - join our Discord for support and updates, or report bugs to help improve the project!
ArduDeck is a next-generation ground control station built with Electron, React, and TypeScript. It provides real-time telemetry, parameter management, PID tuning, and mission planning for drones and vehicles running ArduPilot, Betaflight, or iNav firmware.
One app for all your flight controllers - Cross-platform (Windows, macOS, Linux), modern UI, supports both MAVLink and MSP protocols.
- Features
- Screenshots
- Download & Install
- Development (Contributors Only)
- Supported Vehicles
- Veteran Board Support
- Bug Reporting
- Roadmap
- Contributing
- Sponsors
- Acknowledgments
- Attitude Indicator - Roll, pitch, yaw with compass heading
- Flight Data - Altitude (MSL/AGL), airspeed, ground speed, climb rate
- GPS Status - Fix type, satellite count, HDOP, coordinates
- Battery Monitor - Voltage, current, remaining capacity with visual indicator
- Flight Mode - Armed/disarmed status, current mode display
- Live Vehicle Tracking - Real-time position with heading indicator
- Flight Trail - Historical path visualization
- Multiple Layers - Street, Satellite, Google Sat, Hybrid, Terrain, Dark mode
- Home Position - Distance and bearing to home
- Overlays - Compass, attitude indicator, stats
- Weather Radar - RainViewer weather overlay with dynamic color schemes
- Airspace Zones - Colored CTR, restricted, danger, and TMA zone polygons with legend
- Aviation Charts - OpenAIP tile layer with airports, navaids, and zoom-adaptive aviation symbology
- Terrain Elevation - Color-coded height overlay with auto-range and relative-to-craft modes
- Offline Maps - Download map regions for offline use with tile caching
- Companion Board Store - Browse pre-configured templates for ESP32, Raspberry Pi, Jetson, and Orange Pi
- ESP32 Flashing - Direct USB flash with auto-downloaded esptool (DroneBridge, MAVLink bridge)
- DroneBridge Integration - Auto-detect DroneBridge ESP32 on network, view status, configure WiFi/serial settings
- Agent Dashboard - Real-time CPU/RAM/temp metrics, terminal access, service management for companion computers
- Dockview Layouts - Customizable panel layouts with presets (Overview, Debug, Manage)
- Encrypted API Keys - Secure storage for OpenAIP and other service credentials
- IDE-Style Panels - Drag & drop layout customization
- Save/Load Layouts - Multiple named layout profiles
- Resizable Panels - Flexible workspace arrangement
- Interactive Map Editing - Click to add waypoints, drag to reposition
- Mission Groups - Every waypoint lives in a named, colored group (manual or survey) with per-group distance, time, and GSD, recolor, show/hide, and per-group upload or save
- Waypoint Table - Beginner-friendly with human-readable summaries
- Altitude Profile - Terrain-aware visualization with drag-to-edit
- Terrain Data - Real elevation data from Open-Meteo (Copernicus DEM)
- Collision Detection - Visual warnings when the path intersects terrain, with one-click Auto Adjust that raises waypoints and inserts intermediates to clear ridgelines
- Spline Waypoints - Smooth curved flight paths with Catmull-Rom interpolation
- Survey Grid - Automated area patterns (Grid, Crosshatch, Circular) with configurable camera, spacing, overlap, and angle
- GSD-First Planning - Plan by ground sample distance instead of altitude, with live photo, battery, and data estimates
- Crosshatch at Two Heights - Optional second-pass altitude offset for better 3D reconstruction
- Corridor Surveys - Linear surveys along a centerline for roads, rail, power lines, and pipelines, with plane racetrack turns or copter on-the-spot turns
- Battery Sortie Split - Split a long survey into battery-sized flights, each independently uploadable
- GIS Import - Import survey boundaries from KML, KMZ, and GeoJSON, one group per polygon with no-fly holes
- 3D Mission View - Three-dimensional visualization of mission waypoints and flight path
- Command Support - Takeoff, Waypoint, Loiter, Land, RTL, Speed changes
- File Operations - Save to Library, or export .waypoints (QGC WPL) and QGC .plan formats
- Undo and Autosave - Full undo/redo across edits, with continuous autosave and crash recovery
- Upload/Download - Full MAVLink mission protocol support
- Full Parameter List - View all 800+ ArduPilot parameters
- Search & Filter - Quick parameter lookup by name or group
- Inline Editing - Click to edit, Enter to save, Escape to cancel
- Real-Time Validation - Range, enum, and increment checks with error tooltips
- Modified Tracking - Visual indicator with revert option
- Write to Flash - Persist changes to EEPROM with confirmation dialog
- Save/Load Files - Export and import .param files
- Auto-Load Metadata - Descriptions from ArduPilot XML + 600 fallback descriptions
- MAVLink v1/v2 Auto-Detection - Compatible with legacy and modern flight controllers
- Vehicle Profiles - Create and manage multiple vehicle configurations
- All Vehicle Types - Copter, Plane, VTOL, Rover, Boat, Submarine
- Type-Specific Properties - Frame size, wingspan, hull type, thruster count, etc.
- Performance Estimates - Flight time, range, cruise speed based on specs
- Live Weather - GPS-based weather conditions from Open-Meteo API
- Maritime Data - Wave height, swell info for boats/subs
- Persistent Storage - Profiles saved to disk, survive app restarts
- Auto-Detection - Automatically detects MSP protocol (Betaflight/iNav) vs MAVLink
- PID Tuning - Beginner-friendly presets (Beginner, Freestyle, Racing, Cinematic)
- Rate Curves - Visual rate curve editor with presets
- Modes Wizard - Step-by-step mode configuration with live RC feedback
- Servo Wizard - Fixed-wing servo setup with aircraft presets (Traditional, Flying Wing, V-Tail, Delta)
- Platform Type Change - Convert multirotor to airplane with MSP2 + CLI fallback for iNav 2.0.0
- VTX Configuration - Video transmitter band, channel, and power settings
- Filter Tuning - Gyro and D-term filter configuration
- Custom Profiles - Save/load custom PID tunes and rate profiles
- PID Tuning - ArduPilot PID controller tuning with presets, including a VTOL/Fixed-wing controller switch on QuadPlanes to tune each control-law set separately
- Rate Profiles - Rate curve editor with visualization
- Flight Modes - 6-mode channel assignment for ArduPilot
- Safety & Failsafe - Failsafe actions, geofence behavior, RTL settings
- MAVLink Signing - Passphrase-based packet signing to prevent unauthorized access to your vehicle
- Battery Monitor - Voltage/current sensor calibration
- Sensor Status - Compass, GPS, barometer, and IMU health
- Rover/Boat Tuning - Dedicated tuning parameters for ground and marine vehicles
- One-Click Configuration - PIDs, rates, modes, mixers, failsafe in one flow
- Preset Library - Common setups for popular frame types
- Live TX Verification - Real-time transmitter channel check before applying
- Config Review - Preview all changes before writing to board
- Legacy Board Support - Works with both modern MSP and legacy CLI boards
- DataFlash Log Reader - Parse ArduPilot .bin blackbox logs directly in the app
- Health Check Reports - Automated diagnostics with pass/warn/fail checks for vibration, GPS, EKF, power, and more
- Log Explorer - Interactive time-series graphs with field picker for any logged parameter
- 3D Flight Path - Three-dimensional replay of the flight trajectory
- AI-Assisted Analysis - Chat with your flight log using Claude, GPT, or Gemini to diagnose issues, get tuning recommendations, and apply parameter changes directly
- Accelerometer Calibration - Level calibration with position diagrams
- Compass Calibration - Live progress tracking with fitness indicators
- Status Detection - Arming flag-based sensor status detection
- Step-by-Step Wizard - Countdown timers, position guides, and result cards
- Full Terminal Emulation - xterm.js with ANSI color support
- Command Autocomplete - Tab completion for commands and parameters
- Parameter Suggestions - Parsed from
dumpoutput for quick access - Command History - Up/down arrow navigation through previous commands
- Legacy Board Support - Full configuration for F3-era boards via CLI
- Live Preview - See exactly what appears in FPV goggles
- Demo Mode - Adjust telemetry values with sliders for font development
- Live Mode - Real-time display from connected flight controller
- MCM Font Support - Full MAX7456/AT7456E font parsing
- 8 Bundled Fonts - Default, Bold, Clarity, Impact, Vision, and more
- PAL/NTSC - Support for both video standards (30x16 / 30x13 grids)
- 15+ OSD Elements - Altitude, speed, battery, GPS, artificial horizon, CCRP indicator, and more
- CCRP Indicator - Continuously Computed Release Point for payload drops (shows predicted impact point)
- Element Toggle - Enable/disable individual OSD elements
- Visual Scripting - Build ArduPilot Lua scripts by connecting nodes, no coding required
- 50+ Nodes - Sensors, logic, math, actions, timing, variables, and flow control
- Live Lua Preview - See compiled output in real-time as you build
- Templates - Pre-built graphs for common tasks (battery alerts, geofencing, camera triggers)
- Export to .lua - One-click compilation to ArduPilot-compatible Lua scripts
- In-App Documentation - Full reference docs viewable inside the editor
- Lua Graph Editor Docs - Also available on the GitHub wiki
- Multi-Protocol Detection - Auto-detect boards via MAVLink, MSP, or STM32 bootloader
- USB VID/PID Recognition - 30+ known boards identified by USB IDs
- ArduPilot Support - Flash ArduCopter, ArduPlane, ArduRover, ArduSub
- Betaflight/iNav Support - Flash Betaflight and iNav firmware with curated version lists
- F3 Legacy Support - SPRacing F3 (iNav 2.0.0), FrSky F3 (iNav 2.6.1), Betaflight 3.5.7
- Boot Pad Wizard - Guided entry for boards requiring manual bootloader activation
- STM32 Serial Bootloader - Native USART flashing (no external tools needed)
- Progress Tracking - Real-time erase/write/verify progress with detailed logging
- Firmware Caching - Downloaded firmware cached for fast re-flashing
- Serial (USB) - Direct connection via COM/ttyUSB ports
- TCP Client - Network connection to SITL or telemetry bridges
- UDP - Listen mode for MAVProxy and other forwarders
- Auto-Detect - Scan ports for MAVLink devices
Now Available - ArduPilot SITL runs natively in ArduDeck on macOS, Windows, and Linux. Pick a vehicle type (Copter, Plane, Rover, Sub) and frame, choose a release track, and ArduDeck downloads and launches the real ArduPilot firmware, then connects automatically. Virtual RC control, custom frame physics, and an optional FlightGear bridge are included.
What is this? SITL (Software In The Loop) lets you run real flight controller firmware on your computer - no drone required! Perfect for:
- Learning - Practice mission planning and configuration without risking a crash
- Testing - Verify your settings work before uploading to real hardware
- Development - Test new features without leaving your desk
How it works:
- ArduDeck downloads and runs the actual ArduPilot, iNav, or Betaflight firmware as a desktop application
- The simulated flight controller behaves exactly like real hardware
- You can configure PIDs, modes, missions - everything works!
- Optionally connect to FlightGear (free flight simulator) to see your virtual aircraft fly
FlightGear Integration - If you have FlightGear installed, ArduDeck automatically detects it and can bridge the simulator to your SITL session. Watch your configured aircraft respond to your mission in a realistic 3D environment!
TL;DR: Test your drone configuration on your computer before flying for real. Break things in simulation, not in the field!
Visual scripting for ArduPilot Lua - build scripts by connecting nodes, no coding required
Pre-built Graph Templates |
50+ Nodes Across 7 Categories |
Node Properties & Port Inspector |
Script Settings & Run Interval |
Mission planning with grouped surveys, GSD-first planning, and a terrain-aware altitude profile
Colored Mission Groups with Per-Block Stats |
GSD-First Survey Planning |
3D Mission Visualization |
Survey Grid Pattern |
Survey Crosshatch Pattern |
Survey Circular Pattern |
Mission + Telemetry Layout |
Telemetry Dashboard |
Firmware Flash |
Vehicle Profiles & Weather |
MAVLink Signing - Packet Security |
Parameter Management |
OSD Simulator - Demo Mode |
CLI Terminal with Autocomplete |
SITL Simulator with FlightGear |
Generated Survey in 3D View |
Most users should download a pre-built release. No need to clone or build anything.
| Platform | Format | Link |
|---|---|---|
| Windows | Installer (.exe) | Latest Release |
| Windows | Portable (.exe) | Latest Release |
| macOS | DMG (Apple Silicon) | Latest Release |
| Linux | AppImage | Latest Release |
| Linux | .deb | Latest Release |
Getting started: Download the installer for your platform, install, plug in your flight controller via USB, and you're ready to go.
Linux AppImage note: On Ubuntu 24.04+ and other recent distros, the AppImage may not launch because
libfuse2is no longer installed by default. Install it withsudo apt install libfuse2, or run withAPPIMAGE_EXTRACT_AND_RUN=1 ./ArduDeck-*.AppImageto skip the FUSE requirement. Alternatively, use the.debpackage which has no such dependency.Note on code signing: ArduDeck binaries are currently unsigned. On macOS, you may see a Gatekeeper warning — right-click the app and select "Open", or run
xattr -cr /Applications/ArduDeck.appin Terminal. On Windows, SmartScreen may show a warning — click "More info" then "Run anyway". We plan to obtain code signing certificates once the project reaches a meaningful user base to justify the cost.Auto-updates: On Windows and Linux, ArduDeck supports seamless in-app updates — download and install with a single click. On macOS, because the app is not yet code-signed, in-app downloads are blocked by Gatekeeper. ArduDeck will still notify you when a new version is available and open the release page for manual download. Once we obtain an Apple Developer certificate, macOS will get full auto-update support automatically.
Not a developer? You don't need this section. Just download the latest release above.
The instructions below are only for contributors who want to modify ArduDeck's source code and submit pull requests.
- Node.js 20 or higher
- pnpm 9 or higher
# Fork the repo on GitHub first, then clone your fork
git clone https://github.com/<your-username>/ardudeck.git
cd ardudeck
# Install dependencies
pnpm install
# Build all packages
pnpm build
# Run in development mode
pnpm devpnpm package- Copter - Quadcopters, hexacopters, octocopters
- Plane - Fixed-wing aircraft, flying wings
- VTOL - Tiltrotors, tailsitters, QuadPlanes
- Rover - Ground vehicles, boats
- Submarine - Underwater ROVs (ArduSub)
- Multirotors - Quads, hexes, octos, tris
- Fixed Wing - Traditional, flying wing, V-tail, delta
- F3/F4/F7/H7 - All STM32 flight controllers
"No board left behind"
Got an old SPRacing F3, Naze32, or other F3-era board collecting dust? We've got you covered.
While other configurators have abandoned these classic boards, ArduDeck provides a fully-featured graphical interface - not just CLI access, but the same modern UI experience as newer boards:
| Board Era | Firmware Support | Configuration |
|---|---|---|
| F3 Boards | iNav 2.0.0, Betaflight 3.5.7 | Full GUI (powered by CLI) |
| F4/F7/H7 | Latest iNav & Betaflight | Modern MSP Protocol |
These boards were the workhorses of the FPV revolution. They flew millions of packs, survived countless crashes, and taught a generation of pilots how to tune PIDs. They deserve better than a drawer.
No command-line typing required! ArduDeck automatically detects legacy boards and presents a complete graphical interface:
- PID Tuning Tab - Sliders and inputs for P/I/D/FF, just like modern boards
- Rates Tab - Visual rate configuration with expo curves
- Mixer Tab - Graphical motor (
mmix) and servo (smix) mixer editor - Servo Tab - Visual endpoint tuning with range indicators
- Modes Tab - Point-and-click flight mode assignment
- CLI Terminal - For power users who want raw access with autocomplete
The GUI talks to your board via CLI commands under the hood - you get the convenience of a modern interface with the compatibility of CLI.
- SPRacing F3 / F3 EVO / F3 Mini / F3 Neo
- Naze32 Rev6
- CC3D (with iNav)
- Flip32 F3
- Seriously Pro Racing F3
- ...and any other F3-era board running iNav < 2.1 or Betaflight < 4.0
Dust off those veterans and give them one more flight! 🛩️
Found a bug? We want to hear about it! ArduDeck includes a built-in bug reporting tool that makes it easy to share diagnostic information with the development team.
Built-in bug reporting with automatic log collection
- Open the Bug Report screen - Click the bug icon in the sidebar or go to Help > Report Bug
- Describe the issue - Tell us what happened and what you expected
- Choose what to include:
- App logs - Recent application logs (always recommended)
- Board dump - Flight controller configuration (requires connected board, will trigger reboot)
- Review the data - See exactly what will be collected before sending
- Generate report - Creates an encrypted
.deckreportfile - Send to developers - Share the file via GitHub issue or email
| Data | Description | Privacy |
|---|---|---|
| App logs | Recent application logs (errors, warnings, debug info) | Paths sanitized, no personal data |
| System info | OS, version, architecture | Anonymous |
| Board dump | Flight controller settings via CLI dump command |
Your FC configuration |
- You control what's shared - Choose what to include, preview before sending
- Encrypted reports - Only the ArduDeck dev team can decrypt
.deckreportfiles - No automatic uploads - You decide when and how to share the file
- Real-time telemetry with dockable dashboard
- Interactive map with vehicle tracking
- Mission planning with terrain-aware altitude profile
- Full parameter management with validation
- Geofence and rally point editing
- Vehicle profiles with weather integration
- Firmware flashing (ArduPilot, Betaflight, iNav)
- Betaflight/iNav PID tuning and configuration
- CLI Terminal with autocomplete and command history
- Legacy F3 board support via full CLI configuration
- OSD Simulator with demo and live telemetry modes
- Calibration wizards - Accelerometer and compass calibration with step-by-step wizard
- Quick Setup Wizard with preset library for common frame types
- VTX and filter configuration for Betaflight/iNav
- ArduPilot configuration UI - PID tuning, rate profiles, flight modes, safety, battery monitor, sensors
- Lua Graph Editor - Visual scripting for ArduPilot Lua with 50+ nodes, compiler, templates, and in-app docs
- Survey Grid Planner - Automated survey patterns (Grid, Crosshatch, Circular) with camera and flight parameter configuration
- Mission Groups - Waypoints organized into colored, per-group survey and manual groups with per-block stats, per-group upload/save, undo, and autosave
- Corridor Surveys - Linear surveys along a centerline for roads, rail, and power lines, with plane and copter turn strategies
- GSD-First Survey Planning - Plan by ground sample distance, crosshatch at two heights, battery sortie splitting, and KML/KMZ/GeoJSON import
- 3D Mission View - Three-dimensional visualization of mission waypoints and flight paths
- MAVLink Signing - Passphrase-based packet signing for secure vehicle communication
- Flight Log Analysis - DataFlash .bin parser, health checks, log explorer with 3D flight path, and AI-assisted diagnostics
- SITL Simulator - ArduPilot, iNav, and Betaflight software-in-the-loop with vehicle/frame selection, virtual RC, custom frame physics, and FlightGear integration
- OSD element editor and font designer
Contributions are welcome! If you'd like to help improve ArduDeck, see the Development section above for build instructions.
- Fork the repository on GitHub
- Clone your fork (not the main repo)
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Just want to use ArduDeck? You don't need to fork or clone anything. Download the latest release instead.
ArduDeck is supported by companies that contribute hardware, time, or resources to the project.
- Adlerblix - Optical aerial surveying - photogrammetry, RTK precision, large-area mapping. (Germany)
This project is licensed under the GPL-3.0 - see the LICENSE file for details.
- ArduPilot - Open-source autopilot firmware
- Betaflight - Flight controller firmware for multirotors
- iNav - Navigation-focused flight controller firmware
- Mission Planner - Original GCS that inspired this project
- QGroundControl - Cross-platform GCS inspiration
- MAVLink - Micro Air Vehicle communication protocol
- Leaflet - Interactive maps library
Made with ❤️ by Codeforges
