Raceflight is a latest flight controller firmware. By taking advantage of the processing power of F4 flight controllers, it’s able to run at 8kHz and brings the looptime down to 125 (uS).
We will also talk about MultiShot ESC protocol which is 10 times faster than Oneshot125, 80 times faster than standard PWM signal!
This article is written by Justin Nishida and Oscar Liang.
For those who are new to the whole open source 32-bit flight controller and ESC firmware, might find these posts useful:
- What is F1, F3 and F4 Flight Controller
- What is Betaflight firmware
- What is Oneshot125
- Cleanflight VS Baseflight
What is Raceflight?
The Raceflight firmware and Multishot protocol were introduced by RS2K (RCGroups user). RF (Raceflight) is a fork (or branch) of BF (Betaflight), meaning it used the original BF code and was modified for the purpose of F4 flight controller targets.
Baseflight > Cleanflight > Betaflight > Raceflight
As for GUI, RF uses a modified version of Cleanflight configurator (Chrome App) for firmware flashing and settings changes.
It looks like RS2K’s goal is to have many of the RF features and improvements implemented into CF (Cleanflight). This is great news since CF isn’t quite ready to utilise the next generation hardware efficiently. BF is already pushing the limits of what our F1 and F3 FC’s are capable of, so it’s great to see that RF is testing the waters of what can be done with faster flight controllers.
Setting up Raceflight isn’t quite as simple as CF and BF, but once you have done it, it’s quite straight forward to use.
What is Multishot?
One of the great features of this firmware is the MultiShot protocol. It is the fastest alternative PWM signal protocol at the moment. In comparison, OneShot125 (125-250us) which was originally created by Flyduino, is 8 times faster than the standard PWM protocol. MultiShot (5-25us) is about 10x faster than Oneshot125 (OS125)!
Flyduino recently came out with a new protocol as well, called OneShot42 (OS42) which is 3 times faster than the original OS125, so it’s still not quite as fast as Multishot. Here a forum member covered a bit more about Oneshot42.
It’s worth mentioning that not all ESC’s can handle Multishot. Earlier tests were done with some F330 and Atmel based ESC’s, and weren’t able to run properly or were damaged. It seems that the F390 or new generation ESC’s may be the best fit for this firmware. That’s one of the reasons why the DYS XM20A (Silabs F390) has been the the centre of discussions recently over Littlebee 20A (Silabs F330).
Although there are people reportedly using Littlebee 20A and even other older generation hardware, make sure to research about compatibility before trying this out.
Why lower looptime and faster ESC protocol?
Lower looptime and faster ESC signal mean less latency in our system. Many people think these speeds are too fast for us to make good use of, since we are limited by how fast we can react to changes ourselves. Some even criticised this as a dead end, much effort is wasted in the pursuit of lower looptime number, and there is diminishing return of performance improvement.
From my understanding, currently in the algorithm all the filters and PID controllers are trying to predict what is going to happen next, based on past data from the sensors. Therefore we are relying heavily on a “good tune”, i.e. PID values and filter factors. And sometimes we spend way too much time worrying about PID and not have enough time to enjoy flying. :)
In theory, with lower delay in the system, the quad would be able to act more proactively based on the current sensor values, and PID would become less significant in a well performing multicopter.
Apart from stability performance, there is also control delay. For example, when you are flying and about to hit a tree, there will be some delay before you can steer the quad away from that tree. The delay comes from your FPV gear (since most of us fly FPV now), your radio system, as well as the quadcopter’s internal mechanism (e.g. FC and ESC).
It creates quite a large gap between the input command and the actual reaction of the quad, so I firmly believe that every bit of lag we can reduce, ultimately would allow us to have better control over our machines.
Development of Raceflight and Multishot
It was initially designed for use with F4 flight controllers but has now added support for F1 and F3 targets as well. At the moment, the supported flight controllers are:
- Afro Mini F1
- AlienWii F1/F3
- CC3D F1
- Colibri – TBS Powercube F3
- Naze32 F1
- Motolab Tornado F3
- Revo F4
- Revo Nano F4
- RMRC Dodo F3
- Sparky2 F4
- SPRacing F3
- VRCore F4 (this is as of RC7, other targets available in previous releases)
There are already talks about using 2-way communication between the FC and the ESC along with some other visions that RS2K has for Raceflight.
The best part of this project is that Dominic and Boris, as well as the usual open source gang are all helping to improve and perfect this firmware, so it is something definitely worth keep an eye on if you aren’t already following this.
The Raceflight project is looking promising even for F1 flight controllers, and it’s becoming another firmware option for performance. This is good news as all the work the developers are doing ultimately leads to better flying machines for everyone.
Should I choose Raceflight over Cleanflight or Betaflight?
At the end of the day it will come down to your preference, and what hardware you intend to run. What works for other people might not necessarily work for you and vice versa. A big part of the fun in this hobby, is the testing and trying out new/different things!
Be sure to share your experience with the community.
Oh and don’t forget, if you appreciate how well your multirotor flies, show your appreciation and donate to the open source community. Every dollar counts and allows them to be able to spend more sleepless nights making the hobby better everyday.
Multishot Fun Fact – Star Wars Start-up Melody
One last fun fact about MultiShot… It makes this epic Star Wars jingle at initialisation… I am completely sold just for that! haha… Thanks to Forrest for uploading that footage!