Drone

Flight Controller Explained: How to Choose the Best FC for FPV Drone


A flight controller is one of the most important components in a FPV drone. It’s responsible for stabilizing the aircraft, ensuring precise flight manoeuvres, and providing data to the pilot. In this article, we’ll explain in detail what a flight controller is, how it works, and why it’s such a critical part of any drone. Whether you’re a beginner or a seasoned pilot, understanding the basics of flight controllers is crucial for getting the most out of your flying experience.

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.

If you are new to the hobby, check out our FPV drones beginners guide to learn more.

The Best FC Recommendations

Speedybee F405 V4

Speedybee F405 V4 Fc Esc Stack

The Speedybee F405 V4 is currently one of the best value flight controller stacks available, offering decent quality and performance. It includes nearly all the modern features you’d want in a flight controller. It supports an analog FPV system with an onboard Betaflight OSD chip and is “plug n play” compatible with digital FPV systems. See my full review here: https://oscarliang.com/speedybee-f405-v4/.

I’ve been almost exclusively using this stack for my 5″ and 7″ builds in the past year because it is affordable and suitable for freestyle, racing, long-range, and cinematic flying. For enhanced performance, I recommend flashing the BlueJay firmware to the ESC so you can use RPM filter in Betaflight.

While there are other budget FC stacks on the market, they typically use the F722 chip, which has only half the memory of the F405 in the Speedybee. Less memory restricts the number of features you can use in Betaflight and makes the system less future-proof.

Get your Speedybee F405 V4 Stack from:

Speedybee: https://oscarliang.com/product-wncw
RDQ: https://oscarliang.com/product-6ro8
NBD: https://oscarliang.com/product-tscf
AliExpress: https://s.click.aliexpress.com/e/_DFU9NkF
Amazon: https://amzn.to/46EzYZi

iFlight Beast F7 AIO 55A

Iflight Beast F7 Aio 55a Fc

For lightweight builds with a low profile, such as sub-250 5″, 4″, and 3.5″ drones, the iFlight Beast with a 25.5×25.5mm mounting is a solid choice. It is particularly suitable for racing due to its lightweight and compact design. Although the 55A ESC rating might sound “bulletproof,” it’s important to remember that this is still an AIO board and not as robust as ESCs on separate boards. However, it is more than sufficient for any drone smaller than 5″. This flight controller offers all the connections and functionality you could want in a Betaflight flight controller.

Get the iFlight Beast 55A FC from:

AliExpress: https://s.click.aliexpress.com/e/_DlhSn6R
GetFPV: https://oscarliang.com/product-e7xk
RDQ: https://oscarliang.com/product-pdc0

Flywoo GOKU GN745

The GOKU GN745 is an great alternative to the iFlight Beast. It also features a 25.5×25.5mm form factor, making it ideal for lightweight 3″, 4″, and 5″ FPV drone builds. Equipped with an F7 processor and BLHeli32 ESC, it supports bidirectional DSHOT and RPM filtering right out of the box, along with other advanced BLHeli32 features.

It’s arguably one of the most feature-rich whoop/toothpick style flight controllers available. Although there are many solder pads located on the edge of the board, they are quite small and can be challenging to solder. However, the board does offer 7 full UARTs, and its set of features is unmatched. It includes a barometer, a 5V and 9V BEC, and even boasts 8MB of blackbox memory on board!

Product Page:

Flywoo: https://oscarliang.com/product-bgbk
GetFPV: https://oscarliang.com/product-1f9n
RDQ: https://oscarliang.com/product-4zy4
AliExpress: https://s.click.aliexpress.com/e/_DCBmtpd

 

Flight Controller: What it is and How it Works

flight controller sizes, MCU and features

A flight controller, or “FC”, is like the brain of an FPV drone. It’s a circuit board equipped with sensors that detect the drone’s movements and user commands. With this information, the FC adjusts the speed of the motors to move the drone in the desired direction.

All flight controllers have basic sensors like gyroscope and accelerometer, while others may include other sensors such as barometric pressure sensors (barometer) and compasses (magnetometer).

The FC can also serve as a hub for other drone peripherals like ESC, GPS, LED, servos, radio receiver FPV camera and VTX.

