Flight Controller Firmware for FPV Drone: Choosing Between Betaflight, iNav, Ardupilot

by Oscar
flight controller firmware for fpv drones betaflight kiss inav flightone

Flight controller (FC) firmware is the software that runs on the FC board – the brain of an FPV drone. Different types of FC firmware offer varying levels of functionality and customization options. Choosing the right firmware can have a significant impact on the performance and capabilities of your FPV drone, as well as your ability to fine-tune and personalize your flight experience. It’s important to research and select a firmware that aligns with your specific needs and goals as a drone pilot.

Some of the links on this page are affiliate links. I receive a commission (at no extra cost to you) if you make a purchase after clicking on one of these affiliate links. This helps support the free content for the community on this website. Please read our Affiliate Link Policy for more information.

What’s a Flight Controller?

A flight controller (FC) is the electronic brain of an FPV drone that uses sensors and algorithms to stabilize and control the aircraft’s flight. It receives data from the drone’s various sensors, and makes adjustments to motor speed to keep the drone stable and flying as intended.

You can learn more about FC in this tutorial.

What’s a FC Firmware?

FC firmware is the software that runs on a flight controller and controls the operation of an FPV drone. It affects flight performance and features, and different firmware options offer various advantages and disadvantages for different flying styles and preferences.

Types of FC Firmware

There are a lot of FC firmware options in the hobby, but most are either obsolete or not very popular. Here are the only FC firmware I believe you should know about nowadays.

For freestyle and racing:

  • Betaflight
  • KISS
  • Emuflight

For autonomous flying:

  • INAV
  • Ardupilot

Betaflight

Betaflight is an open-source flight controller firmware designed primarily for multirotor aircraft, including quadcopters. It is by far the most popular choice for FPV drone pilots, known for its extensive range of features and performance-oriented design. Betaflight offers an intuitive interface for tasks like PID tuning, OSD (On-Screen Display) configuration, and flight mode setup. It also supports a wide array of hardware, including F4, F7, and H7 flight controllers from many different manufacturers. One of its strengths is the active community and constant development, ensuring regular updates that introduce new features and improvements.

Betaflight’s origins trace back to Cleanflight, from which it was forked to push the boundaries of what flight controller software could do for FPV racing and freestyle drones. While Cleanflight has largely faded from use, Betaflight has grown significantly and evolved into the industry standard, offering high-performance capabilities.

Betaflight originated as an experimental branch of Cleanflight, designed to test cutting-edge features and improve flight performance, hence the name “Beta”. Over time, it diverged significantly from its predecessor, becoming a standalone project with a focus on performance for FPV racing and freestyle drones. While Cleanflight has largely faded from use, Betaflight has grown significantly and evolved into the industry standard, offering high-performance capabilities. It is also continuously adding new features like optimized GPS rescue modes, expanded target support, and more advanced filtering options for improved flight stability.

If you fly freestyle or racing FPV drones, Betaflight is the go-to firmware thanks to its high-performance tuning options and continuous innovation. Whether you’re just starting out or are an experienced pilot, Betaflight offers tools that help you get the most out of your drone. It also excels in long-range flight, especially with its recently enhanced GPS Rescue feature, which makes it more reliable for return-to-home functions.

Despite the extensive feature set, Betaflight can have a steep learning curve, especially for beginners. However, the trade-off is worth it, as the flexibility and performance it provides are unmatched. If you’re serious about pushing the limits of your drone’s performance, Betaflight should be your top choice.

Ready to dive into Betaflight? Here’s a tutorial to help you get started with your first setup: https://oscarliang.com/betaflight-firmware-setup/.

KISS

KISS FC firmware is a proprietary firmware developed by Flyduino. Known for its simple and streamlined interface, it’s popular among old school freestyle pilots. KISS means “Keep It Simple Stupid”.

