This guide compares the three, using Oscar Liang's firmware overview (updated in August 2026), the INAV and ArduPilot documentation and the current release notes. It also covers what to check before you flash a Betaflight board with something else.
The short answer
Oscar Liang's recommendation is simple. For freestyle and racing, Betaflight is the standard: the best manual flight performance, the widest hardware support and by far the most tutorials, presets and community help. He recommends it as the first firmware for beginners.
If you are more interested in GPS navigation, autonomous flight or fixed-wing aircraft, he points to INAV as the better starting point. ArduPilot is the most capable of the three for autonomous navigation and unusual vehicles, and also the hardest to learn.
Betaflight
Betaflight runs on F4, F7 and H7 flight controllers from many manufacturers, and Oscar notes that almost every mainstream FPV flight controller is designed with Betaflight in mind. It is focused on multirotors. Oscar writes that Betaflight also supports fixed-wing aircraft, but that this support is less mature.
GPS features have grown in recent versions. GPS Rescue brings the quad back after a loss of signal, and Betaflight 2025.12 added Altitude Hold and Position Hold. The release notes for Betaflight 2026.6.1 go further and list an AUTOPILOT mode with flight plans, CLI waypoint commands and mission upload over MAVLink. Oscar's August 2026 overview still describes Betaflight as much less focused on fully autonomous operation than INAV and ArduPilot, and GPS Rescue as a recovery feature first. The current stable version is 2026.6.2, released on 16 September 2026.
Separate articles on this site cover GPS Rescue and the hold modes in Betaflight.
INAV
INAV started from the same project as Betaflight (Cleanflight), and its Configurator looks familiar to Betaflight users. The focus is different. Oscar lists waypoint missions, return to home, altitude hold, position hold and automatic launch, and INAV supports fixed-wing aircraft, flying wings, rovers and VTOL as well as multirotors. He notes that INAV can fly a quad quite well, but is not tuned for aggressive freestyle the way Betaflight is.
Sensor requirements are stricter for a quad. INAV's navigation documentation says position hold needs GPS, an accelerometer and a compass, and that return to home on a multirotor needs an accelerometer, compass, GPS and barometer. Modes that need a compass stay locked until it is calibrated. Plan for a GPS module with a compass if you want INAV's navigation on a quad.
Versions
The current stable release is INAV 9.1.0, published on 9 July 2026. The 9.1 release notes describe it as a maintenance release with no incompatible settings changes from 9.0.x. INAV 10.0 is at the release candidate stage, with the stable version planned for December.
Points from the release notes that catch people out:
- The INAV Configurator and the firmware must have the same major version: Configurator 10.0 for INAV 10.0, and so on.
- Since INAV 8, the official release no longer includes targets for F411 flight controllers.
- Upgrading from INAV 8.x to 9.0 requires a full chip erase. Back up your settings first.
Moving a Betaflight quad to INAV
Oscar Liang's conversion guide is the clearest walk-through. The steps that matter most:
- Check the target. In the Firmware Flasher tab of the INAV Configurator, search for your flight controller. If it is not listed, INAV does not support it. A board that runs Betaflight is not automatically supported by INAV.
- Save the Betaflight configuration. Oscar also takes screenshots of the Ports, Configuration, tuning (PIDs, rates and filters), Receiver, OSD, Modes and ESC protocol settings. INAV is set up from scratch, and the screenshots let you copy the settings across by hand.
- Flash with "Full chip erase" enabled. Oscar notes that the Auto-select button may not work while the board is still running Betaflight.
- Pick the default values that match the quad, for example a 3-inch, 5-inch or 7-inch quad.
- Calibrate the accelerometer in the Calibration tab. It is a six-position calibration, with a click on "Calibrate Accelerometer" for each position.
INAV also differs from Betaflight in ways that look like faults at first:
- Motors do not spin in the Outputs tab until you enable "Enable motor and servo output". This is a deliberate safety default. Remove the props before testing.
- No resource remapping. If the motor order is wrong, you fix it in the Mixer tab instead.
- Ports tab. If you enter an invalid configuration, INAV resets the whole tab without saying which port caused it. With MSP DisplayPort for a DJI or Walksnail system, you must disable MSP data on that port.
- Modes use channel numbers (CH5, CH6) instead of AUX1, AUX2. With an ExpressLRS receiver, arming goes on CH5.
- Rates. Oscar found the default rates slow for freestyle, which he puts down to defaults aimed at cruising and long-range quads such as 7-inch builds.
Going back is straightforward: flash Betaflight again, in the version named in your backup file, and load the backup in the Presets tab.
ArduPilot
ArduPilot supports the widest range of vehicles: multirotors, planes, VTOL, rovers, boats and even submarines. Oscar calls it the strongest option for autonomous navigation and for rovers, boats and VTOL, and the least suitable of the three for freestyle and racing. It also has the steepest learning curve. Configuration happens in a ground station such as Mission Planner, not in a Configurator built around FPV quads.
ArduPilot's "Choosing an Autopilot" page lists many FPV flight controllers, including boards from SpeedyBee, Holybro (Kakute), iFlight (Blitz), Foxeer and TBS (Lucid H7). Oscar notes that ArduPilot is more selective about hardware than Betaflight and may not work with some popular FPV boards, so check the list for your exact model.
Two things from the ArduPilot documentation matter for FPV boards:
- The first flash is different. Most Betaflight flight controllers ship with a bootloader that does not accept ArduPilot. The first time, you load the ArduPilot bootloader and firmware together over USB in DFU mode with STM32CubeProgrammer. After that, updates go through the ground station.
- F4 boards get a reduced firmware. Due to flash memory limits, most F4 boards do not include all ArduPilot features. Boards with 1 MB of flash have features removed, and the features.txt file for each board and version lists what is missing. The Custom Firmware Build Server lets you add excluded features back in place of ones you do not need.
The current stable release is ArduPilot 4.7.2, published on 14 October 2026.
KISS and EmuFlight
Oscar mentions two more options for freestyle and racing. KISS is closed firmware from Flyduino that runs only on FETtec and Flyduino flight controllers, so you cannot flash it onto a typical Betaflight board. EmuFlight is a Betaflight fork with its own approach to filtering and stick feel, a much smaller user base and more limited support for modern hardware. He recommends starting with Betaflight before trying either.
How to choose
- Freestyle, racing, cinematic flying by hand: Betaflight. GPS Rescue and the hold modes cover a lost signal and a quick hover.
- Long-range quad with waypoint missions and navigation modes: INAV, if your flight controller has an INAV target and you add a GPS with a compass.
- Wing or fixed-wing FPV: INAV is the popular choice among FPV pilots for its familiar interface. ArduPilot is the alternative.
- VTOL, rover, boat or a project that needs full autopilot features: ArduPilot, with a flight controller from its list, preferably one that is not limited by 1 MB of flash.