As technology advances, flight controllers are getting smaller, more feature-packed, and using better processors and hardware.

FC Types

There are two main types of flight controllers: one is more plane-oriented, while the other is more multirotor-oriented. This doesn’t mean you can use a plane FC on a multirotor or vice versa, but you will likely face more challenges. It’s best to choose the correct type of FC for a smoother experience.

Plane/Wing Oriented FC Multirotor Oriented FC/ESC Stack
Matek F411 Wte Flight Controller Wing Fc Boards Top Bottom Rushfpv Blade F722 Digital Analog Flight Controller V2 Fc Extreme 60a 4in1 Esc

Within the multirotor FC, you will find regular FC and AIO (All-in-One) FC.

An AIO FC integrates the ESC onto the same board, which makes for a compact setup. However, they aren’t as robust as ESCs on separate boards, as found in regular FC/ESC stacks (two separate boards). The choice depends on your requirements—if space and weight are priorities, you probably want to go with an AIO FC. Otherwise, a regular FC/ESC stack is normally preferred for its reliability.

Regular FC/ESC Stack (2 boards) AIO FC (1 board)
Tmotor Velox F7 Flight Controller Fc Fpv Drone Build Flyfish Volador Iflight Mach R5 Hd Bnf Racing Drone Fc Stack Vista Remove Top Plate

FC Connection

Here is an example wiring diagram how components in a FPV drone are connected to the flight controller. Each FC has a different wiring diagram due to variations in solder pad layouts, but the concept remains the same—you just need to identify the appropriate pads on your FC.

How To Build Fpv Drone 2023 Wiring Diagram Analog

Flight Controller Firmware

Flight Controller Firmware

When it comes to flight controllers, you have a choice not only in hardware but also in firmware. Different firmware options offer different features and specializations for various applications. For example, iNav is designed with GPS and autonomous flight in mind, while Betaflight is more focused on flight performance.

Here are a list of popular FC firmware options for FPV drones: https://oscarliang.com/fc-firmware/

However, I would personally recommend choosing between these two:

  • Betaflight: This open-source firmware focuses on flight performance. It has the largest user base, which makes starting out easier due to the abundance of tutorials. It also means support is readily available when you encounter issues. Additionally, Betaflight supports the widest range of flight controllers. Here’s a tutorial to get you started: https://oscarliang.com/betaflight-firmware-setup/
  • iNav: If you are more interested in automated flying and GPS waypoint mission, iNav is the way to go.

Once you’ve chosen your firmware, you can then look for a compatible flight controller board.

Configuration and Tuning

Betaflight 4.3 Pid Tuning Sliders

Flight controller firmware can be configured using a computer, smartphone, or radio controller. Each firmware has its own user interface (UI) and parameters that can be changed. However, even similar-looking UIs can produce different flight characteristics depending on the firmware, so it takes time to learn and adjust to a new one.

Tuning” is the term we use in the hobby to describe the process of adjusting parameters like PID, rates/expo, and others to achieve desired flight characteristics. This is an important step in optimizing your FPV drone’s performance and getting the most out of your flight controller. I have a tutorial on how to tune your FPV drone in a few simple steps.

Processor

FC Processors: from left to right: STM32 F1, F3, F4

FC Processors: from left to right: STM32 F1, F3, F4

A flight controller uses microcontroller units (MCUs) to store firmware codes and perform complex calculations.

Currently, STM32 MCUs such as F4, F7, and H7 are supported by Betaflight, while F1 and F3 are no longer supported due to insufficient memory for the expanding firmware requirements. Therefore, it’s important to pay attention to the memory available on different processors – it’s just as important as speed, if not more. For instance, although the latest Betaflight allows you to select which features to use and keep the code size small for processors with less memory, in the long run, the slower F405 might actually have an advantage over the faster F722 due to its larger memory capacity.

  F1 F3 F4 F7 H7
Speed 72MHz 72MHz 168MHz 216MHz 480MHz
Memory 128KB 256KB 512KB/1MB 512KB/1MB 1MB/2MB

This article provides a more detailed explanation of the differences between all the MCU for a better understanding of FC processors: https://oscarliang.com/f1-f3-f4-flight-controller/

