BLHeli is currently the most popular ESC (electronic speed controller) firmware currently used on quadcopters and other multirotors as it works realy well. However not as many people know about the OneShot mode which significantly improves the performance of your mini FPV quadcopter.
What Is BLHeli Oneshot?
Oneshot (OneShot125) is a special mode for ESC's running the BLheli firmware that allow your supported flight controller to communicate very quickly with your ESC, enabling your motors to react much faster than standard PWM communication protocols used on most ESC's.
What flight controllers can I use?
You can use any Flip32, or Naze boards running cleanflight with oneshot, some users have also reported this working with CC3D boards running cleanflight, however it has not been fully tested yet, so use with caution.
Baseflight firmware has also recently added support for oneshot if you prefer to use that firmware base.
What ESC's can use OneShot?
If your ESC has a recent firmware version of BLHeli (rev 13.0 or above) then you can use oneshot mode with them. An example of compatible ESC's are our BLHeli ESC range
How to enable oneshot125 in cleanflight?
To enable oneshot simply connect your cleanflight flight controller to your PC via USB, and one then the cleanflight GUI. On the configuration screen you can enable the oneshot125 feature.
Also enable active braking on your BLHeli ESC
Active breaking is not a specific oneshot feature, but rather a general BLHeli feature which will slow down your motors to help control your quadcopter, which does improve response of your drone.
This is done via the BLHeli suite, by chaning the PWM Frequency/Damped value to Damped Light as shown beow.
Technical explanation of OneShot
As you are flying, the flight controller reads the sensor data, and calculates the desired control action, this is known as the flight control loop. This process runs very quickly, but does take take (talking about over 500 times a second). When using regular PWM ESC's, When using a regular PWM ESC with your flight controller, the ESC itself as a loop time whcih will read the value it receives from the flight controller, and send a corresponding signal to the motors. However the timing of the loops might not always coincide exactly, resulting in your ESC waiting for a new command. While the ESC is waiting it will continue to send the last output the the motor. Because we are talking about such minute times (we are talking about 0.001 seconds or so), this is hardly noticeable for most quadcotpers. However in hte case of miniquads pilots who need the best response and performance the oneshot mode was introduced.
Oneshot firmware links the ESC directly to your flight controller. This means that as soon as your flight controller has completed the control loop, it will read the motor command immediately. OneShot mode also increases the motor output to 8kHz (about 125 microseconds) apposed to typical 1kHz motor outputs (1 miliseconds) with regular ESC'simage from ronco
As i mentioned before, most people will hardly notice the difference because at this speed, your ESC is sending new output commands to the motor before it can even complete a revolution. While technically this is better, in real life I could not notice any difference. Ultimately I feel that oneshot is just a feature gimmick for manufacturers to try sell more ESC's. Thais said, if you are running BLheli firmware on your ESC that would be perfect for everything especially if you enable active breaking.
Here is a great video showing the differences between enabling and disabling oneshot: