There are settings you can play with in BLHeli_32 to achieve better performance on your mini quad. In this article I want to share the settings in BLHeli_32 configurator that have given me the best result.
- PWM Frequency: 48KHz (max)
- Motor Timing: Auto
- ESC Protocol: DShot1200 and Multishot
Note that these settings are only available on BLHeli_32 ESC’s. Although they work for me, it doesn’t necessarily work for everyone, please try and compare.
Looking for new ESC’s? Here are the Best ESC I’ve tested and would recommend.
The default value for PWM Frequency in BLHeli_32 is 24KHz. By raising it to 48KHz should make a noticeable improvement in flight performance for most mini quad’s out there.
When you increase PWM frequency, the motors run smoother and tend to generate less noise. Some people even claim their motors come down cooler as well as getting longer flight time because of the higher efficiency.
Note that the PWM Frequency setting in BLHeli_32 is how often the ESC processor switches the FET’s (It all happens inside the ESC). It’s unrelated to looptime or the PWM frequency setting on the flight controller (Betaflight), which is how often the FC sends a motor output signal to the ESC’s.
Why does higher PWM Frequency help reduce vibrations?
At lower PWM frequencies, there can be some aliasing or conflict between the commutation rate (the time it takes to detect a zero crossing and switch through one feedback cycle, there are 6 commutations per one eRPM, so it is tied directly to RPMs) and the PWM update rate. This can result in some odd vibrations or roughness at certain throttle points. Raising the PWM frequency to the FETs can move the harmonics where this happens outside the range of the commutation rate.
Downside of Higher PWM Frequency
In general higher PWM rates create a smoother response though they can have some small loss of power (roughly around 2%). Because of that it can also sometimes reduce peak current draw a tiny bit too, which isn’t necessarily a bad thing.
The default Motor Timing in BLHeli_32 is 16. The default value seems to work just fine for the majority of builds. It’s been suggested setting it to Auto can give you better resolution and response at high throttle. However, I didn’t really notice much of a difference, or maybe I just haven’t spent enough time to test it.
Give it a try anyway and see if it’s any better or worse for you and let me know in the comment.
DShot is a newer and more advanced protocol, and it’s recommended over Multishot for several reasons. But the debate of whether DShot or Multishot is better is not over! I still occasionally get messages saying they can prove Multishot is better and DShot is more noisy or things like that.
Regardless the differences in performance, DShot is indeed more CPU intensive. This has been the reason for some to stay with Multishot to pursuit the “ultimate” 32K/32K Gyro sampling and looptime, while keeping CPU load at a reasonable level.
Anyway, give both a try if you want to experiment. Personally I am currently quite happy with DShot simply because:
- I don’t have to worry about ESC calibration
- I use ESC beacon which is DShot command
- You need DShot in order to use ESC Telemetry
- I only run 8K/8K
- I don’t really notice the differences in the air between DShot and Multishot