Historically, STM32 chips have dominated the FPV drone flight controller market. However, in recent years, AT32 is quickly becoming a viable alternative to STM32 chips due to its availability and affordability. Learn more here: https://oscarliang.com/at32-flight-controllers/

Gyro

The flight controller on an FPV drone uses a range of sensors to detect movement and orientation. The main sensor used for this purpose is called an Inertial Measurement Unit (IMU). An IMU contains both an accelerometer and a gyroscope, but in the hobby, the term “gyro” is often used to refer to the IMU sensor.

The gyro can measure angular velocity while the accelerometer measures linear acceleration. When flying an FPV drone in full manual mode (aka acro mode), it uses only the Gyro, while in self level modes such as Angle mode, it requires both the Gyro and Accelerometer to work.

Gyro Overview

The most popular types of gyro for FPV drone FCs are made by two manufacturers: InvenSense (now part of TDK) and Bosch Sensortec.

Here’s a list of common gyro models, along with the communication protocols they support and their maximum effective sampling frequency:

IMU Possible Communication Protocol (BUS) Max. Effective Gyro Sampling Frequency
MPU6000 SPI, i2c 8KHz
MPU6050 i2c 4KHz
MPU6500 SPI, i2c 32KHz
MPU9150* i2c 4KHz
MPU9250* SPI, i2c 32KHz
ICM20602 SPI, i2c 32KHz
ICM20608 SPI, i2c 32KHz
ICM20689 SPI, i2c 32KHz
ICM42688P SPI, i2c 32KHz
BMI270 SPI, i2c 6.4KHz

* MPU9150 is effectively MPU6050 with an integrated AK8975 magnetometer, while MPU9250 is MPU6500 with the same magnetometer

There are two types of communication between the gyro and processor: SPI and i2c. SPI is the preferred communication protocol between the IMU and processor because it allows for a much higher gyro refresh rate than I2C (which has a limit of 4KHz). Almost all modern FCs today use SPI connection for the gyro. We want to avoid MPU6050 and 9150 because they only support i2c and not SPI.

How to Find Out What Gyro FC Is Using

To find out which gyro your FC has you can find the IMU model number printed on the chip, for example this is the popular Invensense MPU-6000.

MPU6000 - IMU Gyro Sensor

Gyro and Accelerometer on a flight controller

Or you can enter the “status” command in the Betaflight Configurator CLI and look for the name of the IMU under Gyro/ACC. Some FC may have more than one Gyro onboard, and you can choose which one to use in the CLI with the command “set gyro_to_use=0 or 1”.

How To Check Which Gyro On Flight Controller Betaflight Cli Status

Which Gyro Is Best?

Flight controllers don’t offer Gyro options, but generally, if you choose a reputable brand that includes a gyro with a good track record, it shouldn’t pose any issues. Here’s a brief history of gyros used in flight controllers.

The choice of gyro depends on its max sampling rate and susceptibility to electrical and mechanical noise. Before 2022, the most widely used gyro was MPU6000 because of its robustness against noise. The general consensus is to avoid MPU6500 and MPU9250 despite their higher sampling speed. The ICM20689 is also a decent gyro in terms of performance but allegedly has a higher failure rate. The ICM20602 is another popular choice, however it’s more susceptible to noise and harder to tune. Since Betaflight 4.1 (Oct 2019), 32KHz gyro sampling rate has been removed from Betaflight, so there is no advantage using gyro with 32KHz sampling rate.

In 2022, FC manufacturers shifted from MPU6000 towards BMI270 due to cost and availability. While its max sampling frequency is only 6.4KHz, Betaflight forces it to go into OSR4 mode (with a cutoff frequency of 300Hz), resulting in an even lower sampling rate of 3.2KHz. That might sound suboptimal, but as I have tested it myself personally, the actual performance of BMI270 is comparable to MPU6000 (in Betaflight 4.3/4.4). The main downside is probably the extra filtering that is sometimes required as the cut-off frequency is higher in the built-in low pass filter with the BMI270 gyro.

In 2023, more and more manufacturers are again shifting from BMI270 to ICM42688P due to availability and cost. The ICM-42688P Gyro has been the subject of debate due to perceived noise and tuning issues. However, investigations reveal that the gyro itself is not the problem; rather, it’s the design of the flight controllers it’s integrated into. Specifically, the gyro requires a clean power supply for optimal performance, which was overlooked by some early FC designs in 2022 and early 2023, leading to poor performance. For users considering purchasing a flight controller featuring this gyro, thorough research into product reviews focusing on noise performance is crucial.

