Flight Controllers
The flight controller (FC) is responsible for stabilising your aircraft in flight, for taking inputs from your receiver and telling the motor controller what to do to achieve those inputs, and for feeding information such as flight telemetry back to you.
If you started out as a freestyle FPV pilot like me, there's a non-zero chance that you don't really pay that much attention to your flight controller; you just want something that works, that's easy to work on, and won't get fragged on your first crash. Alternatively, if you've mainly been restricted to bind-and-fly systems or other pre-built quads, you might have been using a flight controller just because it's what came with your kit. Well, here's an absolute beginners guide to flight controllers, to help you learn a little more about the brain inside your quad.
Wings vs Quads
The main difference between wing flight controllers and quadcopter flight controllers is just what they're optimising for. Whilst it is sometimes possible to run a wing on a quadcopter flight controller, it's generally just going to make your life more difficult.
For example, a wing FC is likely to ship with iNav or ArduPilot, have more servo outputs, and expect to be paired with a power distribution board (PDB) and external individual ESCs. Whereas a quadcopter FC will likely ship with Betaflight, and is likely to be paired with something like a 4-in-1 ESC in a stack. Quad FCs also typically come with solder pads, whereas a wing may use plug connectors and headers.
A quick way to understand these differences is to take a look comparable FCs from the same manufacturer. For example Speedybee offer a quadcopter FC called the Speedybee F405 but also a fixed-wing equivalent called the Speedybee F405 Wing.
Stacks vs AIO
Quadcopter flight controllers can be further broken down into "Stacks" versus "All-in-One". A "stack" setup simply implies a standalone flight controller and separate ESC, typically a 4-in-1 (to control four motors from one board - as you'd expect with a quadcopter). Again, a good comparison here would be between the SpeedyBee F405 Stack and the Speedybee F405 AIO.
The term AIO simply implies that the FC and ESC are on one board. Although quadcopter FCs generally do include a BEC too (both stacks and AIO). That said, there are some AIO boards out there that combine multiple features onto a single board; for example the HDZero AIO5 includes the FC, ESC, VTX, RX, and a BEC.
The benefit of an AIO over multiple boards is pretty simple: a smaller footprint and generally lighter weight. You'll typically see these on everything from micro whoops up to some 3.5" quads. The benefit of stacks and separate boards is component choice, the ability to fix and replace individual components, and generally better performance. For example, that F405 AIO I linked earlier only supports 35-40A output from the ESC, whereas the stack equivalent will output 55A. Generally heat management is going to be easier with separate boards too.
Layout and Mounting
Of course a huge deciding factor when selecting a quadcopter FC is whether or not it will fit in your frame - and that's not only limited to the size difference between stacks and AIOs. There are also often "mini" versions of flight controllers. The difference is generally whether the mounting points are 30x30mm or 20x20mm. To see an example, you can compare the SpeedyBee F405 Stack and the F405 Mini stack. They are very similar stacks, except one fits on a 30x30 and one fits on a 20x20.
It's important not only to look at the choice between an AIO and a stack, and between a "full size" and a mini - but also just the general layout of the board and where you are planning on putting each component within your frame. That F405 mini is a lot smaller and therefore everything is a little more crammed in, so you'll need to be a little more skillful with a soldering iron to work on the smaller board. This can be even more important when looking at AIOs. When you add in the extra pads required to mount the motors and things such as heatsinks, everything can be pretty tight,
UARTs and Servos
Whilst you're thinking about physically where all of your components are going to go within your frame, it's also important to check that you have enough pads on your FC to fit everything. Whilst a basic freestyle quad may only require 2 UARTs (RX and VTX), the more you want to add the more you will need. For example, if you want to add a GPS then you'll need another UART. More complex builds with lots of sensors may require 5 or more. If you want to add a compass then you'll also need I2C pads, which are generally labelled as SDA and SCL.
If you're building a wing, the same goes for servos. How many control surfaces are you planning on having? Double check your chosen FC has enough outputs for them all.
VTX: BEC and OSD Chips
BEC are "Battery Eliminator Circuits" that steps down your high-voltage battery to a lower voltage more useful for certain components, such as your VTX. You'll need to make sure that your chosen FC has an appropriate BEC for your VTX that is both within the correct voltage range but that also can provide enough amps for your chosen components. For example, the DJI O4 Air Unit Pro requires 7.4 to 26.4V input. So if your FC only has 5V pads, it won't be able to power that VTX.
Additionally, if you're planning on running an Analogue VTX, you'll want to ensure that your FC has an OSD chip. Whilst the majority do, some like the T-Motor F7 HD do not. Although there is a "non-HD" version that does, but that FC only has a 5C/2A BEC so that one cannot run some digital VTX. In short, check your FC has enough pads for your VTX and that it can output the correct voltage for it - or you'll have to power it via an external BEC.
Extras: LEDs, Buzzers, and Nice-to-Haves
Whilst LEDs don't make your flying any better, they can look really cool. So if you're wanting LEDs you'll need to make sure your FC has pads for that, but also check how those pads are physically connected. For example, on the Speedybee F405 although there are four separate sets of pads (one on each corner) they are all connected together internally in parallel. This means you can't wire an LED strip into each of those pads and then have each pad display a different color - they have to all match. You can manually wire them in series to achieve this, but it's must less convenient.
Another thing you might want is a buzzer, so you'll likely need a "BZ-" and a "BZ+" pad. The majority of FCs support these, but I have seen a few where the buzzer is awkwardly on an external "expansion board". If you don't think you need a buzzer, you do. A ViFly Finder v2 is like 5 grams, and at some point you're going to be knee deep in tall grass wishing you fitted a buzzer.
One more "Nice to have", is Bluetooth or WiFi support with a companion mobile app, such as the Speedybee App. I don't use it very often but when your quad won't arm, or you want to make a quick change to the OSD or something it can be really great. Of course you can always connect with a laptop or a surface tablet or similar, but a mobile app is convenient.
Finally, there's lots of little quality of life things to consider, such as battery meters on the FC. Plugging your battery in and getting a quick LED readout to tell you that you've plugged in a half charged pack saves you the annoyance of getting ready to launch before you realise you're low battery!
Processors
Flight controllers typically advertise their processes type in their name. For example, the Speedybee F405 I keep mentioning has a STM32F405 processor. There are several common processor families, F4, F7, H7 - and you may come across a G4 processor too, although less commonly.
Common processors and their typical specification include:
Generally when deciding which flight controller you should get, you need to consider what your current requirements are and whether you'd like to "future proof" your builds for future versions of your firmware of choice and what they might require.
Today, the F405 is a safe default choice offering a "good enough" clock speed, good enough memory, and an okay number of UARTS for freestyle pilots running Betaflight. Whereas those with more interesting builds with many sensors, complex navigation, companion computer integration, etc, may wish to default to a more powerful processor such as the H743. Of course, there's nothing wrong with going up a step for the purposes of future proofing and future unplanned projects too.
You mention the SpeedyBee F405 series an awful lot in this post, are you getting paid or something?
Absolutely not, it's just a stack that I'm very familiar with and it just happens to be available as an FC, a stack, a mini, and a wing - which makes it useful for comparing as an example to absolute beginners. There are lots of other options available!