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||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 chips are 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), followed by the iconic Naze32 which runs Baseflight.
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.
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 the F1, it allows faster looptime
- F1 boards normally only have 2 UART’s compared to the 3 offered by most F3 flight controllers. In addition, and possibly more importantly, the newer F3 boards provide a dedicated UART for the USB port (VCP). F1 users have to avoid connecting any peripherals to UART1 in order to retain this slot for PC connection. Effectively 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”
Some F3 chips are almost pin-to-pin compatible with the STM32 F1 chip used on most F1 FC, 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.
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.
The F411 used in FC normally has a smaller package but shares the same architecture with F405. However it has lower CPU speed, less flash memory and fewer UART ports, but it’s usually cheaper. You normally find this in whoop style FC, 20x20mm or 16x16mm FC.
- 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.
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.
- 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.
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.
H7 is the fastest processor listed here, offers a 480MHz clock speed, compared to F7’s 216MHz. Yet the higher clock speed doesn’t make a difference in flight performance currently. 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.
There are different H7 chip variants used in FC, Seriously Pro Racing is the first to release a flight controller with H7 processor – the H7 EXTREME. It’s based on STM32H750 processor – the cheapest and smallest H7 chip, with only 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 an interesting and unique concept.
So, which processor should I get?
Basically, all F4, F7, G4 and H7 flight controllers are fine with Betaflight, at least for the next year or two according to Betaflight developers. Here are my FC recommendations. However, absolutely avoid all F1 and F3 FC boards as they are no longer supported by Betaflight.
If the flight control firmware codes grow larger in the future, some processors will have an advantage as they have more flash memory (at least 1MB) such as STM32F405, STM32F745, STM32F765, STM32H743. Some F4 and F7 processors only have 512KB, such as STM32F411, STM32G491, STM32F722. These are perfectly okay for now and the foreseeable future, and I am sure managing memory space will be something Betaflight try to focus on and support them as long as they can. The lack of memory is why F1 and F3 FC’s have gone obsolete in 2017 and 2019 respectively.
Processor clock speed is actually not as important as it used to be in 2022. Running the fastest possible 32KHz PID loop frequency was all the hype back then, but now it seems the hobby has settled for 4KHz – 8KHz because our drones actually perform just as well if not better at the slower rate. The F4 processors can totally handle 4K, if you prefer 8K, then one of the F7 and H7 would be a better choice. But honestly, for me it’s very hard to tell the difference between 4K and 8K looptime in the air so in my opinion it really doesn’t matter that much.
The lower clock speed requirement is especially true as BMI270 gyro is becoming more popular in recent months. The BMI270 is currently cheaper and more widely available than other IMU. Although it’s slower – sampling rate is only 3.2KHz in Betaflight (so your PID loop frequency is limited up to 3.2KHz as well), performance is actually on par with the faster, tried and tested MPU6000.
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 software filters and algorithms that can really make our drone to fly amazingly. If you can afford an F7 or H7 flight controller, go for it, it would be more future proof for sure. But if you are tight on budget, the cheaper F4 would be totally fine right now.
The other thing to look out for when shopping for a flight controller, is the number of UART. FC that are designed for smaller drones like Tiny Whoops tend to have fewer UART (e.g. 2 or 3) due to the lack of space. Normal size FC normally have 5 or 6 UART, which should be enough for most people.
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.
STM32 Chip Naming Convention
STM32 chips have names like this: STM32F405RGT6 or STM32F745VGT6
Let’s break it down and see what those letters and numbers mean.
STM32 is a family of 32-bit microcontroller integrated circuits by STMicroelectronics.
L1, F4, F7, H7 etc, the letter indicates the type of the chip (or applications):
- L – low power
- F – foundation or high performance
- G – mainstream
- H – high performance
- W – wireless
The number indicates the core:
- 0 – Arm Cortex M0
- 1- Arm Cortex M3
- 2- Arm Cortex M3
- 3- Arm Cortex M4
- 4- Arm Cortex M4
- 7- Arm Cortex M7
The next two numbers indicate the line.
The next letter indicates the number of pins, for example:
- C – 48
- R – 64 or 66
- V – 100
The next number or letter is flash size, for example:
- B – 128KB
- C – 256KB
- E – 512KB
- G – 1MB
The next letter is package: H – BGA, T – LQFP, U – VFQFPN.
The next number is temperature range, 6 means -40 to 85℃.
- 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
- Sep 2022 – revised recommendations based on new hardware and software requirements
- Oct 2022 – added STM32 chip naming convention