RaceFlight and MultiShot – New FC ESC Firmware

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

19 thoughts on “RaceFlight and MultiShot – New FC ESC Firmware

  1. Adriano

    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
    1. Oscar Post author

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

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

  2. Honza

    Hi Oscar,

    and everyone

    Does anyone know if storm 15A ESC is multishot?

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

    Reply
  3. Dave

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

    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
    1. Oscar Post author

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

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

Are you Robot? *

I am moving all supports to this forum IntoFPV.com (at least for now)... So if you are looking for help, or want to help people, I strongly recommend joining this community. Feel free to share your projects, builds and knowledge too!