The number of flight controllers (FC) for FPV drones can be overwhelming for beginners. This guide explains all the features and differences, and highlights important factors to consider when choosing a mini quad FC.
If you are new to the hobby, check out our FPV drones beginners guide to learn more.
|I compiled the specifications of all FC’s in this spreadsheet so you can compare them more closely|
The flight controller (a.k.a FC) is the brain of the aircraft. It’s a circuit board with a range of sensors that detect movement of the drone, as well as user commands. Using this data, it then controls the speed of the motors to make the craft move as instructed.
Nearly all flight controllers have basic sensors such as Gyro (Gyroscopes) and Acc (Accelerometer). Some FC include more advanced sensors such as Barometer (barometric pressure sensors) and magnetometer (compass).
The FC is also a hub for other peripherals, such as GPS, LED, Sonar sensor etc.
FPV drone flight controllers are rapidly evolving: becoming smaller, with more features integrated, and using better processors and hardware.
Here is an example wiring diagram how components in a drone are connected to a flight controller.
In addition to hardware options, there is also different firmware you can choose to run on your FC, which offer different features and specializations for various applications. For example iNav is designed with GPS utilization in mind, whereas KISS is more focused on racing and ease of use.
Here is a list of popular FC firmware available for mini quad. If you have no clue which one to choose, my recommendation would be Betaflight.
Betaflight is open-source, developed and maintained by the community. It has the biggest user base, so you will be more likely to get help when you run into problems. It also has the widest range of flight controllers.
Other popular firmware for FPV drones are FlightOne and KISS. They are both closed source, and the hardware and firmware are controlled by private companies so you are limited to their own flight controllers.
Once you have picked your FC firmware, you can look for a compatible flight controller board.
Interface and Configuration
Modern FC firmware can be configured via a computer, smartphone, or even from your radio controller. Each firmware offers a different user interface (UI) with various parameters you can change. Some UI looks similar, but plugging the same settings into a different FW can give very different characteristics, so there is a learning curve when getting into a new firmware.
“Tuning” is the term we use in the multirotor hobby when changing parameters such as PID, RC rates or other settings to achieve the flight characteristics we want.
The processors in FC are also known as micro controller units (MCU), they are used to store the firmware codes and handling all the complex calculations.
Currently, there are 5 main types of MCU used for FC’s: F1, F3, F4, F7 and H7. The main differences being the calculation speed and memory size:
We recommend getting either an F4 or F7 flight controller, because F1 and F3 are no longer supported in the latest versions of Betaflight due to the lack of storage for the expanding firmware.
UART stands for Universal Asynchronous Receiver/Transmitter.
UART is the hardware serial interface that allows you to connect external devices to the flight controller. For example, serial radio receivers, Telemetry, Race Transponder, VTX control etc.
Each UART has two pins, TX for transmitting data and RX for receiving. Remember the TX on your peripheral connects to the RX on the FC, and vice versa.
For example here are the UART3 (R3 and T3 pins) and UART6 (R6 and T6 pins) on a flight controller. You can assign these UART a task in the ports tab of Betaflight configurator.
How Many UART’s on an FC
You might not need many UART’s, but having more is always handy.
The number of UART’s available largely depends on design of the board, and the processor used. For example, F1 FC normally only has 2 UART’s, while F3 and F4 can have between 3 to 5 and F7 can have 6 to 7.
|No. of UART||2||3-5||3-6||6-7|
UART and Inverted Signal
F3 and F7 can handle inverted signals natively, while F1 and F4 cannot.
Frsky SBUS and SmartPort signals are inverted at the output, the good news is F3 and F7 flight controllers can read these signals just fine. Because they are newer generation processors with integrated inverters.
However, older processors such as F1 and F4, require an external inverter to “translate” the signal before feeding it to the UART. For users convenience, almost all F4 flight controllers have dedicated pads for SBUS you can connect the RX directly to. Otherwise, you can use a workaround, such as using soft serial for SmartPort, or getting uninverted signal from the RX.
If you are running out of UART ports, you can use the Betaflight feature SoftSerial to “create” up to two extra UART. SoftSerial is a way of emulating a UART port using software, but the emulated UART has lower baud rate (update rate). This makes it unsuitable for timing critical tasks such as for the RX connection. Note that SoftSerial also increases CPU load.
The job of an IMU sensor is to measure the quadcopter’s movement and orientation. An IMU sensor contains both an accelerometer (ACC) and a gyroscope (Gyro).
The most used flight modes in Betaflight are probably Acro mode (aka manual mode) and Angle mode (aka self-level mode). Acro mode uses only the Gyro, while Angle mode uses both the ACC and Gyro.
Since most FPV drone pilots only fly in Acro Mode, the accelerometer is often turned off to free up processing power. That’s why we normally refer to the IMU simply as the gyro.
The following list contains the most common IMU chips for FC.
The Types of IMU
|IMU||Possible Communication Protocol (BUS)||Max. Effective Gyro Sampling Frequency|
* MPU9150 is effectively MPU6050 with an integrated AK8975 magnetometer, while MPU9250 is MPU6500 with the same magnetometer
You can find the IMU model number printed on the chip, for example this is the popular Invensense MPU-6000.
The Choice of Gyro: Sampling Rate vs. Noise
There are two main properties of an IMU to consider in a flight controller: max sampling rate, and how susceptible to noise (both electrical and mechanical).
Currently the most widely used IMU is MPU6000 as it supports up to 8KHz sampling rate, and is proven to be one of the most robust IMU against noise. The general consensus is to avoid MPU6500 and MPU9250 despite their higher sampling speed.
There is also a performance difference between ICM series gyro’s. The ICM20689 is one of the worst gyro for flight controllers, susceptible to noise and with a high failure rate. If you had to pick an ICM gyro, go with 20602 instead.
There are some FC with the Gyro “soft mounted” on foam in order to reduce calculation errors from vibrations being transferred into the system from the motors.
Update (Oct 2019): Since Betaflight 4.1, 32KHz mode had been removed, so even if you are using an ICM gyro with Betaflight, you can only run up to 8KHz looptime.
One of the reasons BetaFlight removed 32KHz support may be due to faster a gyro being a double-edged sword. A smooth craft with clean signal and power, can expect the ICM series at 32KHz to perform better than the MPU6000 at 8KHz. However introduce electrical noise from ESC & motors and/or physical vibrations, and the degradation in performance of the ICM is far worse than the MPU6000.
Gyro BUS – i2c and SPI
SPI and i2c are the types of “BUS”, or communication protocol between the IMU sensor and processor. The type of BUS has a significant impact on the effective sampling rate and the maximum flight controller looptime.
The preferred BUS is SPI, which allows you to run Gyro at a much higher refresh rate than I2C which has a limit of 4KHz. Almost all flight controllers today uses SPI.
FC layout is where the pins / solder pads are located on the board, and how easy it is to connect the components.
Many people only care about the capability of a flight controller, and can overlook the importance of the layout.
A good example would be the CLRacing F7 and the Kakute F7. Both are excellent flight controllers that I personally recommend, but purely based on the layout, the CLRacing F7 is clearly superior, as all the pads are all located on the edges, and grouped by the function. The pads on the Kakute are all crammed into the same area, which often results in messy wiring.
It’s a personal thing, not everyone has the same taste in FC layout.
An “All In One” FC has in-built power distribution and will have large pads for the heavy gauge wire for input voltage directly from your LiPo. The term was originally used back when it was standard to have a PDB to regulate power to your FC, but with the variety of components found integrated with FC’s these days, it has become more misleading.
One of the first components to be integrated with the FC was On-Screen Display (OSD) – Betaflight OSD.
Other integrated circuitry that has proven invaluable is the Current Sensor: it’s a much better indicator than VBAT for when you should land and great tool for testing – More about current sensor and calibration.
Other commonly integrated components include Barometer and magnetometer (compass).
There is no “true” all-in-one solution (not yet anyway), but you can find almost any component – RX, VTX, even ESC’s – integrated with the FC.
The RacerStar Tattoo F4S FC was the first ESC integrated FC I reviewed, although it wasn’t very reliable.
4-in-1 ESC’s are common these days, and are often designed as part of a “stack” for use with a specific FC, usually a 4-in-1 ESC acts as the PDB. The plugs and connections from a 4-in1 ESC to the FC are not standardized so ensure your parts are compatible before you purchase.
Can an AIO FC and 4-in-1 ESC be used together? Yes they can, but we don’t recommend it.
Depending on the type of ESC you want, use an AIO FC with separate ESC’s.
A Non-AIO FC should be coupled with a PDB for individual ESC’s or a 4in1 ESC.
The mounting pattern is the hole distance in a flight controller. Common mounting patterns are 30.5×30.5mm, 20×20mm and 16×16mm. The mounting pattern is largely determined by the size of the board, and the size of the aircraft it’s designed for. 5″ and larger aircraft normally use 30.5×30.5mm while anything smaller use 20×20mm. 16×16mm are getting popular with micro builds under 100mm.
Blackbox: Flash Memory or SD Logger?
Blackbox data is useful for tuning and troubleshooting.
There are two ways to record your blackbox data – storing your flight logs either on an SD card or integrated flash memory.
Flash memory is cheaper to use, but it’s also very limited in terms of how long you can record. Depending on your logging rate and the amount of flash memory on your FC, you can usually only capture 10 to 20 maybe minutes of flight data. It’s also extremely slow to download, taking up to 5 mins to download a one-minute flight log.
Flight controllers with a built-in SD card reader allows you to insert an SD card allowing you to record for weeks without worrying about running out of space. It’s also very fast to read the data, take the card out and you can access the logs immediately.
Blackbox logs are really for more experienced pilots to diagnose almost imperceptible issues with flight characteristics, such as racers looking to squeeze out every last drop of performance. For the averaged hobbyists, perhaps this is unnecessary unless you are really into tinkering.
If your FC doesn’t have SD card slot nor flash memory for blackbox, you can get an external SD card reader (Open Logger) and connect it to your FC via UART.
The three main types of connectors on a flight controller are
- Plastic JST connectors
- Solder pads
- Through holes
Plastic JST connectors are less durable although they allow you to connect/disconnect wires more easily. Solder pads are more robust, but you can run into risk of tearing them out when stressed or overheated when soldering. Through holes are flexible as it gives you the option of direct soldering or using header pins.
BEC (Voltage Regulator)
The majority of FC’s provide a regulated 5V pad. Some even provide 9V, 12V or some other voltages. These voltage regulators are often referred to as “BEC” (battery eliminator circuit).
Although a lot of FPV gear (FPV camera and VTX) can now be powered directly from the LiPo battery, I have found it produces better results powering them from a regulated power source.
Learn about how to wire FPV setup to reduce noise.
A feature that allows you to configure FPV camera settings using your radio transmitter and Betaflight OSD. Learn more about camera control here.
A boot button (or bootloader button) can put FC into bootloader mode when pressed. This allows you to “force” flash firmware in case normal firmware flashing doesn’t work (why use bootloader button on FC).
Originally FC’s provide 2 solder pads for you to bridge when bootloader mode is required, a boot button makes it much easier.
Soft mounting is a good practice to reduce vibrations transferred from the motors to the gyro. There are two main types of soft mounting when it comes to mounting flight controllers: rubber standoffs and grommets.
Learn more about FC soft mounting.
Here are my FC recommendations: https://oscarliang.com/top-5-best-fc-mini-quad/
For a complete list of flight controllers, here is a list I complied: https://docs.google.com/spreadsheets/d/1VuBpQVZflz5zVNUG43qKTq4Mkwt-cTssWvb1CGqskQk/edit?usp=sharing
- Dec 2014 – Article created
- Nov 2016 – Added choices of flight controller firmware, updated FC features
- Feb 2017 – Updated Processor and Gyro types
- Apr 2017 – Added “FC Evolution” infographics, Updated MPU types
- May 2018 – Updated info about FC integration
- Oct 2018 – Added info about mounting pattern
- Feb 2020 – URL Changed; Updated: FC Firmware, Gyro Info; Added: connection diagram/example, AIO FC & Feature integrations explained, layout, camera control