Updated April 2017 – Huge update to bring this guide up to date for 2017. Many FCs removed and added and a lot of the sections have been updated.
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 Wiib 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 the general consensus these days is that an F3 processor gives just as much performance as an F4 processor. F1 processors are starting to fall behind, and we recommend you stay away from them unless you are getting a heck of a deal.
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 or soft mounting your motors 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 usable, 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.
Many new flight controllers on the market also have a built in SD card port. I have tried them and have been tremendously unimpressed. The root of the problem is that the SD cards too easily become unseated and/or corrupted in crashes or just regular flight. They also cause the flight controller to operate in an inefficient way. I discuss this in more detail in my Betaflight F3 Flight Controller review.
Connectors refers to the options you have available for connecting accessories to your flight controller. At a bare minimum, you can expect to connect your ESCs and radio control receiver to the flight controller. Many flight controllers have a mixture of different connection options available for you to use. For example, the same output might be able to be connected with both a through-hole slot and a JST-SH connector. To learn more about connectors, including how to identify them and use them, check out our quadcopter connector guide.
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 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 flight controller in the process.
UART refers to a digital communications protocol which allows your flight controller to talk to external devices. These devices include RC receivers, OSDs, telemetry devices, GPS receivers and much more. A UART is also sometimes used to control the USB port you connect to your computer on many flight controllers. The UART count is largely determined by the type of processor you have (although other factors can come into play).
In general, F3 and F4 flight controllers have 3 UART ports while F1 flight controllers will only have 2.
If you want to have many peripherals, then this may be a deciding factor for you. Here are some important peripherals that use UARTS:
- Serial radio control receiver / Telemetry (pretty much required for all miniquads)
- OSD (Not including Betaflight OSD)
- VTX control
- Some race transponders
- External blackbox logger
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.
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.
On the other hand, 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.
Finally, if you are using a really old receiver that only has PWM outputs (one pin per radio control channel), you will want to make sure your flight controller supports this. Many do not.
A boot button is simply a button that you can hold down while powering your flight controller to force it into bootloader mode. In bootloader mode, the flight controller can receive a firmware update.
Here’s 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.
Others go one step further and become full-fledged PDBs. On these flight controllers, you will generally solder the ESC power leads directly to the flight controller. These are particularly nice because they can have electrical current sensors onboard. This means you will be able to see exactly how much of your battery has been consumed at any given time.
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.
Betaflight OSD is another option, released with the Betaflight 3.1 release in January 2017. Currently, only a few flight controllers support this feature, but if you are interested in an OSD you really owe it to yourself to check them out. We wrote up a guide on setting up the feature where you can find more information.
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!). When installed, this feature can be programmed directly from Betaflight. Even better – if your FC supports Betaflight OSD, you can program it right from your transmitter!
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.
Motor Speed Controllers
In the latest drive to simplicity and lightness, some manufacturers have taken it upon themselves to pack every piece of electronics you could conceivably want on a miniquad into the flight controller board. This includes the ESCs. On these flight controllers, the only wiring you have to do is for your radio control receiver and your motors – everything else is already built in and working. Right now, it is most common among micro-quadcopters like the Tiny Whoop or the QX90, but I have seen a few examples of it making it’s way into the bigger quadcopters.
Buyer beware though! These flight controllers will generally cost over $120 and if anything fails, you can expect to replace the entire thing.
On the Market
There are a lot of flight controllers on the market. In our experience, there are definitely some stinkers out there too. The following list of flight controllers are ones we have first or second hand experience with and can recommend. Furthermore, we think the controllers in the below list have features on par with what you should expect as of early 2017. There are certainly other good ones on the market – just make sure you do your research. At the bottom, we have a comparison table for the specs which includes a purchasing link.
Betaflight F3 Flight Controller
The first flight controller to bear the Betaflight name and logo. The claim to fame on this flight controller is that it supports every conceivable feature of Betaflight 3.1. We reviewed it here and found it to be one of the best flight controllers we’ve ever used – except for that pesky SD card.
This is a really well thought out, designed and manufacturered board made in the USA. It includes a ton of features and support for more advanced flight controller software that can be used in professional (non-racing drones). I’m a big fan of the design and layout – my one issue with the board is that it uses a gyro that is not typically found in the miniquad racer space. As Betaflight gets more and more optimized, most FC manufacturers are using the MPU6000 gyro since this seems to be the gyro that Betaflight was tuned for. The Bosch gyro found in the Brain RE1 is undoubtedly comparable technology, but you do run the risk of not getting every bit of performance out of your quadcopter if you run Betaflight with it.
This is the offering from Flyduino, maker of KISS ESCs. It uses closed-source software that will only run on this flight controller. 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.
Luminier Lux V2
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. Version 2 has all the standard bells and whistles you’d expect from a flight controller these days too – notably 5 UART ports, an SD card for Blackbox and a gyro hooked up with SPI. This is a really solid offering.
Omnibus F4 (DYS F4) – Propwashed Best Value Pick
This was one of the first flight controllers on the market to support Betaflight OSD and rocks a F4 processor – completely future-proofing it. Its flexibility and low price is what makes this our recommended pick. It is easily among the top three flight controllers on the market in terms of features and performance and costs half as much as many comparable ones. There are a ton of different variants on the market – make sure you shop around. We listed our two favorites above. We recommend you buy one that does not have an SD card port unless you specifically want that feature – see our review on the SD card feature above.
One of the few FCs on the market with a built in video transmitter. At $49, this is a fantastic deal when you consider a decent VTX will run you $30. By all reports, this FC is meticulously engineered and performs extremely well. The big shortfall of this ESC is lack of any OSD support. If the designers were able to pack a Betaflight OSD chip in this would be one of the best on the market.
XRacer F3 –
This board was our former best value pick and it was a real struggle to dethrone it. This is still a fantastic board and is getting even better as it goes down in price. The only real negative with this board is it doesn’t include Betaflight OSD – but if that doesn’t matter to you then by all means you should be considering it! 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||Connector Type||Voltage Reg||SD Card||Extras||Link|
|Betaflight F3 FC||$43||F3||Betaflight||MPU6000||8kHz||N/A||Edge & Through Hole||Yes||Yes||Betaflight OSD & PDB w/ Current Sensor||Here|
|Brain RE1||$65||F4||Betaflight / dRonin||Bosch BMI160||8kHz||128MB||Through Hole||No||No||Betaflight OSD & Infrared Racing Lights||Here|
|DYS F4||$38||F4||Betaflight||MPU6000||8kHz||8MB||Edge & Through Hole||Yes||No||Betaflight OSD & PDB w/ Current Sensor||Here|
|KISS FC||$32||F3||KISS / Betaflight||MPU6050||4kHz||N/A||Edge||No||No||KISS Telemetry||Here|
|Luminier Lux V2||$37||F3||Betaflight||MPU6000||8kHz||N/A||Edge||No||Yes||N/A||Here|
|Omnibus F4||$25||F4||Betaflight||MPU6000||8kHz||128MB||Edge & Connectors||Yes||No||Betaflight OSD||Here|
|XRacer F3||$28||F3||Betaflight||MPU6000||8kHz||16MB||Through Hole||No||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!