When choosing flight controllers, F1, F3 and F4 pop up all the time. These are the FC processors, and this article explains the difference and which one we should get.
Article created in Oct 2015, last updated in Oct 2016.
What do F1, F3 and F4 mean?
Basically, F1, F3 and F4 are the different series of the STM32 processor, this is the brain of your flight controller. There have been at least 10 series in the STM32 family, from more capable to less capable: F7, F4, F3, F2, F1, F0, L4, L1, L0, W.
Good examples of F1 flight controller would be the Naze32 and CC3D, and for the F3 boards we currently have the X-Racer, Motolab Tornado, Seriously Pro Racing F3, and the RMRC Dodo. Check out more info on flight controllers.
F4 Flight controllers are also getting more popular, such as the OpenPilot Revo, BrainFPV RE1, and DemonRC Soul.
Differences between F1 and F3 Flight Controllers
To summarize, the F3 has these advantages over F1:
- Similar clock speed on paper, but F3 has faster floating point calculation due to the dedicated floating point unit (FPU)
- 1 extra UART (3 vs 2), but F3 has dedicated port for USB, so when it’s connected to computer via USB, UART 1 doesn’t get occupied the same way as F1 FC, so in that sense the UART1 in F3 is more functional (3 vs 1), as we normally would try to avoid using UART1 on F1 boards for that reason
- Some newer F3 FC have better design/features than the old F1 FC
Processing Power (Speed)
F1 and F3 has the same maximum clock speed of 72 MHz, while that of the F4 is 180 Mhz.
Although the F1 and F3 has the same max speed, F3 does floating point calculations quicker thanks to the FPU (math co-processor). F3 can run significantly faster than F1 in floating point PID controllers such as FLOAT (aka Luxfloat). However there is no obvious performance gain when doing integer calculations, such as Rewrite (aka INTEGER in betaflight).
As many of your might already know, 2K looptime is pretty much the highest we can run on the Naze32 boards in Betaflight, which is synced to the gyro sampling rate (of 2Khz). It simply cannot go higher as the processor can’t keep up. (It can be pushed to 2.6KHz but it becomes unstable)
F3 boards can easily get up to 4K looptime on both Integer and float PID Controllers, even running many other CPU-intensive tasks, such as the accelerometer, LED strips, Soft-serial etc. But for the F1 boards, we previously needed to disable a lot of these features first in order to run just 2K.
Generally, depending on PID Controller, the number of serial ports used, the number of Aux channels, etc, we can achieve the following looptime (assuming ACC is disabled)
- F1’s mostly run between 2K-2.6K, if you get a $9 CC3D they run 4K/4K, CC3D-F3 can run 8K/8K
- F3’s mostly run 4K/2K but can run FLOAT (Luxfloat) PIDC
- F3’s with SPI Gyro Bus can run 8K/8K
- F4’s on Raceflight can run 8K/8K, if using the MPU6500 or 9250 Gyro (Sparky2/etc), they can run 32K/32K
All these FC can run ESC up to 32K ESC update rate at no extra penalty. Always check CPU usage via CLI command “status”, I prefer to stay under 30% CPU on BF, some get away with more.
Number of UARTs
Apart from processing power and looptime advantages, the F3 also provides additional hardware serials (UART).
On the F1 flight controllers such as the Naze32, we have only 2 UART’s. It gets quite annoying when you cannot run blackbox, SBUS and MinimOSD all at the same time, which could have been my usual setup. F3 boards have an extra UART which becomes handy.
Other advantages of common F3 FC
Most F3 boards have either an integrated 5V regulator, a few even have PDB integrated, which means the FC can be powered by LiPo directly.
F3 boards also have built-in hardware inversion on their UARTs, so there is no need to hack your X4R-SB receiver in order to run SBUS and SmartPort. F1 board doesn’t so requires additional hardware or hacks.
The F3 is almost pin-to-pin compatible with the STM32 F1-series, and someone commented on my blog recently, that he successfully replaced the F1 chip with a F3 on his CC3D, and running 125 looptime on it (thanks to the SPI Gyro BUS in CC3D)
Note that the processor does not have much to do with the size of flash data storage. It’s actually determined by a separate memory chip on the flight controller.
Differences Between F3 and F4
- F4 has much higher processing speed at 180MHz
- F4 FC’s normally have at least 3 UART’s sometimes even 4 depends on the actual board
- Pretty much all F4 FC’s have SPI Gyro BUS (to take advantage of the gyro sampling speed and faster looptime)
- Designs are better since most of the F4 are newer
- BrainFPV RE1 F4 FC has integrated OSD capability (OSD drawn by the main processor!)
- Majority of F4 FC’s are supported by both Betaflight and Raceflight
So, Should I Get F1, F3 or F4 FC?
You can get your multirotor in the air with F1 boards, they do the job just fine. However if you want to get better flight performance you would be better off getting an F3. Not to mention many features like soft-serial can use up lots of processing power. As Cleanflight and Betaflight continue to advance, F1 boards might miss out on future cool features due to the lack of processing capacity.
So really, the decision is down to F3 and F4.
If I was going to buy a new flight controller now, I would probably opt for a F4, because some of them have really good features and thought-out design. They are newer and they have learnt from previous F1 and F3 FC’s how to make a good board. They have a lot more processing capacity than F3 and more “future proof”.
However, it doesn’t mean F3 is dead. Some of the F3 boards are actually excellent, good performers with reliability, and have features that some F4 boards don’t have. Also we haven’t reached the limit of F3 yet in terms of coding.
I am even still using F1 on a couple of my mini quads, and they fly decent enough for me not to replace them. It all depends on what your budget is, what feature you need and what you are looking for.
As a matter of fact, by the end of 2016, F1 FC has disappeared from the top 10 in our group popular FC survey.