Flight controller (FC) firmware is the software that runs on the flight controller board 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.
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.
What’s a flight controller 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 obsolete and should be avoided. Here are the only FC firmware I believe you should know about today.
For freestyle and racing:
For autonomous flying:
Betaflight is an open-source firmware designed for multirotors. It is by far the most popular flight controller firmware options for FPV drones. Betaflight provides a powerful and easy to use interface and a wide range of features, including PID tuning, OSD configuration, and advanced flight modes. It also supports the widest variety of hardware configurations, including F4, F7 and H7 flight controllers from a dozen of different manufacturers. Betaflight is constantly evolving, with frequent updates that add new features and improvements. It has a large community of users who provide support, share information, and contribute to its development.
Betaflight was originally modified from the Cleanflight to focus on the leading edge of new features and flight performance available for racing drones, hence the name Beta-flight. Over the years Betaflight has diverged significantly from Cleanflight, and is now considered a separate and distinct firmware.
If you fly freestyle or racing drones, Betaflight is the go-to choice in my opinion, as it is one of the best, if not the best in terms of flight performance. It’s also a great option for long-range flights due to its recently optimized GPS Rescue mode, which is a basic return-to-home feature. I believe it is a great choice for both beginner and experienced pilots. Although the many options in Betaflight make it possibly one of the most flexible and powerful flight software, there is also a steep learning curve.
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 and is said to be very 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 – simple to configure and use.
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 is geared towards 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.
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 is perhaps the most popular open-source autopilot software suite. 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.
However it’s not a popular choice for multirotor racing or freestyle flying, because it lacks a lot of performance optimization, modern features and latest protocol supports.
These firmware are either outdated or not so popular.
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 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 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 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 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 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 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.
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.
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 on their website, but not fulfilling them. There are comments on their YouTube channel stating that some customers haven’t received their orders for more than a year. 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.
For beginners, 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.