RaceFlight and MultiShot – New FC ESC Firmware

by Oscar

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).

Some of the links on this page are affiliate links. I receive a commission (at no extra cost to you) if you make a purchase after clicking on one of these affiliate links. This helps support the free content for the community on this website. Please read our Affiliate Link Policy for more information.

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 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.

RACEFLIGHT_configurator_chrome_app

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
  • AlienFlightF4
  • AlienWii F1/F3
  • BlueJayF4
  • 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.

cc3d-revo-revolution-f4-flight-controller-fc

Revo F4

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.

Raceflight Wiki;
https://github.com/rs2k/raceflight/wiki

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!

https://www.youtube.com/watch?v=-RzYDA14J00

Leave a Comment

By using this form, you agree with the storage and handling of your data by this website. Note that all comments are held for moderation before appearing.

20 comments

JustBill 26th February 2017 - 8:46 am

it doesn’t matter how fast the loop time is if you can’t use it with the receiver. Race flight doesn’t seem to work with the new spektrum telemetry receiver.

Reply
abangloe 29th July 2016 - 7:16 am

Hi oscar, any reference of SILABS F390 can be use for multishot?

Reply
Adriano 10th July 2016 - 4:39 pm

Hi oscar, i have 2 questions!
I mount on my 250
4 esc blheli DYS one shot 125 with last firmware 14.6
And the Fc emax skyline 32
The receiver uses the pwm signal

Can I ability the one shot 125 on my drone? I have read that the One-shot is not compatible with pwm on cc3d…

Can I mount multishot on my drone? If is yes how do? Ps if I try to lunch raceflight when click on connect the program goes in loop and Will not work

Thanks for support

Reply
Till 28th May 2016 - 2:36 pm

Hi Oscar,
do i have to have a F4 FC to use Multishot properly?

Reply
Oscar 1st June 2016 - 2:34 pm

It used to be the case, but not anymore… F3 and F1 can do it in betaflight, even the Naze32 can run Multishot apparently, i haven’t tried it myself though…

Reply
Mike 9th August 2016 - 5:38 am

Can a cc3d f1 using pwm receiver run multishot? , if not can it run oneshot125? (All on betaflight)

Reply
Teddy Uroskie 17th May 2016 - 6:04 pm

Has anyone flashed TBS Powercube ESCs with Multishot?

Reply
Gizmaye 27th April 2016 - 11:12 pm

Could I use Oneshot42 (Kiss FC) on a F390 ESC like XM30a?

Reply
Oscar 28th April 2016 - 12:15 pm

no, ONeshot42 is only available on KISS FC and KISS ESC.

Reply
Gizmaye 29th April 2016 - 9:19 am

Maybe with this new one… dys.hk/ProductShow.asp?ID=209

Reply
Honza 4th March 2016 - 3:42 pm

Hi Oscar,

and everyone

Does anyone know if storm 15A ESC is multishot?

helipal.com/storm-multirotor-15a-esc-3s-4s.html

Reply
Rafyel 29th February 2016 - 7:47 pm

Hi guys,

Where / How do I flash my LittleBee 30A ESC’s with MultiShot? I haven’t see a download or procedure.

Reply
Christian 30th August 2016 - 11:19 pm

rcgroups.com/forums/showthread.php?t=2540753

Reply
Dave 27th February 2016 - 12:36 pm

Hi Oscar,

can you tell me if the Multiiwiicopter Hero 32 FC running Naza hex is compatible with Race flight, i also have UBAD 30amp esc

Reply
giovanni 26th February 2016 - 11:02 am

Hi,
super nice article as usual… however, a small off topic question… but what about baseflight? it is more than 6 months since last update of the firmware… did they stop the development?

thanks

Reply
Oscar 7th March 2016 - 4:04 pm

yea currently there is no point using baseflight IMO it’s not being updated, just use Cleanflight.

Reply
Matas 25th February 2016 - 11:12 pm

Excelent writeup,
Learning new stuff every day.
Keep up the good work Oscar.

Reply
Mohammed 25th February 2016 - 8:19 pm

Does kiss 1.2 support multishot ??

Reply
lukim 26th February 2016 - 4:35 pm

No, only OneShot125.
New KISS are OneShot42 capable, but no multishot on KISS

Reply
Oscar 7th March 2016 - 2:38 pm

no… it doesn’t currently.

Reply