Generally has a good reputation among its own users and is said to be easy to configure. However, KISS firmware is limited in terms of customization and lacks some of the advanced features found in other firmware such as Betaflight.

For beginners, I don’t recommend KISS as your first firmware because it might be harder to get help when you run into issues due to the much smaller user base. While easy to configure, it lacks customization and advanced features found in other firmware such as Betaflight.

Furthermore, the KISS firmware is designed specifically for flight controllers made by FETtec and Flyduino, it’s not compatible with any FC made by other manufacturers. KISS FC is often slightly more expensive than other comparable Betaflight hardware due to the manufacturers’ independent development and German-based manufacturing. You maybe also find derivative KISS firmware under the names KISS Ultra and FETtec Alpha, these new projects maybe using rewritten codes of the original KISS but the key features are the same.

You can find KISS flight controllers here:

Emuflight

A branch of Betaflight, without going into too much detail, Emuflight is a result of some disagreement between the developers regarding filtering. According to their users, Emuflight has a unique stick feel compared to other FC firmware.

Since it’s modified from Betaflight, it’s compatible with all Betaflight hardware. Sometimes people give Emuflight a try when they can’t get Betaflight to perform the way they want. If you don’t like it you can always go back to Betaflight.

iNav

iNav is geared towards GPS navigation and autonomous flight. Apart from multirotors, iNav also can be used for fixed-wing aircraft and RC cars. It offers more advanced GPS features such as waypoint navigation, return-to-home, and altitude hold.

iNav is an open-source firmware and is constantly being updated and improved by a community of developers. It was originally modified from Cleanflight just like Betaflight, hence they share many similarities, even the configurators feel familiar, therefore it’s easier for Betaflight users to pick up iNav.

While iNav is not as popular for freestyle or racing drones as Betaflight, it is a popular choice for long-range fixed-wing aircraft and other autonomous applications. And for quadcopters, the flight performance is not quite as optimized as Betaflight yet but the gap is certainly closing over the years.

There are some flight controllers designed specifically for iNav, but it also supports some Betaflight flight controllers.

If you are interested in more of that UAV/Drone style of flight, this is definitely an option to explore.

ArduPilot

ArduPilot is perhaps the most popular and advanced open-source autopilot software suite. It’s the jack of all trades, as it supports a variety of vehicles, including quadcopters, planes, rovers, ground vehicles, even RC submarines.

ArduPilot is known for its extensive features and customization options, making it a good choice for advanced pilots and developers. It supports both autonomous and manual control modes, GPS waypoint navigation, and various sensors like barometers and magnetometers. But the learning curve is also the hardest among all the options mentioned.

However it’s not a popular choice for FPV drone racing and freestyle flying, because it lacks a lot of performance optimization, modern features and latest protocol supports.

Honourable Mentions

These firmware are either outdated or not so popular.

Multiwii

Multiwii was one of the first popular flight controller firmware in the DIY drone community and was released in 2010. It was the inspiration for many popular FPV drone firmware later on. The firmware was created using the IMU from the Nintendo Wii Nunchuck, combined with an Arduino board, thus the name Multiwii (Multirotor, Wiimote).

However, MultiWii is not as actively developed as some of the other popular firmware options available today, the last update was 2016.

Baseflight

Baseflight was one of the first widely used 32-bit FC firmware created in 2012, based on the 8-bit Multiwii flight controller firmware. However, its development has largely been stagnant since 2014. Despite all the controversies surrounding the software author, TimeCop, Baseflight contributed to the evolution of the FC software we use today and is worth noting.

Cleanflight

Cleanflight is an open-source flight controller firmware developed by Dominic Clifton and originally based on Baseflight. It was released in 2014 and quickly became popular in the FPV drone community.

However, development on Cleanflight slowed down after the release of Betaflight and INAV in 2015. Many pilots have since switched to Betaflight due to its superior performance, cutting-edge features, and more active development.

Butterflight

