Oneshot125 is a new ESC protocol to replace standard PWM signal. In this post we will explain what Oneshot is, and the new BLheli feature – Active Braking (damping light) that improves throttle responsiveness.
What is ESC Protocol
An ESC protocol is used to communicate between FC (flight controller) and ESC (electronics speed controller), to control motor rotation speed. Originally this is based on servo position protocols, which is a PWM signal between the values of 1000ms and 2000ms (0% to 100% throttle). But PWM is a relatively slow protocol, and susceptible to jitter, and that’s why Oneshot125 is introduced.
For an overview of ESC protocols, check out this article.
What is Oneshot?
Oneshot125 is a faster ESC protocol created primarily for mini quad. When it was first created, the firmware developers decided to synced ESC signal to PID loop, making less susceptible to jitter. Also it uses shorter signal width, FC can talk to the ESC/motor much quicker, and therefore in theory your multirotor should perform better.
In order to run Oneshot125, you must have the feature enabled on your Flight controller, and install the latest BLHeli firmware on your ESC (which will detect the protocol automatically). In this post we will discuss why Oneshot is better than standard PWM, and how to enabled Oneshot125 on the ESCs. We will also discuss the benefits of Active Braking (Damping light).
Here is a tutorial how I flashed BLHeli firmware on my Blue Series ESCs, and have oneshot enabled. I also compared the performance against SimonK.
How does Oneshot improve your quadcopter performance?
Flight controller has a main control loop that calculates motor outputs according to the data from sensors. The motor output loop then pick up this value from the main loop and sends it to the ESC constantly. But the time it takes to complete a FC main control loop is not always the same.
The motor output PWM signal sends whatever value is available, if there is no new value it will just use the old one. If we are lucky, the ESC might pick up a new value from the FC it just produced. But sometimes a new value is not being picked up yet, maybe because the ESC is still writing the old one to the motor, then we consider this value we are writing an “OLD” value.
It’s not causing any major problem in reality with this approach as we have seen, because we are talking about only a few milliseconds difference here. But some people has come up with a “fix” for this.
Oneshot – The New Way
So the solution is to synchronize the main FC control loop with the motor output signal.
Firstly, Oneshot125 sets the motor output timer speed 8 times faster. The motor output signal is now much shorter (125us-250us) than the original PWM (1ms-2ms), this means it takes less time to send data to the ESC. The problem before as mentioned, was sometimes the value wouldn’t change on the ESC until half way through a control loop.
Secondly, it only sends “one shot” of the signal every flight controller loop, and it does this as soon as the Flight Controller has a new value for the ESC. (I am guessing maybe this why it’s called “oneshot” :) )
The ESC is now writing a new value to the motor, even before the FC is starting the next control loop, so we have faster FC and ESC Response. Pilots that have tested it reported P value can only be increased a little (not major improvement on PID gains), but the biggest change was to throttle response, faster change of motor speed and so on.
Check out this post for some simple explanation of Quadcopter PID.
How to Enable Oneshot on ESC
To have Oneshot enabled, you must ensure that your ESC are compatible with Oneshot125, and it’s updated to the new BLHeli firmware. FC also needs to be updated to the latest FC firmware that can support Oneshot.
Supported ESC and Firmware
ESCs that have BLHeli rev13.0 or newer version flashed supports Oneshot, and it will automatically detect Oneshot without additional configuration. I believe the latest SimonK now also supports Oneshot.
Supported Flight Controller boards / Firmware
All FC with that are compatible with the latest Cleanflight, Betaflight, Raceflight and KISS supports Oneshot now.
Enabling Oneshot in Cleanflight and Configuration
- To configure Oneshot, you must turn off any power to your ESCs.
- Configure your ESC for Oneshot mode (e.g. by soldering JP1 in the case of the KISS ESC).
- Connect a USB cable to your board, and connect using the Chrome GUI app.
- Go to the CLI tab, and type the following:
- Then you can safely power up your ESCs again.
Calibration Oneshot ESC
The process for calibrating oneshot ESCs is the same as any other ESC.
- Ensure your ESCs are disconnected from Lipo Battery
- Ensure propellers are taken off
- Connect the board to PC and go to Cleanflight configurator, the motor test tab.
- Check “TEST MOTOR”, and Set the all motor speed to maximum using the master slider.
- Now Connect LiPo battery to your ESCs. They will beep to indicate calibration mode.
- Drag the slider down quickly, so the motor speed is now zero. The ESCs will beep again to indicate the successful calibration.
- Disconnect and reconnect battery to your quadcopter, and verify that moving the motor slider makes your motors spin up normally at the same time.
Active Braking – Aka Damping Light in BLHeli
Active Braking is a feature in BLHeli firmware, many people enable this along with Oneshot125 to get more responsive result.
With damping light (Active braking) enabled, the ESC will actively reduce the motor speed faster as you lower your throttle. Without it the prop will only be slowed down passively by the air resistance. The result is more responsive throttle control and more agile performance, when this is disabled, the quad feels more “floaty”.
The negative effect of active braking is voltage spikes created during braking, which could be bad enough to give you bad video feed, or even fry the electronics in a mini quad. One easy fix is to install low ESR capacitors in the power or ESC.
Hydra showing the difference between normal PWM and Oneshot on a Oscilloscope.
More advance ESC protocols
There are now even more advanced ESC protocols on the market.