Anti-turtle and beeps! Some new dshot commands for blheli_s escs

with 17 Comments

Tired of crashing out early in a race and stuck upside down?  Too lazy to walk to your quad to flip it over?  I got a solution for you…


Dshot Commands

The best way to do the anti-turtle was to use Dshot commands (more info on dshot here: with no loss of throttle resolution (info in background).  Basically it is a digital protocol that left some spots to do commands. Unfortunately only Kiss ESCs have implemented some of the commands (I don’t have any kiss ESCs so I can verify this).  So I set out to modify blheli_s code to accept Dshot commands.  Currently there is support for reversing the motor direction and making the ESC beep at various tones.

Github repo with updated hex files here:


Reverse motor direction

Recently my pull request ( got accepted in to the master branch of betaflight.  I’ve been quite happy with how it works have done lots of testing flipping back over in the field.  To enable this the modeswitch “Disable 3d switch” is currently being used.


When this is enable it sends the dshot command to all the motors to tell them to all reverse directions.  This has to be done in the unarmed state.  Usually to flip over, I’ll flip the “disable 3d switch ” and wobble in the direction that I think will get me upright, flip over, disarm, unflip the switch, rearm and fly away.  With this switch flipped you could even take off upside down and fly around.



The other useful thing I added is to be able tell the ESCs to beep the motor (like on start up) when the beeper switch is flipped.  Say goodbye to using an actual beeper to find your quad.  All you have to do is add a beeper range on a switch and flip it when you want to find the quad.  I find it helpful to increase the beep strength in blheli configurator to hear it even when it is far away.







My first attempt at fixing this was to set the quad involved setting the ESCs and FC in 3d mode and adding an additional switch that would reverse the motors on demand.  There are various way you can do this, with the mixer on the transmitter or I had test coded up in betaflight to have a seperate mode switch to reverse.  This was great because you could fly 3d without center throttle and can switch 3d mode in the air.  I used the right momentary switch on my taranis.  There are 2 problems I ran into with this.  The 3d mode on the dev build or betaflight 3.2 seemed extra swimmy even when you were just using the positive range.  This may be a betaflight bug… 2nd problem is that you lose 1/2 your FC to esc resolution… which arguably may not really matter for most people (2048 to 1024 steps in dshot), but people hate to hear they are getting 1/2 of something.  

Example below:

17 Responses

  1. _flp
    | Reply


    Seriously cool – thanks for the ingenuity!

  2. Timothy Trowbridge
    | Reply

    What I personally love about a buzzer is the sounds it makes when it has initialized. I’m just soo used to those beeps, I’m very confused when they are not there 😀

    I guess those init beeps could also be made with dshot commands?

  3. FPVOtter
    | Reply

    Hey Bryce,

    thanks alot for integrating it to BLHeli_S code, and glad it get integrated into the new BetaFlight, congratulations on that!

    2 new very good functions!


  4. […] Source : Red Pine Labs […]

  5. Shane Wymore
    | Reply

    Nice work man!!!

  6. Simon Bradley
    | Reply


    Do I need to run 3.2 for this to work?

    • Bryce Johnson
      | Reply

      Yeah you’ll need use one the recent builds on the master branch (future 3.2)

      • Simon Bradley
        | Reply

        Ok thanks.

        How has 3.2 been for you? It randomly dropping out if the sky? Or seem ok?

        • Bryce Johnson
          | Reply

          Been flying solid for me!

  7. Flatric
    | Reply

    I’m a little confused, for the anti turtle mode betaflight 3.2 is enough or do I need your custom blheli version/just update my blheli version?
    Thanks for any help!

    • Bryce Johnson
      | Reply

      You’ll need a recent betaflight 3.2 build and blheli_s version version 16.66 or 16.67 that I released. It is now available from the chrome blheli configurator.

      • Flatric
        | Reply

        Ok thank you!
        Will they implement your changes in the official blheli_s versions or is there no chance for that? Doesn’t matter actually, will try it out anyway, just interested.

        • Bryce Johnson
          | Reply

          I should do a pull request so at least that have that option… just gotta find some time.

  8. Mike
    | Reply

    Really cool! My ESC is S_H_50, I can’t seem to find it in your repo. Will you be adding that to your repo?

    • Bryce Johnson
      | Reply

      I saw it is a newer layout then what is currently on the fork of the blheli_s that I used. Should be able to add it in, but might take a few days when I have time.

      • Mike
        | Reply

        That would be amazing! I just put together a brushless tiny whoop, and these features sounds great on a tiny whoop.

  9. AJ
    | Reply

    Great work on this! will it be possible to achieve this with blheli_32 escs? I am aware they are no longer open source so i guess its down to their devs?


Leave a Reply