Butterflight is a fork of Betaflight that aims to bring a renewed focus on FPV drone flight performance and cutting edge features. As of 2018, the main differences between Butterflight and Betaflight are the software filtering for gyro signal and AKK VTX Smart Audio support. However, development stopped in 2019.

OpenPilot

OpenPilot was one of the earliest open-source FC firmware developments for multirotors, and influenced major progressions in flight control firmware options. In 2015, it was discontinued and replaced by LibrePilot. However, OpenPilot’s code is still noteworthy for its impact on the development of FC firmware.

LibrePilot

LibrePilot is a fork of OpenPilot and is focused on research and development for use in many different applications, including robotics. While not as popular in the mini quad community as other firmware options, it has a reliable team of developers and remains open source. Although it doesn’t have support for as many hardware targets as other firmware in this list, it has shown recent updates and continues to receive development.

TauLabs

TauLabs is another fork of OpenPilot, with a focus on autopilot and UAV research and development. The project targets professionals, researchers, and students, offering an entry-level platform with fast and easy setup/configuration for any group that needs UAVs in their research. While it has limited hardware target support and a smaller following in the mini quadcopter community, it’s a great firmware to experiment with for student projects or other innovative ideas related to agriculture, air quality, or other applications. It may not be the best choice for general mini quad flying, but it offers a lot of potential for specialized uses.

dRonin

Last but certainly not least on this list is dRonin, which is derived from OpenPilot. As its name suggests, dRonin focuses primarily on FPV drone racing. The development team is dedicated to improving racing and acrobatic flying performance, and they regularly update the open-source software. One standout feature is the auto-tune mode that custom-tunes PID settings for your mini-quad build. Additionally, the setup/configuration wizard is quick and easy to use. The main drawback is that it has limited support for FC targets, but it supports a sophisticated list of flight controllers with positive reviews. However, development stopped in 2019 as I last checked.

FlightOne FalcoX

Update (December 2022): This company has no updates on their social media for a couple of years now. It seems they are still taking orders/money on their website, but not fulfilling them according to comments left by angry customers on their YouTube channel. It is recommended to avoid this company until further notice.

Originally named Raceflight, FlightOne was forked from Betaflight/Cleanflight. However, the code was completely rewritten and the firmware became closed source. FlightOne is well-known for its latest variant called FalcoX, which is super easy to use as it can be set up completely from the OSD menu, unlike Betaflight which requires a computer. FalcoX focuses on pure racing and acro flying and is oriented around F4 flight controllers. While some top pilots prefer Betaflight due to the higher level of customization, FalcoX is well-regarded for its direct stick feel and smoothness. However, since the userbase is not as large as Betaflight, it can be slightly harder to get help online, and hardware option is hugely limited.

Ardupilot vs. Betaflight and INAV for FPV Drones

The 3 most popular FC firmware for FPV drones today are Ardupilot, Betaflight, and INAV. Each have distinct features, characteristics, and performance profiles, it’s a challenging decision. Let me share my experiences and insights into these platforms.They cater to different aspects of the RC and FPV world, including drones, airplanes, rovers, and boats.

User Friendliness

When it comes to user-friendliness, Ardupilot is the most complex, requiring more in-depth knowledge to set up. In contrast, Betaflight and INAV are more beginner-friendly with a more modern and intuitive user interface, allowing faster and simpler starts. There are also way more resource, tutorials and user groups available online for Betaflight and iNav than Ardupilot.

Hardware Support

Betaflight wins in hardware support – almost every FC on the market are designed primarily for Betaflight. INAV follows, there is a small number of FC that are designed primary for iNav, but many Betaflight FC are also compatible iNav. However, Ardupilot is pickier about hardware, lacking support for some popular boards.

Freestyle FPV Racing

For freestyle flying and racing, Betaflight is the industry standard without doubt. INAV performs quite decently, though it lacks some features and performance optimization that hardware flyers might find useful. Ardupilot, unfortunately, is the least suitable for this category.

