Dshot, testing a new digital parallel ESC throttle signal - RC Groups
Thread Tools
Oct 10, 2016, 04:33 AM
Registered User

Dshot, testing a new digital parallel ESC throttle signal


as some might have seen in the kiss24A thread, we are testing a new digital ESC throttle signal

i use the STM32's DMA (direct memory access) controller to let the PWM timers send a 16-bit digital signal to the ESC. on the ESC side (kiss24A) the signal gets also read using DMA. like this there is almost no extra MCU power needed on the FC or the ESC.

the protocol we use ATM. sends a 11-bit throttle value (2048 steps) and a 4-bit CRC to verify its correctness. there is also one bit used to request the telemetry from one ESC.

here a oscilloscope pic of how it lookes:

the signal is sent individually on each PWM pin. it uses 600k bit rate and takes 26,7ÁS for one transmission like this a theoretical max loop time of 33khz would bepossible (as there need to be a space between) but im almost sure we will never need that

advantages compared to the most used analog signals like PWM as also oneshot125 or 42 are:
- no signal jitter.. if the FC sends 1375 the ESC will receive 1375
- high resolution (2048steps)
- no oscillator drift (nomore calibrateing ESC's)
- more robust against spikes
- safer as every singnal has a CRC (cyclic redundancy check)
- maybe later some goodies like having the ESC's beep with the buzzer signal or things like that

another good thing is that a change from PWM or oneshot PWM to this will only require new software (at last for KISSFC+KISS24A users). as the same wires and pins are used.

i can't really tell if it will improve the flight feeling or not.. a good working oneshot125 is quite accurate and fast too. so the "real world"
improvement might be more things like that it dont drifts and will be saver..

i did all this in cooperation with borisb (betaflight) they have it working (14.10.16)(https://github.com/betaflight/betaflight/pull/1282)

Update: some more info to Dshot can be found in the folowing links

http://kiss.flyduino.net/dshot-new-d...ocol-for-kiss/ (for the KISS24A and the KISSFC)

some blog posts:

more technical infos from blckmn, he worked since the start on the betaflight Dshot support:

mor generell:

also if you like to try it:
be aware that it is not much tested! and we might change the protocoll untill the final release so there is no guarantee that the ESC FW will work with later versions of the FC's Dshot version.
i attached a GUI as we currently often change things during dev. the attached version will work with the Dshot FC FW.
the ESC FW can only be flashed onto the KISSESC bootloader using the GUI or my little standalone chrome app(kiss24A FW version 1.02 or later)
also just try it on your own risk!
of course every report will help

quadmovr successful flown it
warpquad230 f60 2450kv 5x4x3 dps hqprop kiss esc 24a kiss fc dshot 4s1550 75c (2 min 36 sec)

i will update this post when we have news .



Update, and clean up from previous updates

T10 is now close to how it should be (the T10 ESC FW has no functional changes to T91 just the settings and beep is new).
the working GUI for the KISS FC T10 FW is still the attached T8 GUI

what do we have ATM (28.10.2016)

KISS24A ESC's (FW T10):
- PWM, Oneshot125, Oneshot42 and Dshot autodetect
- Dshot bitrate autodetect (100-1200khz)
- version T91 was tested succesfully (before we had some motor stops) (T10 is similar from the Dshot reading side)
- it now also accepts some settings and answers requests over Dshot:
request area is 1-47
the kiss24A uses 1-13 from it
1-5: beep (1= low freq. 5 = high freq.)
6: ESC info request (FW Version and SN sent over the tlm wire)
7: rotate in one direction
8: rotate in the other direction
9: 3d mode off
10: 3d mode on (3d mode dont workes with Dshot ATM)
11: ESC settings request (saved settings over the TLM wire) (planed but not there yet)
12: save Settings

if a setting or request value is sent, the motor must be standing still and the telemetry bit must also be 1.
critical things like rotation direction change, 3d mode on/off and save and reset, must be sent 10x in a row, and only take effect after save and reset.

- does Dshot150, Dshot300 and Dshot600 for the first four motor outputs
- the ESC version reading workes now with Dshot(T10)
- the FC can make the ESC's beep (will be used for buzzer/ beacon in future) now it just beeps _- _-- after gyro is calibrated removed in T10.1

also is working on the support for more targets..
(betaflight Dshot wiki https://github.com/betaflight/betafl...%20and%20Dshot)

workes now also with Dshot on the most BB2 ESC's
BLheli test Hex files: https://github.com/bitdump/BLHeli/tr...eli_S%20SiLabs

overall does all of this needs much more testing to find problems that might remain. at this point i want to thank all testers for risking their quads just to help developing this faster

but still, be very carefull when using these test versions.. this thread exists because things are not save for now.. only use it if you like to try new things and know that it might damage your stuff..

Update T10.4 and T10.7xx(FC FW only).
T10.4 seems to be stable from the Dshot side
T10.7xx is the same Dshot code as T10.4, but its filters are improved to work better with some quads.
for now the filters in 10.7xx dont seem to have any disadvantages so i would suggest to go with it

just for all that might cry now: why not using CAN BUS?
1. because the most low cost MCU's mostly used on ESC's dont have can
2. every ESC will need to have one additional tranceiver IC
3. to come to the same speed you would need to have CAN working at 2.4Mbit (4x600k).. eaven faster as you will have to send adresses
4. CAN is a serial network where you need ID's on every ESC
Last edited by juuuut; Dec 16, 2016 at 02:31 AM.
Sign up now
to remove ads between posts
Oct 10, 2016, 04:53 AM
Team WarpSquad
Good time to update my Kiss24 ESCs now. I give it try. Cant hurt to help with the development of new stuff.
Oct 10, 2016, 04:58 AM
Registered User
Boris B's Avatar
Epic finally going digital! Goodbye old analog communication

There are so many new options opening now with this form of communication.
Oct 10, 2016, 05:08 AM
Team Warpsquad
Final Glide's Avatar
Soooooo I can talk about it now?????
Oct 10, 2016, 05:23 AM
Registered User
Sweet. Now do the silabs Mcu used by blheli support DMA ?
Oct 10, 2016, 05:25 AM
Subscribe join the LEGION!
Originally Posted by Final Glide
Soooooo I can talk about it now?????
So thats why your ESCs sounded different...?

Can we update, or hold our pants...?
Oct 10, 2016, 05:53 AM
Registered User
Will this be compatible with blheli_s / F3 flight controllers eventually by any chance?
Oct 10, 2016, 06:09 AM
Registered User
Originally Posted by Final Glide
Soooooo I can talk about it now?????
for sure

Originally Posted by CoolD
Sweet. Now do the silabs Mcu used by blheli support DMA ?
i dont know much abaut these silabs MCU's .. their core is quite old .. but they seem to refresh them from time to time .. maybe they spend it a DMA

Originally Posted by DRONE LEGION
So thats why your ESCs sounded different...?

Can we update, or hold our pants...?
if you like to try new things and be ok with the risk of having a failure that is unknowen for now, feel free!

Originally Posted by Adamtfc
Will this be compatible with blheli_s / F3 flight controllers eventually by any chance?
F3 MCU's work for sure! but the DMA channels must fit to the PWM pins so there might be layouts that wont work well.

i cant tell if blheli will, or is able to support it...


Oct 10, 2016, 06:23 AM
Subscribe join the LEGION!
Pants on for now... ive been having too many failures lately!
Thanks for your reply and keep the ideas flowing...
Oct 10, 2016, 07:19 AM
Registered User
Kiss always on the front.

Thread Tools