Perhaps the biggest new feature that comes with Betaflight 3.1 is support for DShot – the first standardized all-digital ESC communication protocol. In this article, we talk about why it is such a big deal and give step-by-step instructions for how to enable it on your miniquad.
What is DShot?
DShot is the digital replacement for all of the analog Flight Controller to ESC communication protocols: oneshot, oneshot125, oneshot42, multishot, etc. It was initially proposed by Felix from the KISS product line and subsequently adopted by the Betaflight and BLHeli_S development teams. Innovations like these is why standardization and collaboration in software development is so powerful.
Why is DShot better?
To understand this, you need to first understand how the old analog ESC protocols work: they send a pulse of electricity from the FC to the ESC every few microseconds. The amount of time the pulse lasts determines how much power is sent to the motor. This control scheme is subject to electrical noise and limitations on how accurate the timing of an electrical pulse can be measured. Going digital with DShot means that the flight controller will now send and exact throttle value to the ESCs as a digital number. This number will have a checksum so that the throttle values sent from the FC to the ESC can never be misinterpreted.
These improvements through DShot have several real-world implications for the pilot:
- DShot is precise. On older protocols, the throttle value received by the ESC might be off by 1 or 2 “ticks”. While this is only around .1% of a throttle step, fluctuations in these steps caused by analog inprecision can cause noticeable vibrations and other problems in flight.
- Throttle calibration is history. With DShot a throttle value of 0 sent from the flight controller will always be received as 0 by the ESC and the motor will always be off. Same with 100% throttle. The only thing that you might want to tune is the idle speed – but it’s not likely.
- ESC update rates are substantially increased. PWM-based analog communication is much slower than digital right from the get-go. Improvements on this front means your quadcopter can react even faster to flight deviations and can be tuned with higher P and D values than ever before.
- Control system noise is less important. One of the big reasons you need to run a ground wire from your FC to your ESCs is because the analog control signals were very susceptible to noise. DShot, which has a checksum mechanism built in, will practically never send the wrong throttle signal to the ESCs.
In summary, DShot will make your quadcopter easier to set-up, it will make it fly smoother and it will make it less likely to have in-flight problems.
What do I need to use DShot?
Unfortunately, DShot cannot work on all miniquads due to hardware restrictions. You’ll also need the latest BLHeli and Betaflight software.
If you are flying with an F3 or F4 flight controller and BLHeli_S or KISS 24A ESCs, chances are you can use DShot once you update to Betaflight 3.1. It’s a free performance improvement courtesy of our wonderful software development community in the hobby.
Before you rush to do the update – know that some flight controllers and ESCs do have issues with DShot. This is due to the hardware design of these boards and at this point it is not likely they will be fixed. An extensive list of Flight Controllers and ESCs that have been tested is being maintained at the Betaflight wiki – check out the bottom of this webpage. If your flight controller or ESC is not there, don’t panic – just know that you might have some issues.
Some people are reporting that you need to remove some capacitors on your ESC to be able to run the higher update rate DSHOTs, like DSHOT600. Unless you have a specific reason for wanting this high update rate, we strongly recommend you simply stick to DSHOT150 or DSHOT300 – there simply is not enough of a performance advantage to justify this effort in our opinion.
DShot support is included with the Betaflight 3.1 release – which can be found on their releases page. It also requires that you update all your BLHeli_S ESCs to version 16.5 or greater. This can also be found on the BLHeli releases page.
If you are upgrading to Betaflight 3.1 – check out our article on doing the upgrade.
How do I enable DShot?
As I mentioned earlier, getting DShot working is actually easier than getting oneshot125 or similar working. This is the real kicker with DShot – it makes your quad fly better and it’ll be the easiest ESC set-up process you’ve ever done to boot. Let’s dive right in:
- If you haven’t already, update your flight controller to Betaflight 3.1. If you are coming from Betaflight 3.0, make sure to back up your settings first. If you are coming from Betaflight 2.9.1 or earlier, we recommend you throw out all your old settings and re-configure your quad using our Betaflight 3.0 set-up guide – too much has changed in 3.0 to simply port your settings across and expect good results.
- If using BLHeli_S ESCs, update your ESC firmware to the latest available firmware. If you are using KISS, consult the forums for instructions on how to enable DShot on your ESCs.
- Connect to your FC using Betaflight configurator and go to the Configuration tab.
- Set “ESC/Motor Protocol” to “DSHOT150”. There are 3 DSHOT protocols – a higher number means a faster update rate. In our experience at this point all of the update rates fly identical so we kept ours at the lowest one. Some ESCs and FCs will not support higher update rates.
- Click “Save”.
That’s it – you’re done. No configuration of minimum throttle or command. No calibrating your ESCs. The next time you go out and fly, your ESCs will “just work” – and better than ever before!
If you are interested in digging into how DSHOT works a little further, Jay over at blck.mn wrote up an outstanding technical article, which can be found here. Similarly, if you want to read about more software configuration options for your quadcopter, check out our software setup guide here!