Proshot is a new ESC protocol that encodes DShot using PWM pulses. In theory there might be some benefits in using Proshot over DShot. However whether or not it makes a noticeable difference and overweight the downsides, that’s another question.
Benefits and Downsides
Proshot is an ESC protocol that basically has the same features as DShot (same throttle resolution, frame structure, CRC etc), but with the following benefits:
- Less CPU utilization because it sends only 4 pulses per signal rather than 16 pulses each signal
- Easier for microcontrollers to read without DMA, allows a wider range of MCU to work
- The wider pulses allows Proshot to use filtering capacitor on the signal line to reduce noise
- Allow higher update rate than DShot thanks to the shorter signal width, but the downside is you can’t go too fast without removing the filtering capacitor again
Possible downsides and questions with Proshot:
- As we mentioned, the PWM pulses in ProShot would be more prone to noise, not to mention the increased number of pulse states. But since filtering caps are possible and recommended maybe it would make that up
- However, Proshot might not be suitable for high speed. Because it’s prone to noise and yet we can’t use filtering capacitor at high update rate (which might mess up the signal, that’s why we have to not use caps for DShot)
- Anyway, is faster ESC protocol than DShot really going to bring noticeable improvement to the performance of a quadcopter? And by the way, there is still room to make DShot faster (faster than DShot1200) if we want to… (DShot3600 has been tested by Felix from Flyduino) So is Proshot necessary or just a waste of time?
How does Proshot work?
Proshot is a generalization of DShot ESC protocol which encodes the 16-bit DShot signal into 4 PWM pulses, each pulse contains 4 bits of data. Therefore the overall packet can be made shorter and allows it to be transmitted at a faster rate.
Some argued that because it’s using PWM pulses it’s not strictly speaking a digital signal, but an analogue signal that is encoding digital values.
The author replied saying that since the PWM signal has a finite number of states (16 states to be exact to represent a hexadecimal digit), it is technically a digital signal similar to DShot, which has 2 states in each pulse. And ESC calibration wouldn’t be required just like DShot.
At the moment, this is just an interesting concept for a new ESC protocol, whether this will be made available depends largely on BLHeli and KISS developers (the main ESC devs). But that’s what I like about this hobby, we have some very talented people that are always having new, innovative ideas and willing to share with the community.
Video by the author explaining the idea behind Proshot.
What’s your thought on this idea?
Update (Aug 2017) – ProShot1000 landed in Betaflight
ProShot1000 appeared in Betaflight Configurator BF3.2 RC3, as an option in ESC protocol drop down box. But as far as I know there is no ESC on the market that support ProShot1000 yet, so I guess we are not just waiting for someone to write the code for it.
The number 1000 indicates the speed of the protocol, which is faster than DShot600 but slower than DShot1200.
Shouldn’t this have a big effect on the VTX feed in terms of noise introduction? Proshot1000 should have a cleaner feed from these findings?
Hey Felix, I do not think youn exactly accurate. Point being, proshot speed is needed, such as was dshot1200. I have experienced a big difference to me between dshot600 and dshot1200, it was not my choice to have dshot1200 removed, and I do not agree with betaflight in the reason to remove it, I do not agree there was not that much difference between the 2 protocols, there for sure was, and I noticed it. Dshot600 is fine, not for me, I find it a little to sluggish for my beefier drones, dshot600 is fine for stuff like tinyhawk, and other small little ladies, but when I get to my betafpv 85x and my cinepro 4k, dshot 1200 is what I want, now what my betafpv 85x I got it when dshot was still out and I love it, when I got the GepRC cinepro 4k it had 4.1.1 and I had 2 choices dshot600, and proshot. Neither is where I want to be, but proshot is seriously better than dshot600. Yes maybe we can go even faster with dshot, and should BetaFlight remove their heads from that dark hole and see the light maybe they will bring back dshot1200 or make an even faster dshot, till that day, we are left with proshot1000, obviously the choice and replacment for dshot1200.
Digital does not exist in nature. It is a man made concept that we do our best to implement using analog methods ;-)
Ingenious way to allow antique Blackout v2.0 quads running white Naze boards to keep running with the youngin’s ;)
as written in the RCG thread, i see absolutly no reason to support it with the KISS ESC’s as it has no adventages over Dshot if the ESC has a DMA and a HW input filter. it just is a bit weaker from the safety side. it can pass filter capacitors better, but the ST MCU’s have adjustable input noise filters that work eaven better then a simple RC filter. and they can be adjusted to work with every needed frequency.
from the speed side. we are at so high speeds ATM. where i dont think it makes sense to secrifice safty for more speed.. and as written, with dshot are also much higher speeds possible.
so i would say, it can be a good thing for older MCU’s with no internal filter and DMA, but it makes no sense if used with modern once.
Thanks for the great insight Felix.