Software
In aerial robotics, a UAV’s software stack is typically divided into two subsystems:
- The Flight Control Firmware: embedded onboard the vehicle—manages real-time sensor fusion, attitude stabilization and closed-loop flight control.
- The Ground Control Station (GCS): running on the operator’s workstation—provides the human–machine interface for mission planning, live telemetry monitoring, parameter tuning and post-flight analysis. Below, we list popular open-source flight control firmware and GCS packages along with their supported platforms.
Flight Control Firmware
Comparison of Open-Source Software (OSS) Flight Control Firmware. [1]
Platform | Latest Release | OS | Language | License / FC / Doc / Config Tool |
---|---|---|---|---|
Hack flight | — | None | C++ | GPL-3.0 / – / Lesser GPL-3.0 |
Cleanflight | v2.5.0 | Scheduler | C | GPL-3.0 / – / GPL-3.0 |
Betaflight | v4.5.2 | Scheduler | C | GPL-3.0 / – / GPL-3.0 |
INAV | v8.0.1 | Scheduler | C | GPL-3.0 / – / GPL-3.0 |
LibrePilot | v16.09 | FreeRTOS | C | GPL-3.0 / CC-BY-SA-3.0 / GPL-3.0 |
dRonin | dRonin 2018-07-29 | PiOS | C | GPL-3.0 / To be determined / – |
ArduPilot | v4.5.7 | ChibiOS / NuttX / Linux | C/C++ | GPL-3.0 / CC-BY-SA-3.0 / GPL-3.0 |
PX4 | v1.15.4 | NuttX | C/C++ | BSD 2-Clause / CC-BY-SA-3.0 / GPL-3.0 |
Paparazzi | v6.4.0 | ChibiOS / Scheduler | C/Python | GPL-3.0 / GFDL / GPL-3.0 |
DJI Onboard SDK (OSDK) (EOL) | v4.1.0 | Linux / RTOS | C/C++ | MIT |
DJI Payload SDK (PSDK) | v3.11.1 | Linux / RTOS | C | MIT |
ROSflight | v1.3.0 | Linux | C | BSD 3-Clause |
Crazyflie Firmware | v2025.02 | Linux | C | GPL-3.0 |
Notes: - EOL = End of Life Service.
Ground Control Stations (GCS)
Comparison of GCS software and their supported platforms.[2]
GCS | Lastest Release | Supported Platforms | OS (L/W/M) | Protocol(s) | Language / Framework | License |
---|---|---|---|---|---|---|
Mission Planner | v1.3.82 | ArduPilot | ✕/✓/✓ | MAVLink | .NET / C# | GPL-3.0-only |
APM Planner 2 | v2.0.30-rc3 | ArduPilot, PX4 | ✓/✓/✓ | MAVLink | Qt / C++ | GPL-3.0-or-later |
MAVProxy | v1.8.71 | ArduPilot | ✓/✕/✕ | MAVLink | Python | GPL-3.0-or-later |
AndroPilot | v1.9.14 | ArduPilot | ✕/✕/✕ | MAVLink | Java | GPL-3.0-only |
QGroundControl | v4.4.4 | ArduPilot, PX4 | ✓/✓/✓ | MAVLink | Qt / C++ | Apache-2.0 / GPL-3.0-only |
Paparazzi Center | v6.4.0 | Paparazzi | ✓/✓/✓ | PprzLink | Python | GPL-2.0-only |
LibrePilot GCS | v16.09 | LibrePilot | ✓/✓/✓ | UAVTalk | C++ / Qt | GPL-3.0-only |
Betaflight-Configurator | v10.10.0 | Betaflight | ✓/✓/✓ | MSP, MAVLink | Electron / JavaScript | GPL-3.0-only |
iNAV-Configurator | v8.0.1 | iNAV | ✓/✓/✓ | MSP, MAVLink | Electron / JavaScript | GPL-3.0-only |
Notes:
- Order for OS is Linux/Windows/macOS, with ✓ = supported, ◐ = partial, ✕ = not supported. - AndroPilot is Android-only, hence ✕/✕/✕ here.
- All other entries match their official supported OS lists.
References
- Ebeid, E., Skriver, M., Terkildsen, K.H., Jensen, K. and Schultz, U.P. (2018) A Survey of Open-Source UAV Flight Controllers and Flight Simulators. Microprocessors and Microsystems, 61, 11-20. https://doi.org/10.1016/j.micpro.2018.05.002.
- Aliane, N. (2024). A Survey of Open-Source UAV Autopilots. Electronics, 13(23), 4785. https://doi.org/10.3390/electronics13234785.
This page was last updated: May 20, 2025