Website · Documentation · Guides & Screenshots · Community Forum · Discord
A modern, cross-platform ground control station for ArduPilot, Betaflight, and iNav.
ArduDeck is an open-source ground control station built with Electron, React, and TypeScript. One app covers the whole workflow: connect, configure, calibrate, plan, fly, and analyze, for vehicles running ArduPilot (MAVLink) or Betaflight/iNav (MSP), from a single quad on USB to a fleet of vehicles on radio, IP, or cellular links.
Beta 1 (0.1.0) - ArduDeck is in beta. It is used in real flight operations, but expect rough edges and keep a backup configuration tool available. Ask questions and share setups on the community forum or Discord, read the documentation, or use the built-in bug reporting to help improve the project.
- Screenshots
- Features
- Download & Install
- Supported Vehicles & Firmware
- Building from Source
- Bug Reporting
- Contributing
- Sponsors
- License
- Acknowledgments
Mission planning with grouped waypoints, a terrain-aware altitude profile, and live flight-info estimates
OSD Tool: composable ground-rendered HUD, flight controller Text OSD editor, and RubyFPV layout authoring
Lua Graph Editor: build ArduPilot Lua scripts visually, with live code preview and export
More screenshots, guides, and full documentation live on the website: ardudeck.com/docs. Have a question or want to share a build? Join the community forum.
- Dockable telemetry dashboard - attitude, altitude, speed, GPS, battery, flight mode, and messages in IDE-style panels with saveable layouts
- Interactive map - live vehicle tracking, flight trail, multiple base layers, offline map downloads
- Map overlays - weather radar, animated wind flow, airspace zones, OpenAIP aviation charts, terrain elevation, and live air traffic (ADS-B / OGN)
- Video and camera - camera panel with pluggable sources (WebRTC, RTSP/ffmpeg, UVC), gimbal control, and a guided setup for wfb-ng / RunCam WiFiLink links
- Flight commands where they belong: arm/disarm, takeoff, mode changes, and guided "fly here" from the telemetry screen
- One-button engine - a single click starts a local coordination engine; ArduDeck connects to it automatically
- Simple vehicle onboarding - "Add a vehicle" over radio, internet, cellular (4G/5G modem over IP), or a second ground station
- Fleet operations - per-vehicle telemetry and commanding, a fleet strip with health at a glance, colour-coded map markers, formation controls, and group actions
- Fleet survey split - divide a survey area across multiple vehicles
- Fleet log retrieval - download logs from every vehicle through the engine for side-by-side analysis
- Built-in NTRIP client - connect to any NTRIP caster, browse the sourcetable, and stream RTCM corrections to the vehicle
- NTRIP v1 and v2 - proper v2 (HTTP/1.1, chunked) with automatic fallback to classic v1 casters
- GGA position reporting back to the caster for network (VRS) mountpoints
- Direct link or fleet-wide - corrections flow over a single connection, or to every vehicle through the multi-vehicle engine
- Interactive editing - click to add waypoints, drag to reposition, undo/redo, continuous autosave with crash recovery
- Mission groups - waypoints organized into named, colored groups (manual or survey) with per-group stats, show/hide, and per-group upload or save
- Altitude-frame-aware profile - the terrain profile understands relative, AMSL, and terrain MAVLink frames per waypoint, with drag-to-edit altitudes
- Terrain collision detection - visual warnings where the path meets terrain, with one-click Auto Adjust
- Spline waypoints, 3D view, mission library - curved paths, three-dimensional visualization, and a local library plus .waypoints (QGC WPL) and .plan import/export
- Full MAVLink mission protocol - upload, download, geofence, and rally points
- Patterns - grid, crosshatch (optionally at two heights), circular, spiral, perimeter fill, and corridor surveys along a centerline with plane or copter turn strategies
- GSD-first planning - plan by ground sample distance with camera presets and live photo, battery, and data estimates
- Terrain follow - continuous DEM-based terrain following so cameras hold height above ground without an onboard terrain database
- Multi-polygon areas - multiple survey polygons with no-fly holes, plus a dedicated area editor window for boundary work
- Battery sortie split - split long surveys into battery-sized flights, each independently uploadable
- GIS import - KML, KMZ, GeoJSON, and Shapefile boundaries
- Log Explorer - multi-chart plotting of ArduPilot DataFlash logs with independent y-axes, zoom/pan, windowed min/avg/max stats, and synchronized cursors across charts, map, and 3D flight path
- FFT spectrum - frequency analysis for vibration and filter work
- Events and parameters - flight events timeline and the parameter set recorded in the log
- Health reports - automated pass/warn/fail checks for vibration, GPS, EKF, power, failsafes, and more
- AI-assisted analysis - chat about a log with Claude, GPT, or Gemini; the Claude analyst can query raw telemetry and propose parameter changes you can apply
- Text OSD editor - read, edit, and upload the flight controller OSD: ArduPilot OSDn parameters with multi-screen support, and MSP/Betaflight OSD layouts
- Composable custom HUD - freely placeable telemetry readouts on a ground-rendered HUD (drawn by ArduDeck, never uploaded to the FC)
- RubyFPV layout authoring - configure RubyFPV ground-side OSD screens and export them for the ground station
- Live video backdrop - preview every OSD variant over your actual video feed, with MCM font support and bundled fonts
- Parameter management - full parameter list with metadata, search, range/enum/increment validation, modified tracking, and .param file import/export
- PID tuning - ArduPilot and Betaflight/iNav tuning with presets, rate curve editors, and a VTOL / fixed-wing controller switch on QuadPlanes
- Flight modes, safety, and failsafe - mode channel assignment, failsafe actions, geofence behavior, and MAVLink signing
- Calibration - accelerometer, compass (including CompassMot motor-interference calibration and large-vehicle mag cal), with step-by-step wizards
- Motor test, servo wizard, quick setup - guided flows for frames, fixed wings, and first-time configuration
- CLI terminal - xterm-based terminal with autocomplete and history, including full GUI configuration for legacy F3-era boards driven over CLI
- Firmware flashing - ArduPilot, Betaflight, and iNav, with board auto-detection (MAVLink, MSP, STM32 bootloader), USB VID/PID recognition, and a boot-pad wizard
- Connections - serial (USB), TCP, and UDP, with port scanning and MAVLink v1/v2 auto-detection
- Link Doctor - connection diagnostics that identify what is actually on the link and why it is not talking
- MAVLink inspector - live message browser with field graphs
- Robust telemetry links - parameter download recovery tuned for slow SiK-style radio links
- SITL built in - download and run real ArduPilot firmware (Copter, Plane, Rover, Sub) on your computer, pick a frame and release track, and ArduDeck connects automatically
- Virtual RC and FlightGear bridge - fly the simulated vehicle from the app, optionally visualized in FlightGear
- Swarm SITL - spawn multiple SITL vehicles to exercise multi-vehicle features without hardware
- Lua Graph Editor - build ArduPilot Lua scripts by connecting nodes (sensors, logic, math, actions), with live code preview, templates, and one-click export (docs)
- Companion boards - ESP32 flashing with pre-configured templates (DroneBridge, MAVLink bridge), DroneBridge auto-discovery, and an agent dashboard for Raspberry Pi-class companions (metrics, terminal, services)
- Unit preferences - metric or imperial per quantity (distance, altitude, speed, wind, weight, area, capacity)
- Feature tours - short guided walkthroughs of new and existing screens
- Vehicle profiles - per-vehicle configurations with type-specific properties and live weather at the launch site
- Built-in bug reporting - one screen collects sanitized logs into an encrypted report you choose to share
Most users should download a pre-built release. No need to clone or build anything.
| Platform | Format |
|---|---|
| Windows | Installer (.exe) and portable (.exe) |
| macOS | DMG (Apple Silicon) |
| Linux | AppImage and .deb |
All downloads: Latest Release
Install, plug in your flight controller via USB (or point ArduDeck at your telemetry link), and you are ready to go.
Linux AppImage note: on Ubuntu 24.04+ and other recent distros the AppImage needs
libfuse2(sudo apt install libfuse2), or run it withAPPIMAGE_EXTRACT_AND_RUN=1. The.debpackage has no such dependency.Code signing: ArduDeck binaries are currently unsigned. On macOS, right-click the app and select "Open" (or run
xattr -cr /Applications/ArduDeck.app). On Windows SmartScreen, click "More info", then "Run anyway".Auto-updates: Windows and Linux update in-app with one click. On macOS, ArduDeck notifies you about new versions and opens the release page for manual download until the app is code-signed.
- Copter - quadcopters, hexacopters, octocopters
- Plane - fixed-wing aircraft, flying wings
- VTOL - tiltrotors, tailsitters, QuadPlanes
- Rover - ground vehicles, boats
- Submarine - underwater ROVs (ArduSub)
- Multirotors and fixed wings on F4/F7/H7 boards via modern MSP
- Legacy F3-era boards (SPRacing F3, Naze32, Flip32, and friends) get the same graphical interface, driven over CLI under the hood: PID, rates, mixer, servo, and modes tabs all work, with firmware flashing for iNav 2.0.0 / Betaflight 3.5.7 era builds
Only needed if you want to modify ArduDeck or contribute. Everyone else should download a release.
- 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 packageThe repository is a pnpm workspace: the Electron app lives in apps/desktop, with protocol and parser libraries in packages/ (MAVLink, MSP, DataFlash log parsing, STM32 flashing, and more).
ArduDeck includes a built-in bug reporting tool (bug icon in the sidebar). It collects recent app logs (paths sanitized), system info, and optionally a board configuration dump, shows you exactly what will be included, and produces an encrypted .deckreport file that only the ArduDeck team can read. Attach it to a GitHub issue or share it on Discord. Nothing is uploaded automatically; you decide when and how to share.
Contributions are welcome. Please read CONTRIBUTING.md first (it covers the CLA and workflow), then:
- Fork the repository and clone your fork
- Create a feature branch from
master - Make your changes and add tests where it makes sense
- Open a Pull Request
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 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 and QGroundControl - the ground control stations that paved the way
- MAVLink - Micro Air Vehicle communication protocol
- Leaflet - interactive maps library
Made by Codeforges
