When choosing flight controllers, the term “F1”, “F3”, “F4” and “F7” pop up all the time. These are currently the most common types of processor used in flight controllers. In this article we will look closely at each, explain the differences between them and help you decide which best suits your needs.
Index of Content
- What are F1, F3, F4 and F7 in FC?
- F1 vs F3
- F3 vs F4
- F7 vs F3/F4
- Which should you get?
- What happened to F2, F5 and F6?
What are F1, F3, F4 and F7 in Flight Controllers?
F1, F3, F4 and F7 are the different STM32 processors, or Microcontroller units (MCU), used in a flight controller (FC). This STM32 processor is the brain of a flight controller, similar to the CPU in a computer. There are currently 10 series of STM32 MCU, from faster to slower processing speed they are: H7, F7, F4, F3, F2, F1, F0, L4, L1, L0.
|Processor (example chip)||Processor Speed||no. of UART on FC||Flash Memory*|
* Flash memory in a STM32 processor is integrated inside the chip, and it’s used to store the flight controller firmware codes. Don’t get confused with the flash memory that is used for blackbox logging, which is a separate chip on the flight controller.
The first 32-bit flight controller ever used on a mini quad was the CC3D which had the F1 processor.
The F1 FC has the the lowest processing power of the four, and it’s now considered outdated since the announcement that Betaflight will soon end support for F1 due to it’s hardware limitations.
F4 flight controllers were introduced shortly after the F3.
As flight controller firmware development goes on, the F3 is struggling to handle all the processing intensive features without lowering looptime.
F4 processors are gaining popularity in flight controllers due to the advantages in additional processing power, and they can be found on many new FC’s on the market such as the Betaflight F4, DYS F4, Kakute F4, Matek F4 AIO, Raceflight Revolt and BrainFPV RE1.
F7 is a newer generation MCU. F7 FC’s are still very new to the market at the moment, there are only a handful of F7 flight controllers, for example the AnyFC F7 FC.
Fun Fact: ESC’s are moving from 8-bit to 32-bit processors too! STM32 F0 processors are currently used in many 32-bit ESC’s.
Differences between F1 and F3 Flight Controllers
To summarize, the F3 has the following advantages over F1:
- Similar clock speed on paper, but the F3 has additional hardware to improve its capability over the F1, namely the dedicated floating point unit (FPU) which allows faster floating point calculation
- F1 boards only have 2 UART’s compared to the 3 offered by an F3. In addition, and possibly more importantly, the F3 series provide a dedicated USB port. It was common for users of F1 boards to avoid connecting any peripherals to UART1 in order to retain this slot for PC connection. In reality this means that an F1 board has only 1 UART for additional hardware, whereas an F3 board can usually utilize all 3 UART’s for extra devices
- All UART’s on an F3 processor have native inversion, which means you can run SBUS and Smart Port directly without doing any “un-inversion hacks”
- Newer F3 FC’s provide more features than the old F1 boards, and they are generally better thought out with a design optimized for mini quad and often multirotor in general
Processing Power (Speed)
F1 and F3 processors have the same clock speed of 72MHz, however the F3 is better at handling floating point calculations thanks to the FPU (aka “math co-processor”). This allows an F3 to run floating point based PID controllers significantly faster than F1.
The highest looptime we can run in Betaflight with an F1 Naze32 board is 2KHz. The processor is simply incapable of calculating looptime faster than that. (It can be pushed to 2.6KHz but it becomes unstable)
F3 boards can get looptime up to 4KHz, even running other CPU-intensive tasks at the same time, such as the accelerometer (Acc), LED strips, Soft-serial, Dynamic Filter etc. An F3 can even run at 8KHz with Dynamic Filter disabled, however an F1 needed many of these common features to be sacrificed in order to run just 2K.
When People are talking about “8K/8K”, or “4K/4K”, they are referring to the looptime, and Gyro sampling rate.
- F1’s mostly run between 2K-2.6K, if you get a CC3D they can run 4K/4K because of the SPI Gyro
- F3 and F4 with SPI Gyro Bus can run 8K/8K, but with i2C Gyro you can only do 4K/4K
- The ICM-20602 and MPU6500/9250 Gyro’s are capable of 32K sampling rate allowing an FC, such as the Revolt, to run 32K/32K
When you set a new looptime in your FC, always check CPU usage via CLI command “status”, the general concensus suggests it’s best to stay under 30% CPU usage in BF, though some boards might handle a bit more.
Number of UARTs
Apart from additional processing power and increased looptime, the F3 also offers more hardware serial ports (UART) all of which have built-in inverters.
F1 flight controllers, such as the Naze32, only have 2 UART’s which limits the number of supported external devices. It frustrating to be forced to choose to sacrifice blackbox, SBUS or MinimOSD, which I like to include on all my miniquads. F3 boards however, support the use of all 3.
Other advantages of common F3 FC
Most F3 boards these days, have an integrated 5V regulator, now it’s becoming more common to see an integrated PDB (power distribution board), which means the FC can be powered directly from your LiPo battery.
The F3 is almost pin-to-pin compatible with the STM32 F1-series, in fact someone commented on my blog, that he successfully replaced the F1 chip with an F3 on his CC3D, and is now running 8K looptime on it (thanks to the SPI Gyro used by this FC)
Note the size of flash data storage used for Blackbox logging doesn’t depend on the processor. It’s actually determined by a separate memory chip on the flight controller.
Differences Between F3 and F4
- The processing speed of the F4 processor is more than double that of the F1 and F3 (72MHz) at 180MHz, while it also commonly has a dedicated FPU which is what gives the F3 the advantage over the F1
- It’s possible to run 32KHz Looptime on a F4 board compared to the 8K max from an F3; Since Betaflight encourage users to run 8K looptime on the F4 as the max looptime even though it can go higher, there is more processing power left over to devote to extra features
Looptime is a whole different discussion. Check out this article about whether 32KHz looptime is better in terms of performance.
- F3 boards are generally limited to 3 UART’s, but some F4 FC’s can offer as many as 5 to allow you to take full advantage of their extra processing power. With the recent introduction of serial controller FPV cameras, these extra serial ports give the F4 a definite advantage going forward
- Betaflight’s new feature “Dynamic Filter” is very labour intensive for a processor, giving the increased speed of the F4 another clear advantage
Majority of F4 FC’s are supported by both Betaflight and Raceflight firmware(The latest Raceflight One is now closed source and only support their own FC, the Revolt)
- F1 and F4 FC’s do not have the built-in inversion capability that we see on the F3 or F7 processors. If you want to run SBUS or Smart Port, you might be required to do the inversion hack (getting uninverted signal); F3 and F7 processors have built-in inverters on all UART‘s because they are newer generation MCU’s
Why F4 doesn’t work with SmartPort natively:
SmartPort is a half-duplex protocol, meaning the S.Port wire is bi-directional that data is sent and received in the same wire (though not at the same time, that’s why it’s only “half”).
F3 and F7 STM MCU can handle half-duplex protocol internally in the chip itself, so you can connect SmartPort directly to these flight controllers without any modification. But F4 doesn’t have this capability.
Although SmartPort is also inverted, F3 and F7 can invert the signal coming in or going out internally, so no problem there.
F4 does have the half-duplex capability too, but it doesn’t work with inverted signal without an external circuit that does inversion for it bidirectionally.
Benefits of F7 FC over F3 and F4
- F7 is a faster processor (216MHz vs 168MHz of F4)
- The F7 processor has superscalar pipeline and DSP capabilities – which means the F7 is a better platform for future flight firmware development, allowing the developers to further optimize the flight controller algorithms etc.
- F7 boards have more UART’s with built-in signal inversion, and with all the peripherals that we can use nowadays – SBUS, OSD, VTX SmartAudio, SmartPort Telemetry, GPS, Camera control etc. There are already many applications and there will only be more to come
The faster speed of the F7 processor can, theoretically support a faster looptime without overclocking, as is necessary to get F4 running at 32KHz. However looptime is also limited by the type of gyro (IMU) and their sampling rate. For example with MPU6000, the sampling can only reach 8KHz max, if you want to do 32KHz, you would have to use IMU with faster sampling rate, such as the ICM-20602.
There are some F7 flight controllers that have two IMU (gyros) in them. One is the proven, low noise gyro such as the MPU6000, and the other is a faster gyro that can do 32KHz such as the ICM-20602. For now, only one of the gyros is used depending on the requirements, perhaps in the future both gyros can be used simultaneously to achieve even better performance.
So, Should I Get F1, F3, F4 or F7 FC?
Sure, you can get your multirotor flying fine with an F1 board, but the improvements from F3 and F4 can give you better performance and allow you to run more resource intensive features.
We can anticipate technology moving toward faster processors, which will provide capacity for more exciting features and peripherals, and the capability to run more sophisticated filters and algorithms that can really make our quads amazing to fly!
As FC firmware continues to advance, the limited capacity of F1 boards will miss out on all the cool features that the future holds.
Update (Jun 2017) – F1 boards are running out of flash memory to store the FC firmware code, and Betaflight has decided to end support to F1 boards soon in the future. Therefore, avoid buying new F1 flight controllers if you care about running the latest FC firmware.
So really, the decision is now down to F3, F4 and F7.
Unless you use a gyro that is capable of 32KHz sampling rate to allow your F7 to run at 32KHz looptime, the main benefit is just more UART ports available (8 to 10). It’s not that big of an advantage in terms of flight performance, but it’s more future-proof. In my opinion, F7 are best suited to applications where a lot of serial devices are required, if you use iNav firmware for example.
One downside with today’s F7 FC is that they use a bigger F7 chip (F745VG) which takes up a lot of physical space on the board, so there isn’t much room for other components and connections. Hopefully we will see smaller F7 variants (such as F722RE) used in the future. The F722RE chip has the same package as the F3/F4 chip used by many flight controllers, although the F745VG does have more flash memory and RAM for storing the firmware and code execution.
It will take some time for manufacturers to refine the hardware design, and for the firmware developers to figure out all the cool things they can do with the extra processing power and features, so there is no rush to get an F7 right now.
If I was going to buy a new flight controller today, I would probably opt for an F4, because these FC’s are generally packed with features, and have very well thought-out layouts with mature and user-friendly designs.
Here are our FC recommendations, and here is a full list of FC’s that I spent days gathering…
|I compiled the specifications of all FC’s for mini quad in this spreadsheet so you can compare them more closely.|
What happened to F2, F5 and F6?
The only STM32 chips we have seen used in flight controllers are F1, 3, 4 and 7, those who have a curious mind might wonder why they skipped F2, F5 and F6?
First of all, the F2 is more like an older version of the F4 and as such does not have integrated signal inversion. This, in conjunction with the next-in-line F3’s faster calculation from the built-in “floating point unit” made it natural for developers to just skip F2.
STM32 F5 and F6 simply do not exist.
- Oct 2015 – Article created for F1 and F3
- Oct 2016 – Updated F4 info
- May 2017 – Updated F7 info
- Jun 2017 – updated news about “Betaflight will end support for the F1 FC”, and added a column for flash memory in the table thanks to Boris B.’s idea
- Aug 2017 – updated info about the missing F2, F5 and F6
- Oct 2017 – edited by Tom BD Bad, info about some F7 FC having 2 gyros