DShot is a new communication protocol between flight controller (FC) and ESC, substitute to Oneshot and Multishot. DShot stands for Digital Shot.
The project is developed by Flyduino in collaboration with Betaflight. Many might be surprised by how fast things are moving forward: Multishot has only just been implemented and adopted by the mini quad FPV community, and now there is already a newer, better technology a few months later.
Learn about other existing ESC Protocols:
Advantage of DShot
Compared to Oneshot and Multishot, we are informed that DShot is better because:
- No More ESC Calibration Required (no oscillator drift)
- More Accurate ESC Signal, and more robust against electrical noise
- Higher Resolution of 2048 Steps, compared to others of 1000 steps
- Faster Than Oneshot
- Safer, every signal has cyclic redundancy check
So What is DShot, Really?
DShot is a digital protocol!
Standard PWM, Oneshot125, Oneshot42, and Multishot these are all analogue signals. They all rely on the length of the electrical pulse to determine the value being sent. Analog signals have potential issues with value accuracy because:
- Due to the possibly different speed of the oscillators in ESC’s and FC, the length of the pulse might not be measured accurately. This is also the reason why ESC calibration is required to sync the oscillators
- Electrical noise (voltage spikes) can corrupt analog data
With digital protocol, there won’t be any of these problems. It’s exciting to know that ESC calibration will no longer be necessary. Because of the nature of digital signal, which is one’s and zero’s, it will also be much more resistant to electrical noise.
How Fast is DShot?
Options: DShot600, DShot300, DShot150
There are 3 speed options with DShot, the numbers are indication how much data is sent per second.
- DShot600 – 600,000 bits/Sec
- DShot300 – 300,000 bits/Sec
- DShot150 – 150,000 bits/Sec
Firstly we need to know how many bits are in a data packet, then divide the speed of the protocol. A DShot data packet consists of a total of 16 bits: 11 bits for throttle value (211 = 2048 steps), 1 bit for telemetry request and 4 bit for CRC checksum (cyclic redundancy check).
For example DShot600 would have a frequency of 600,000/16 = 37500Hz = 37.5KHz, which means it will take about 26.7uS to send a single throttle value from FC to ESC.
I have done all the maths for you :) In comparison to the speed of Oneshot125, Oneshot42 and Multishot, we have the following table (assuming signal is at 100% throttle)
- Oneshot125 – 250 uS
- DShot150 – 106.7 uS
- Oneshot42 – 84 uS
- DShot300 – 53.3 uS
- DShot600 – 26.7 uS
- Multishot – 25 uS
The fast transmission speed of DShot will theoretically allow up to 33KHz FC Looptime. (Not as high as 37.5KHz because there needs to be some space between values). Although DShot600 is not quite as fast as Multishot, as long as it’s faster than FC looptime then it’s plenty enough :) With all other advantages we’ve discovered so far, it still out-weights that small speed difference.
What ESC Supports DShot?
Currently certain ESC’s that run BLHeli_S firmware will support DShot. Such as Cicada, Racerstar V2, Aikon SEFM, TBS 25A, Lumenier 30A, DYS XS30A, etc. However these ESC’s have speed restriction and only support up to DShot300, some can only run DShot150. According to Steffen Skaug (BLHeli Developer), future ESC’s that use EFM8BB21x chipset will be able to run DShot600.
DShot for BLHeli_S is being developed by BLHeli and Betaflight team, if you would like to know more such as known issues, full list of supported hardware etc, please check here.
KISS 24A ESC supports DShot with all 3 speed levels, available to choose from in their Chrome GUI configurator (even the highest speed – DShot600).
KISS 24A ESC’s use STM32 processors, our mini quad FC’s also use STM32 MCU‘s. Between these STM32 chips they have something called DMA controller (Direct Memory Access) that communicate directly between them. This allows faster DShot signal as it doesn’t use much additional processing resource that might cause delay.
Requirement For Flight Controller
Looks like only F3, F4 flight controllers can run DShot at the moment.
Here is a step by step tutorial setting up DShot on Betaflight.