Cinematography and Long Range

Ardupilot and INAV are excellent for cinematography, offering features like stable hovering and advanced GPS. Although Betaflight has some basic GPS functionality (GPS Rescue), it lags in this category. However, Betaflight is still a popular choice for long range and cinematic flying due to its advantage in flight performance.

Navigation and Autonomous Flight

Ardupilot shines in autonomous flight and navigation, with INAV following closely. Betaflight’s GPS rescue feature is useful but doesn’t offer full autonomous capabilities.

Airplanes

Both Ardupilot and INAV excel in airplane configurations, offering an array of features for a great flying experience. Betaflight does not support airplanes.

Boats and Rovers

Ardupilot is unparalleled in operating rovers and boats, with comprehensive features and capabilities. INAV can handle most of these tasks but lacks some advanced features.

VTOL

For VTOL (Vertical Takeoff and Landing), Ardupilot is the leader, fully supporting these complex aircraft. INAV has basic support, while Betaflight lacks this functionality.

Conclusion

The best flight controller software depends on your specific needs.

For FPV drone racing and freestyle flying, Betaflight is the go-to, period. But if you want advanced GPS features, or support for other types of aircraft/vehicals, then you should look at Ardupilot and INAV, both are equally great in terms of versatility, but Ardupilot’s complex interface is a drawback. INAV is more user-friendly and offers decent hardware support.

For beginners flying FPV drones, I highly recommend starting with Betaflight as your first flight controller firmware, as it has a wide selection of compatible hardware and a large community that provides numerous tutorials and resources. However, if you prefer autonomous flying, then iNav may be a more suitable option that’s is relatively easy to learn.

Edit History

  • May 2017 – article created
  • June 2021 – updated
  • Mar 2023 – updated, shortened URL

Leave a Comment

By using this form, you agree with the storage and handling of your data by this website. Note that all comments are held for moderation before appearing.

12 comments

FPVToast 29th February 2024 - 7:42 pm

Hello,
Do you have any experience with Quicksilver? I’ve seen more and more people suggesting it for whoops, but there is not a ton of info out there yet.

Thanks

Reply
Oscar 1st March 2024 - 2:09 pm

No I’ve not been using Quicksilver, but I might give it a try later when I have time. I’ve also heard good things about it for tinywhoops.

Reply
Robert 2nd March 2023 - 1:03 pm

Best Whoop Firmware missing: Quicksilver (Bosshobby)

Reply
Fred 16th April 2022 - 9:56 pm

Just love all the info on your page, but so much is now out of date. R u thinking of updating any time soon?

Reply
Oscar 16th April 2022 - 11:18 pm

If you could point out which part is out of date it would help tremendously. I try my best to update posts but it would help me a lot if i could get some input from the community.

Reply
krishna 29th August 2019 - 8:32 am

what about PX4..

Reply
Daniel 22nd July 2019 - 4:19 am

Hello, thank you for your website. Do you have an index for your drone related pages? Also, I am not into racing I want to build a drone to see what is happening on my 135 acres. Which firmware would be best for me? From what I am reading iNav or LibrePilot seems appropriate, are they?
P.S. I am new to this field.

Reply
samuele.rini 11th June 2018 - 2:19 pm

Thank you very much for the comprehensive write-up about FC’s firmwares. Very helpful.

Reply
Jason 30th October 2017 - 5:37 pm

I had a USRobotics Solo that runs Ardupilot. How does that fit into the mix of firmwares?

Reply
Phil Hord 27th May 2017 - 3:29 am

Haha. “dRonin. Its name says it all.” What the hell does that even mean?

Reply
Oscar 28th May 2017 - 4:50 pm

it sounds like “Droning” ;D

Reply
Tilo 8th August 2017 - 3:00 am

Ty Oscar. All of the info, and specifically that name explanation. So simple, yet I didn’t see it.

Reply