Flight Controller History
The Flight Controller, commonly referred to by the acronym “FC”, is the brain of your quadcopter. It contains a sensor that detects changes in orientation and computes the changes to propeller speed needed to correct any orientation errors it perceives.
The history of digital flight controllers is rich, though brief. When Nintendo’s Wii Motion Plus accessory took off around the world in 2009, an enterprising maker going by the handle Alexinparis decided to try to hook it up to an Arduino board to make it control a drone. This is the origin on the Multiwii project, which eventually developed its own flight controller board that worked on an 8-bit Atmel processor.
As any gamer who was alive in the 90s will tell you, 8 bit is never the endgame. Another developer out of Japan named timecop developed a flight controller board using an ARM 32 bit processor and ported the multiwii source code to it. This port was named “Baseflight” and the board it ran on is called the Naze32. The Naze32 is the granddaddy of all miniquad flight controller boards. It is largely responsible for solidifying the 35mmx35mm form factor and still is relevant today!
But there was no competition. The Baseflight firmware was held hostage to the Naze32 flight controller board – timecop made his money by selling Naze32 boards and as such had no interest in porting the Baseflight software so that it could work on different electronics configurations. As a result, another developer going by the handle “hydra” picked up the code and began modifying it so that it would be compatible with flight controller boards developed by other manufacturers. This new firmware was called “Cleanflight”.
The rise in the popularity of Cleanflight and it’s sibling Betaflight spawned a veritable explosion in the 32 bit ARM flight controller market. Manufacturers came out of the woodworks to develop their own variant of FC because the margins were high. Everyone won because of this – different manufacturers competed by offering tons of variations on the theme, adding in new features and tweaking the form factor in the unending effort to having the “best” product.
Flight Controller Features
Processor (F1, F3, F4)
The processor on your flight controller is similar to the CPU in your computer – it is the brain of the whole operation. It is a programmable microchip that communicates with all of the other components on and off the board to make your miniquad fly.
There are currently three relevant types of processors on the market: F1, F3 and F4 processors. Performance increases as you go up in number, so F4 processors are the most powerful while F1 processors are the least. A faster processor generally means that you can run a faster “looptime”, resulting in a smoother flight experience. This has diminishing returns, though, and F1 processors really are just as capable of giving you a great flying miniquad as F3 processors. When given a choice between the two, you should get an F3, but I wouldn’t pay more than $10 for an F3.
What Gyro is mounted on the FC and how it is connected to the processor is probably the most important performance-oriented aspect of the flight controller. The trick for optimal performance is to get as many accurate gyro readings as quickly as possible so that the flight controller has the maximum amount of data to base its computations on. The fastest readings are accomplished by Gyros which are connected to the processor via SPI and are capable of an 8Hz update rate.
Almost every Gyro used in miniquad flight controllers are made by the company Invensense. Invensense has several different variants of gyros, most of which are represented in different FCs on the market. Most of the time you shouldn’t be too concerned about what gyro is on your board. The one exception is possibly the MPU6500, which is notably found on the Naze Rev6 and the Luminier Lux boards. Many people have had noise issues with these gyros on some of the bleeding edge Betaflight software which causes their quadcopters to fly poorly. It does seem like mounting the flight controller with rubber dampeners can remediate this problem, though.
Onboard flash memory should be a must-have for anyone who is serious about racing or acro. This is because the Blackbox logging feature requires some sort of permanent memory to be useable, and flash is by far the most convenient. Blackbox is hands down the best way to tune the PIDs on your quadcopter. It is also extremely useful in getting help when starting out – often a blackbox log will allow experts to help you diagnose an issue almost immediately.
You do not need a lot of flash memory, just some. 1MB is a reasonable number, and will allow you to fly a couple of full sessions with Blackbox enabled at an 8K looptime. You can easily get by with less, too. More memory can be better, but I would not pay much for it.
There are currently 3 major types of connectors available on flight controllers on the market:
These are the simplest way to hook things to your flight controller. They are basically just holes in the board. You can either solder in pins so that you can connect peripherals with servo connectors or you can solder the wires directly into the holes. This type of connection is favored by many for it’s simplicity. They require some work as you need to do some soldering, but you have more options in how you actually make the connection. They are also very robust.
Since the SPRacing F3 came out, these have become more popular. They are a specialized set of connectors which plug into the side of the board. When you buy the board, the manufacturer will package in a set of connectors with loose wires with it. You can then solder these wires to your peripherals. They are great for peripherals which you can solder wires to, but they really suck when your peripheral already has a wire coming out of it or uses a crimped connector. In this case, you will end up needing to make a wire splice, which looks messy and adds a weak joint to the wire. The upside of these is they are very compact and they are super simple to disconnect from the FC board.
These showed up first in the KISS and Luminier Lux flight controllers. They are designed to have wires or pins soldered directly to them coming out of the side of the flight controller. In many ways they are a compromise between the JST-SH and the through hole types: they are very compact like JST-SH but are customizeable like the through holes and do not require you to make splices. The big downside of this style of connector is that the pad you solder to has a tendency to tear out when stressed, ruining the FC board.
UART is a communications protocol which allows you to connect external devices to your flight controller. These devices include RC receivers, OSDs, telemetry devices, GPS receivers and much more. They are also occupied by the USB port you connect to your computer on many flight controllers. F3 flight controllers have 1 more UART than F1 flight controllers.
If you want to have many peripherals, then this may be a deciding factor for you. For most people, only two UART ports are required: 1 for the RC receiver, and 1 for telemetry of some sort (either an OSD or FrSky telemetry).
Virtual COM Port
In order to free up extra UARTs (see above), some manufacturers opt to install a USB plug that is hooked into what is called a virtual COM port on the FC processor. This virtual COM port, or VCP, can make your life a living hell when trying to connect via a Windows PC, because no formal drivers have ever been written for it. There is a way to make it work, but it is difficult to follow and error prone. If you use Windows and don’t need the extra UART, it is probably best to steer clear of VCP boards.
RX Support (Spektrum/PWM/Serial Inverter)
Every flight controller will support every serial receiver (e.g. SBus, Spektrum Satellite, etc). However, if you want to plug your X4R-SB into some flight controllers, such as the Naze, you will need to first run them through an inverter. This is because the UART logic from FrSky is inverted from normal.
For this reason, many flight controllers come with an inverted UART for plugging in your serial RX. This means you can plug your X4R-SB directly into your flight controller.
If you are a Spektrum user, you may want to look for a flight controller that has a spectrum satellite socket, so that you can simply plug the satellite directly into the board with the stock connector.
Heres the deal with the boot button: Sometimes when you are flashing firmware updates to your flight controller, you will need to force it to go into bootloader mode first, for whatever reason. This is the first step when a normal flash doesn’t work. When you need to get the board in bootloader mode, you need to short two “boot” pads on the PCB together. Many flight controller manufacturers opt to just expose the pads and leave it to you to short them together with metal tweezers or something similar. This is a gigantic pain in the ass and needs to be a thing of the past. Many boards now have a button you can press that accomplishes the same thing. This is a great design, give these guys your money!
You may notice that I don’t deem any of the above factors as “gamebreaking”. This is because really, choosing a flight controller is all about preference. Most flight controllers do not perform any better than their competition – they just offer you convenience.
To further this theme, many of the FCs on the market package in features that would normally be incorporated on separate parts on your quadcopter, like PDBs or video transmitters.
PDB / Voltage Regulators
Many flight controllers will come with the voltage regulators needed to power the FC directly from battery voltage. This saves you from having to buy and mount a Polulu, going a long way to cleaning up your build.
Some flight controllers have built in OSD chips. On these controllers, one of the UARTs will be hooked up the OSD so that the FC computer can pass on flight data to the OSD chip. These are the way to go if you want to have an OSD but don’t want the rats nest of wires that normally comes with it.
The Singularity FC released in early 2016 packaged an FC with a robust VTX. The purported benefit of this, besides weight savings, is the ability to control the VTX channel and power output directly from your RC controller. Other flight controllers, like the SirinFPV have since added this as a feature as well.
This is something I’ve seen pop up on one or two boards recently that is really nice. It’s a programmable race transponder that frees you up from having to buy an external one (that saves $40-$50!). Generally they can be programmed from the FC.
Barometer / Compass
Many flight controllers are offered in two models, “Acro” and “Plus” (or normal). The “Acro” variant is normally cheaper. The difference between these two is generally that the “Plus” model will have a barometer and sometimes an onboard compass. The barometer will allow your FC to read accurate altitude information, while the compass will allow it to obtain a heading. This information can be useful if you are interested in making your quadcopter semi-autonomous, but if you are only interested in FPV flight, we recommend you save the $10.
On the Market
Following are some of the popular flight controllers on the market. At the bottom, we have a comparison table for the specs which includes a purchasing link.
My current favorite board. It’s most notable feature is the inclusion of an onboard OSD. What I really like about it though is that it pairs with the BeeRotor PDB to give you an all-inclusive flight stack, including 5V and 12V regulators, PDB, OSD, current sensor and FC with minimal mess of wires. More importantly, I am a HUGE fan of the connector layout. The accessory inputs are JSH-SH while the ESC outputs are through-holes – exactly what I want for a clean build.
CC3D (and Revo F4)
The standard F1 CC3D is probably the cheapest flight controller on the market because it’s open source design has allowed Chinese cloners to go to town on it. It can be found for as little as $12. It is a fairly basic controller but will get you in the air if you are trying to keep it cheap. The Revo F4 is another CC3D creation that is running the powerful F4 processor if you are looking to try out RaceFlight and be on the bleeding edge of FC development. This flight controller is particularly interesting because it has a 433MHz telemetry downlink built into the board that can be hooked up to one of the UARTs.
This is the flight controller put together by the guys who created the popular OSDoge OSD. Its unique feature is that it has PDB pads built into it, and powers the ESC and the FC from built in battery pads. This is a natural choice if you are trying to build a compact, single-board miniquad.
This is the offering from Flyduino, maker of KISS ESCs. It uses a closed-source fork of CleanFlight. It is popular because of its association with many pro pilots and because its configuration user interface is supposedly much simpler than CleanFlight. The hardware and software capabilities, however, are severely lacking. I would recommend against locking yourself into the KISS environment. That’s a discussion for another article, however.
This board has a funky H shape and edge-mounted connectors like the KISS. I think of all the flight controllers on the market, this one has my favorite pin layouts. This is also one of the few flight controllers on the market capable of the 8kHz gyro update rate, which you need to use the absolute best performance settings in Betaflight.
This was one of the first F3 flight controllers on the market, and was originally the suggested FC for the popular Alien frame, which gave a big boost to its popularity. Other than that it is a pretty run of the mill F3 board these days. Nothing wrong with that, of course.
This is the Grand-daddy of modern flight controllers for miniquads. It is currently on its 6th revision. It has a fairly basic through-hole connector architecture, spread around all of the sides of the board. Many do not like the 6th revision because it uses an “inferior” gyro. Instead, they suggest using the 5th revision, which can still be purchased from cloners like Banggood. Both revisions use an F1 chip.
RMRC Seriously Dodo
This is a fairly standard F3 controller akin to the SPRacing F3 pro board. Its claim to fame is all the cool accessories RMRC sells that you can easily apply to it, like a stackable OSDoge OSD, an SD recorder, or their neat PDB.
One of the few FCs on the market with a built in video transmitter. At $65, this is actually a pretty good deal when you consider a decent VTX will run you $30. By all reports, this FC is meticulously engineered and performs extremely well. I can’t help but think that the designers missed out on an excellent opportunity by not integrating an OSD as well.
If you want to stuff literally all the electronics on your quadcopter onto a single board, this is the FC to get. It packages a FC, OSD and VTX all in one. It also comes with an SD card slot for Blackbox, which I’m a huge fan of. I think this is a really cool concept and even at $119, it is a reasonable value considering you can pretty easily pay more than that for all three components.
This is the first “official” CleanFlight board. Purchasing this from reputable vendors actually sends money to the CleanFlight devs. Other than that, it is a basic board. It has no special features, but has all the basics, like onboard flash memory, an F3 processor and a decent gyro. It does use the JST-SH connectors which may or may not be a dealbreaker to you.
This is an F3 flight controller that is specifically constructed to be the main “brain” of Team Blacksheep’s “Powercube” stack. This is a neat concept that allows you to stack all of your electronics on top of each other for a relatively cheap bulk price and without having to do any major soldering or wiring. It works great if you like the concept of the Powercube.
XRacer F3 – Propwashed Best Value Pick
This board is our best value pick because it does everything a good FC should. It has a fantastic component layout allowing maximum performance 8kHz gyro reading. It has a giant blackbox memory chip onboard. It has a good pin layout with through-hole connections. It’s cheap and popular.
|FC||Price||Processor||Firmware||Gyro||Gyro Rate||Onboard Flash||VCP||Connector Type||Voltage Reg||Extras||Link|
|BeeRotor F3||$35||F3||Betaflight||MPU6050||4kHz||8MB||No||Through Hole & JST-SH||No||OSD||Here|
|CC3D Revo||$52||F4||Betaflight / Raceflight||MPU6000||4kHz||N/A||No||Through Hole & JST-SH||No||Telemetry||Here|
|KISS FC||$45||F3||KISS / Betaflight||MPU6050||4kHz||N/A||No||Edge||No||KISS Telemetry||Here|
|Luminier Lux||$45||F3||Betaflight / Raceflight||MPU6500||8kHz||N/A||Yes||Edge||No||N/A||Here|
|Motolabs Tornado||$39||F3||Betaflight||MPU6050||4kHz||256KB||Yes||Through Hole||No||N/A||Here|
|Naze32 Rev5||$19||F1||Betaflight||MPU6050||4kHz||N/A||No||Edge & Through Hole||No||N/A||Here|
|Naze32 Rev6||$22||F1||Betaflight||MPU6500||4kHz||2MB||No||Through Hole||No||N/A||Here|
|RMRC Seriously Dodo||$43||F3||Betaflight||MPU6050||4kHz||2MB||No||Through Hole||No||N/A||Here|
|SirinFPV||$120||F3||Betaflight||MPU6500||8kHz||SD Card||No||Through Hole||No||OSD / VTX / MicroSD||Here|
|SPRacing F3||$22||F3||Betaflight||MPU6050||8kHz||8MB||No||Through Hole & JST-SH||No||N/A||Here|
|TBS Colibri||$40||F3||Betaflight||MPU6500||4kHz||N/A||No||Through Hole & JST-SH||No||Powercube||Here|
|XRacer F3||$30||F3||Betaflight / Raceflight||MPU6050||8kHz||16MB||No||Through Hole||No||N/A||Here|
Extra parts: wiring and other odds and ends
For the most part, the flight controllers on this list will come with a ton of extra cables and pin headers for you to use on your build. However, certain components we feel are necessary for a clean build, servo extension cables for example, are likely not included. If you read our flight controller installation guide and wondered where we got some of the odds and ends to complete our build, this is the place for you!
Servo extension cables – great for tying components together. These cables will allow you to create all the wiring variations that you need to connect everything to your flight controller.
Pin headers – We love using pin headers rather that direct soldering or using the flight controller ports because it makes repairs and swapping out components a breeze. Most flight controllers will come with a healthy supply, however these are always useful to have on hand.
Like many of our articles, many of the links above are affiliate links. We urge you to shop around, but if you do decide to buy from the vendors above, we would really appreciate it. It doesn’t cost you a dime more, but it sends us a few cents every time a purchase is made. Thanks!