F1, F3, F4, G4, F7 and H7 are the different processors in FPV drone flight controllers. This article explains the differences between these MCU, the pro’s and con’s, which I hope it will help you decide what FC to get.
What are F1, F3, F4, G4, F7 and H7 in Flight Controllers?
There are currently 11 series of STM32 MCU, from faster to slower processing speed they are: H7, F7, G4, F4, F3, F2, F1, F0, L4, L1, L0.
|Processor (example chip)||Processor Speed||Flash Memory*||SRAM|
* This is the internal flash memory inside an STM32 processor chip, it’s used to store the flight controller firmware codes. Don’t get confused with the flash memory on the flight controller that is used for blackbox logging, which is a separate chip.
F0 is often used in BLHeli_32 ESC, however it’s too slow / has too little memory for flight controllers. I thought I would mention it anyway.
The first 32-bit flight controller ever used on a mini quad was the CC3D which had the F1 processor (F103). The other iconic F1 FC was the Naze32.
However F1 flight controllers are considered outdated as they are no longer supported by most firmware including Betaflight (since 2017) due to hardware limitations – low clock speed, not enough memory for storing the firmware, lack of floating-point acceleration hardware and UART’s.
F3 processors (F303) were first introduced to flight controllers in 2014. It’s more powerful than F103, and it was the obvious choice to replace F103 as they are pin-to-pin compatible. Some advanced users even replaced the F1 on their CC3D with an F3 chips for the better specs.
However, as the Betaflight firmware keeps growing, we ran out of resources on F3 processors eventually and support for F3 FC was dropped in 2019.
F4 flight controllers were introduced shortly after the F3, and quickly gained popularity due to its processing power advantage. Unfortunately, F4 FC don’t play well with Frsky receivers, as they don’t have build-in inverters, and so additional hardware (or DIY hacking) is required for Frsky SBUS, SmartPort and F.Port.
There are two main F4 variants used in FC – F405 and F411.
F405 is more powerful but bigger. You normally find this in 30x30mm flight controllers.
F411 is smaller in size and share the same architecture with F405. However it has lower CPU speed, fewer UART ports, and it’s cheaper. You normally find this in whoop style FC, 20x20mm or 16x16mm FC.
Although STM32 G4 chip is not the fastest, or has the largest memory, it’s the newest chip used in flight controllers, it even came later than the mighty H7. The first G4 flight controller is the KISS G4 flight controller made by Fettec, released in October 2021.
It’s a better replacement to the F3 and F4 MCU, even more useful as we are currently in a chip shortage. The G4 comes with a math accelerator for enhanced flight performance and has better power efficiency.
F7 FC is more powerful than F4 and they are slowly taking over the market. It has more than of processing power, RAM and flash memory for the current version of Betaflight. Plenty of UART ports, with built-in inverters for all UART’s which is user-friendly for Frsky receivers.
Just like F4, there are a few different variants for the F7 MCU.
STM32F745 is a common F7 processor in FC, very decent clock speed and memory, however it also has a pretty large package, so if there is a lot of feature you want to have on the FC, the F745 probably wouldn’t fit.
STM32F722 is a smaller F7 MCU but with less flash memory and RAM, still it’s enough for the current Betaflight. In fact the F722 is the most popular F7 chip in flight controllers as they are also cheaper than F745.
STM32F65 is the most powerful F7 processor used in FC, in almost every aspects. However it’s even bigger and more expensive than F745, therefore it’s not a very popular option.
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.
Seriously Pro Racing is the first to release a flight controller with H7 processor – the H7 EXTREME. It’s based on STM32H750 processor providing a 480MHz clock speed, compared to 216MHz of the F7.
However the higher clock speed doesn’t make a difference in flight performance as we speak. We still have room to grow with F4 and F7 flight controllers, it will certainly come in handy when we start doing 8KHz looptime with RPM filters alongside other calculation intensive features in the future.
However the SPR H7 Extreme uses the cheapest and smallest H7 chip – the STM32H750, which only has 128kB of flash memory (same as the F1). And that’s really not enough to store the current Betaflight codes. To work around this, they store the Betaflight code on external memory, i.e. on an SD card. The codes are then loaded to the RAM when it’s running (and so it doesn’t matter even when SD card falls out during flight).
To update Betaflight firmware, you will just update the firmware files on the SD card, no more flashing and so there won’t be any DFU driver issues anymore.
It’s still at its experimental phrase to me by the sound of it, and therefore I don’t recommend getting it just yet. Stick with F4 and F7 for now.
Differences between F1 and F3 Flight Controllers
To summarize, the F3 has the following advantages over F1:
- Similar clock speed on paper (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, and so you can run faster looptime on F3 than F1
- 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”
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 on 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 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 Max 8KHz on an F3
- F3 boards generally only have 3 UART’s, but some F4 FC’s offer up to 5
- Betaflight’s new feature “Dynamic Filter” is very labour intensive for a processor, giving the increased speed of the F4 another clear advantage
- F1 and F4 processors do not have built-in inversion like F3 and F7. Without additional hardware on the board, you’re required to do the inversion hack (getting uninverted signal) if you you want to run Frsky SBUS or Smart Port
Is faster Looptime better? Well that’s a whole different discussion. Check out this article about whether 32KHz looptime is better in terms of performance.
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
- F7 boards allow for more UART’s, all with built-in signal inversion capability. Considering all the peripherals that we can use nowadays – serial receiver, Betaflight OSD, SmartAudio, SmartPort Telemetry, GPS, Camera control etc, DJI OSD, Blackbox logging, more UART’s are always handy to have!
At some point, It was necessary to overclock F4 if you want to run 32KHz in Betaflight, while the F7 processor is fast enough to handle 32KHz without overclocking. That shows you how important that extra processing power could be.
Looptime is also limited by the type of gyro (IMU) and their maximum sampling rate. For example MPU6000 has a maximum sampling rate of can 8KHz. If you want to do 32KHz, you would have to use IMU with higher maximum sampling rate, such as the ICM-20602.
Some designers decided to put two different gyros in their F7 flight controllers. 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. This allows the pilot to choose whichever gyro they want to use.
So, which processor should I get?
The short answer, right now just go with F7 FC! Here are my FC recommendations.
Here is the long answer.
Sure, you can get your multirotor flying just fine with an older F1 board (with older firmware), but you will certainly get better performance and more features from a modern flight controller with update to firmware.
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 slower processors will miss out on all the cool features that the future holds.
Update (Jun 2017) – Betaflight has ended support for F1 boards due to lack of flash memory to store the firmware. Therefore you should avoid buying new F1 flight controllers if you care about running the latest Betaflight firmware.
Update (Feb 2019) – Betaflight developers announced to drop support for F3 FC in Betaflight 4.0 due to the lack of memory.
Yes, H7 is the latest and greatest, but in my opinion, it’s still a bit new to be considered seriously. I’d personally wait until a few more manufacturers start making it, and the Betaflight code is a bit more optimized for that platform first. So far there is really no real benefit of switching over to H7 just yet.
So really, the decision is now down to F4, G4 and F7, all are good options today, but in my opinion, the F7 has the following advantages:
- F7 can handle higher looptime than F4 when running Dynamic filter and RPM filter, and with other processing intensive features simultaneously
- In general, you will find more UART’s on an F7 than an F4 FC
- It doesn’t matter if you are not a Frsky user, but if you are, definitely get an F7 because all the UART’s support inverted signal like SBUS and SmartPort. It’s a lot easier to set these up than on F4
- F7 has more headroom for future firmware updates and improvements (more future proof)
|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
- Oct 2018 – updated my thoughts about F7 FC
- Feb 2019 – Betaflight Developers to drop support for F3 FC
- May 2019 – added info about H7 FC
- Aug 2020 – added info about the different F4 and F7 chip variants
- Jan 2022 – added info about G4