There are now dozens of different options for flight controllers. Many of these controllers have specific applications, while others are more general in use. To choose the best for your project, you must observe the specifications and identify the features that best suit your needs.
Identify your needs
The first step in choosing a controller board is to identify what your real needs are. For this you need to have an idea of the type of aircraft you are planning to build, and which firmware you intend to use.
- Are you going to build a multi-rotor aircraft or a fixed wing one?
- In addition to the flight controller, which other electronics do you intend to integrate? (VTX, GPS, Cameras, Leds, PDB, UBECs, current sensor, Telemetry, other sensors)
- Do you have physical space limitations to allocate the controller board and other electronics?
- Is weight a big concern?
- Do you need integrated OSD?
- If it’s a Multi-rotor, do you need PDBs or ESCs built into the controller?
- Is the processing speed a great concern?
With the answers to these questions, it is easier to determine which features you are looking for on a flight controller board. Let’s go to them:
Specific use or general use
There are controllers made for very specific use, and controllers made for general use. Controllers created exclusively for racing drones, for example, have unique characteristics such as high-frequency gyroscopes (32kHz), integrated voltage regulator with power filtering, and an extremely simplified interface, often giving up some unnecessary connections. For example, specific controllers for racing drones generally have the motor connections at its corners, and rarely have more than 4 motor outputs and two or three serial ports.
Fortini F4 from FuriousFPV – Just the necessary for a racing drone.
Controllers of general use are those that have greater commitment with the amount of connections and possibility of welding metallic pins. These work for both multi-rotors (tricopters, quadricopters, hexacopters, octa, etc.) and fixed wing aircraft (airplanes, flying wings, gliders, etc.). The gyro is not so fast, but it is more tolerant to vibration. In addition, they may have additional sensors such as barometer and compass.
SP Racing F3 EVO – Lots of connections and metallic pins to connect servos
Number of Serial Ports (UARTs)
The number of serial ports will determine how many external devices you can integrate with the controller. The most basic of them is the radio receiver, which has SBUS connection (or IBUS, XBUS, Spektrum, CSRF, etc). But several other devices can be connected to the controller, such as GPS, Radio Telemetry (SmartPort, Radio LTM, MSP, etc.), Video Transmitter Telemetry (SmartAudio or Tramp), External OSD (MinimOSD), HD Camera Control (Runcam Split), among others.
Each of them consumes one UART, so you need to plan in advance which devices you plan to use, then choose the best controller.
Typically, the number of UARTs depends on the type of processor used by the controller.
- F1 has two UARTs, and may have two more SoftSerial ports.
- F3 has three UARTs, and can have two more SoftSerial ports.
- F4 has five UARTs, and may have two more SoftSerial ports.
- F7 has eight UARTs.
However, be aware: Many controllers do not provide all possible UARTs for the CPU. Some controllers may also share a UART with the USB connection, which may require action to circumvent this limitation. In addition, not all controllers allow you to activate SoftSerial. It is important to study each candidate controller before choosing.
Level of integration
There are controllers with all levels of integration. Some controllers do not even come with a USB / Serial interface (such as CC3D for example, which emulates it by software), while others are extremely integrated (can have UBEC, OSD, ESCs and several sensors on a single board). I will detail some aspects:
Compass and Barometer
Some controllers have Compass and/or Barometer integrated. These sensors are only useful in aircraft that will have autonomous piloting. In mini-quadcopters (racing drones) these sensors are not used. The controllers created specifically for these drones do not have these sensors.
Increasing popularity, the integrated OSD greatly facilitates the use of an OSD. Previously it was necessary to have a UART only for the OSD, besides having a separate board taking up more space and using more wires. Integrated OSD on the controller makes everything simpler and the installation gets cleaner, as well as releasing one UART for other device.
Every Flight controller needs a 5V power source to work. The most common way of providing this source to the controller is by using a PDB with integrated UBEC. However it is increasingly common to find controllers that accept power directly from the battery (from 2S to 6S), because they have integrated UBEC and do not depend on an external one. The UBEC is not usually very powerful, but it is enough to power the controller itself, the radio receiver and a low-power demanding camera.
The main function of the PDB is to distribute the battery power to the ESCs. Some PDBs also have UBEC integrated. The AIO (All in One) controllers are those that attach the PDB and the controller to a single card. Usually they are slightly larger than conventional controllers because they have soldering pads for the ESCs. This type of controller also has integrated UBEC.
Some controllers can even integrate ESCs. There are 4 ESCs on a single board, sharing space with the controller. The advantage is that the installation is extremely clean and light. The downside is that you will have to replace the entire board if any of the ESCs present a problem.
Compatibility with different firmwares
The main Firmware is currently BetaFlight and InavFlight. Although most controllers are supported by both firmwares, not all are. So it’s always good to check first whether the firmware you want to use will be compatible with the controller you intend to use.
There are basically four microcontrollers used in flight controller boards. All of them are manufactured by STM Electronics, all are 32-bit, but have small differences that alter each controller’s capabilities.
STM32F1 = Also called “F1” only, they are the first generation of 32-bit controllers. The most popular were Naze32 and CC3D. Works at 72Mhz. Controllers using this CPU are considered obsolete, and are no longer supported by the latest versions of BetaFlight and Inav. By using these controllers, you will be limited to older versions of these programs.
STM32F3 = Known only as “F3”, they are the second generation of 32-bit controllers. There are dozens of different controllers that use this CPU, the best known being SP Racing F3, Omnibus F3, Lux Racer F3, among others. F3 CPUs also work at 72Mhz, but have an integrated mathematic co-processor, which helps a lot in floating-point number calculations. So in practice they are much faster than the F1 CPU.
STM32F4 = or only “F4”, is the CPU most used in new controller designs. There are dozens (maybe even a hundred) of different controllers using this CPU. It works at 180Mhz, so it’s a lot faster than F3. It is capable of running the BetaFlight with PID Loop 16kHz with a lot of room to grow (means that the stabilization algorithm happens 16,000 times per second!). A disadvantage, however, is that the UARTs of the F4 chip can not be inverted by software, so the board must have hardware inverters, which requires some planning when using devices that need inversion (such as SBUS and SmartPort).
STM32F7 = or just “F7”, is the fastest and most complete CPU available today (and more expensive, of course). There are some controllers that already use this CPU, such as KISS FC V2 and Omnibus F7. It has no disadvantages compared to previous models (except for price). Runs at 216Mhz.
SP Racing F3
It is a relatively old but still very popular controller. Supported by CleanFlight, BetaFlight and Inav, it is capable of running all versions without problems.
It does not have many built-in features. No UBEC, no OSD. But it has EIGHT PWM outputs for ESCs or Servos. It also has 3 UARTs and possibility to use two more SoftSerial, LED strip output, Buzzer, and input for VBat, Current Sensor and RSSI.
It allows inversion on all serial ports (for those who use Sbus and SmartPort is good news).
The Deluxe (10-DOF) version also features a barometer and a compass!
It is a great controller for general use, both for fixed wing and for drones. If you want to buy one, click here!
Racerstar’s StarF4 controller is highly integrated, with a single card:
- 4 30s ESCs with DShot600 support
- Controller F4 with 3 UARTs available, Strip and Buzzer LED output
- 1.5A UBEC
- Current Sensor
This board is about half the weight that all these components would have if they were made on separate boards and connected by wires. It’s a great way to build a lightweight drone, without mess and without giving up the most needed resources.
To buy the StarF4, click here.
Holybro Kakute AIO F4
This controller also has good integration, own UBEC, OSD and a PDB to connect the ESCs. It has 3 UARTs available for use, Buzzer, Led Strip and current sensor. It’s a great choice for drone racer. Click here to buy!
Airbot Omnibus F4 PRO
The Omnibus F4 is a general purpose controller with good integration between components. It has OSD and UBEC integrated, one SD card slot (for flight log – black box). In addition it has 6 PWM outputs (for motors and servos), 4 UARTs, inputs for VBat, RSSI and Current sensor and output for Buzzer and Led strip. It is “ok” for mini drones, but works great on larger drones and fixed wings.
Matek F405 Mini
This controller is different from the others. It is only 20x20mm, designed for micro-drones. Despite its tiny size, it has virtually all the features of a larger controller of the same type: OSD, 5 UARTs, Buzzer, Led Strip, input for Vbat, Rssi and Current Sensor.
It even has a 32MB memory chip for Blackbox! Something not very common to see.
It only lacks an UBEC, so it is necessary to provide 5V power for it. The good news is that it was made to be used together with Matek’s VTX, which owns UBEC and can power the controller.