Layout

FC layout refers to the arrangement of pins and solder pads on a flight controller board, which can greatly affect how easy it is to connect various components. Many people only care about the specifications of a flight controller, and often overlook the importance of the layout.

For instance, comparing the following two flight controllers, you can see the first one has a superior layout with all the pads grouped by function and located all the edges.

ESC Compatibility

4in1 ESC’s are often sold together with flight controllers nowadays as a stack, and they are designed to be plug and play.

How To Build Fpv Drone 2023 Fc Stack Nuts 2

However, when using ESC and FC from different brands, while they should be compatible, the pinouts might be different, requiring rearrangement of the wires in the harness, which can be a huge hassle. If this is what you want to do, ensure to double-check the pinout before connecting the FC and ESC together, wrong wiring could fry your FC upon powering up.

Solder Pads Explained

Here, I will list some of the important solder pads often needed on a flight controller and explain what they mean.

Voltage Pads

VBAT, 3.3V, 5V, 9V

These pads are used to power external devices. VBAT is the direct voltage from the LiPo battery, while all other voltages are known as BEC (Battery Eliminating Circuit). Almost all FCs have VBAT, 3.3V, and 5V pads; some larger FCs offer other voltages such as 9V and 12V to power video transmitters. Note that all BECs have an amp rating, so avoid overloading them to avoid damage.

UART

UART (Universal Asynchronous Receiver/Transmitter) is the most important connection on a flight controller. It’s a hardware serial port used to connect external components such as radio receivers, video transmitters, GPS, etc.

Each UART has two pins: one for transmitting data (TX pin) and one for receiving data (RX pin). It’s important to remember that the TX on the peripheral device connects to the RX on the FC, and vice versa. You have to connect TX and RX of the same number for a device. Some devices only require connecting either TX or RX if two-way communication isn’t needed.

As shown in the following example, UART3 (R3 and T3 pins) and UART6 (R6 and T6 pins) on a flight controller can be assigned different tasks in the ports tab of the Betaflight configurator.

Flight controllers have a limited number of UARTs; some have up to 6, while smaller FC’s may only have 2. It depends on the processor and space available. Ensure there are enough UARTs for the devices you plan to use before purchasing.

If you need more UART ports, Betaflight has a feature called SoftSerial, which converts certain solder pads into “digital serial ports.” These are similar to UARTs but have a much slower update rate, making them unsuitable for time-critical applications such as receivers and GPS. They can be used for analog VTX control but also increase CPU load, making them not recommended for slower processors or you might need to lower the PID Loop Frequency.

Camera Pad

Vin or Cam

If you run analog FPV system, this is where you connect the FPV camera. The flight controller will then overlay the OSD to the video feed before it outputs it to the VTX.

VTX Pad

Vout or VTX

This is where you connect the VTX if you run an analog FPV system.

i2C Pads

SDA and SCL

For connecting devices like a GPS compass and barometer.

Buzzer Pads

BZ+ and BZ-.

For beepers.

LED Pad

For connecting RGB LED strips.

Mounting Pattern

The mounting pattern refers to the distance between the adjacent mounting holes on a flight controller. Common patterns include 30.5×30.5mm, 25.5×25.5mm, 20×20mm, and 16×16mm.

For 5″ FPV drones or larger, FC with 30.5×30.5mm mounting pattern is often used, while smaller drones generally use 25.5×25.5mm or 20×20mm.

Other Features

Flight controllers come with a range of features that can enhance your flying experience. Let’s take a look at some of them.

Blackbox

Blackbox is useful for tuning and troubleshooting. You can record your flight data in two ways – using integrated flash memory or storing it on an SD card if there’s an onboard SD card logger.

I have a tutorial explaining how to use Blackbox: https://oscarliang.com/blackbox/.

Flash memory is cheaper but has limited storage capacity, typically 16MB which offers around 5 to 10 minutes of flight data. Downloading data from it can also be slow. Using an SD card reader on your flight controller, you can keep recording all year long without emptying the storage, and it gives you access to the logs instantly by inserting the SD card in a card reader.

Blackbox logs is a must-have for experienced pilots. It gives you the ability to squeeze every bit of performance out of the drone and diagnose issues in detail. I have a tutorial explaining how to tune your FPV drone: https://oscarliang.com/pid-filter-tuning-blackbox/

If your flight controller doesn’t have an SD card slot or flash memory, you can also connect an external SD card reader to the FC via UART.

Connector Types

The three main types of connectors on a flight controller are

  • Plastic JST connectors
  • Solder pads
  • Through holes

Plastic connectors are less durable but convenient to use, while solder pads are more robust but requires soldering. Through holes give you the option of direct soldering or using header pins.

BEC

BEC (battery eliminator circuit) is just what we call voltage regulators on a flight controller.

Almost all flight controllers have a 5V BEC for powering radio receiver, GPS etc, while some also offer 9V or 12V BEC dedicated for powering the video transmitter. Although you can power FPV gear directly from the LiPo battery, powering them from a regulated power source can produce better results.

Learn about how to wire analogue FPV setup for best result.

It’s important to choose the right voltage source based on the device you’re powering. Some devices can be powered directly from the LiPo battery e.g. the video transmitter. However the power source from LiPo tends to be noisy, voltage spikes can even damage your devices if there isn’t enough filtering. A BEC acts as a power filter and is usually a better power source, but you need to check if it meets the voltage and current requirements of your device.

Barometer

Having a barometer built into your flight controller can make GPS-assisted flight more accurate (such as GPS Rescue Mode), but it’s not mandatory.

OSD Chip

For analog FPV system, make sure your flight controller has an OSD chip (AT7456E) available, or Betaflight OSD won’t work. However, it’s not necessary for digital FPV systems such as DJI, HDZero and Walksnail, all they need for OSD to work is just a spare UART .

Soft Mounting

Soft mounting the flight controller is crucial for optimal performance, it reduces the noise/vibration from the frame getting to the gyro.

Almost all FC these days have M4 holes, which allow you to insert rubber gummies (grommets) so you can use M3 hardware to secure the board in a frame.

Speedybee F405 Mini Stack Flight Controller Esc Grommets Gummies

There are FC with the Gyro “soft mounted” on a piece of foam for reducing vibrations getting to the gyro. This is not a very popular approach, as it’s been proven unnecessary as long as the flight controller itself is adequately soft-mounted. Here are some tips on soft-mounting and filtering capacitors to reduce noise.

Soft mounted Gyro – Kakute F4

A Little History

The history of FPV drone flight controller can be traced back to 2009, when a maker used the Wii Motion Plus Accessory with an Arduino board to control a drone. This led to the development of the Multiwii project, which eventually created its own flight controller board that worked on an 8-bit Atmel processor.

In 2013, another developer named “timecop” created a flight controller board with an ARM 32-bit processor, Naze32,  and ported the Multiwii source code to it, called “Baseflight.” This board established the 35x35mm form factor (with 30x30mm mounting) and is still relevant till this day.

In 2014, “Hydra” modified Baseflight and created Cleanflight, leading to an explosion in the 32-bit flight controller market, with manufacturers developing their own FC variants.

Betaflight was created in 2015 by “BorisB”, using Cleanflight’s source code and making significant modifications to it. When Betaflight was first released, it was mainly focused on improving the performance of Cleanflight, while also adding new features and capabilities. Over time, Betaflight has diverged significantly from Cleanflight, and is now considered a separate and distinct firmware. Betaflight is currently the most popular flight controller firmware for FPV drones, and is still being frequent updated.

Edit History

  • 2014 – Article created
  • 2016 – Added choices of flight controller firmware, updated FC features
  • 2017 – Updated Processor and Gyro types, Added “FC Evolution” infographics, Updated MPU types
  • 2018 – Updated info about FC integration, Added info about mounting pattern
  • 2020 – URL Changed; Updated: FC Firmware, Gyro Info; Added: connection diagram/example, AIO FC & Feature integrations explained, layout, camera control
  • 2022 – Added info about BMI270 gyro
  • 2023 – Tutorial revised, Added info about ICM42688P Gyro
  • May 2024 – Updated tutorial, added FC recommendations.