Unlock the true potential of your FPV drone with the perfect BLHeli_32 settings. In this guide, I will share my tried-and-tested BLHeli configurations and explain the rationale behind each setting to help you understand their impact on your FPV drone’s flight performance.
I suggest the following BLHeli_32 settings for top-notch performance:
- PWM Frequency:
- Set both LOW and HIGH to 48KHz (you can make up some of the loss of torque by enabling Thrust Linearization in Betaflight later on).
- Alternatively, set LOW to 16KHz (or the lowest available) and HIGH to “by_RPM” to let the ESC dynamically adapt during flight for optimal performance; give both options a try to see which one works better.
- For drone racing, opt for 24KHz on both LOW and HIGH; if vibrations occur, switch to 48KHz on both.
- For 2″ or smaller drones, like Tiny Whoops, go for the highest possible values for both LOW and HIGH (e.g. 48KHz, 96KHz, or even 128KHz)
- Motor Timing: Choose 16 deg for quicker responsiveness, or Auto for better efficiency
- Ramp-up Power: Set it to 40%
- ESC Protocol: Use DShot600 for an 8KHz PID Loop Frequency, DShot300 for 4K, and DShot125 for 2K
- In case of ESC desync, set Demag to High, increase Motor Timing, and lower Ramp-up Power
The original BLHeli_S firmware lacks support for higher PWM frequencies and bi-directional DShot (which enables RPM filter and Dynamic Idle in Betaflight). To get the most out of your BLHeli_S ESCs, it’s recommended to flash them with a free 3rd party firmware called Bluejay, which gives you access to all these great features. Here’s is a tutorial on how to flash Bluejay: https://oscarliang.com/bluejay-blheli-s/
When flashing, you have to choose a frequency. I recommend 48KHz as it’s is ideal frequency for smoothness and efficiency, particularly in micro-sized drones. Some pilots prefer 24KHz for its slightly increased torque and better prop wash handling. However, enabling thrust linearization in Betaflight can help regain some of the lost torque while using 48KHz, providing a perfect balance.
Now, let’s dive a little deeper into the intricacies of each setting and how they impact your drone’s performance.
Motors are driven by a PWM signal sent from the ESC, which is essentially a rapidly switching voltage.
The “PWM Frequency” setting in BLHeli_32 adjusts the frequency at which the microcontroller (MCU) in the ESC updates the MOSFET. In other words, it determines how often the ESC drives the motor. It’s important to note that this “PWM Frequency” setting is entirely unrelated to the ESC protocol, flight controller (FC) loop time, or the PWM frequency setting in Betaflight.
Increasing the PWM frequency typically results in smoother-running motors that generate less noise, while also improving efficiency (flight time). The trade-off, however, is a reduction in braking power (only deceleration, acceleration is unaffected), which can lead to a less responsive flight experience.
The default PWM Frequency in BLHeli_32 is set to 24KHz. By increasing it to 48KHz, you should notice an immediate improvement in flight smoothness. This adjustment often resolves “mid-throttle oscillations,” and some pilots even report cooler-running motors and longer flight times due to enhanced efficiency.
As of January 2022, the most advanced ESCs equipped with F4 processors can run PWM Frequencies up to 128KHz.
How Higher PWM Frequency Reduces Vibrations
At lower PWM frequencies, aliasing or conflicts can occur between the commutation rate and the PWM update rate.
The commutation rate represents the time needed to detect a zero crossing and switch through one feedback cycle. There are six commutations per one electrical RPM (eRPM), which directly correlates with the motor’s RPM.
These conflicts can lead to unusual vibrations or roughness at specific throttle positions. By increasing the PWM frequency to the FETs (Field-Effect Transistors), the harmonics where these conflicts occur can be shifted outside the range of the commutation rate. This results in reduced vibrations and smoother motor performance at various throttle levels, enhancing the overall flight experience.
The Downsides of Higher PWM Frequency
With all these benefits of higher PWM Frequency, you may wonder why the default PWM frequency is set at 24KHz instead of 48KHz. Well, nothing comes without a trade-off!
Running a higher PWM frequency offers a smoother flying experience but sacrifices braking power and responsiveness. This compromise also slightly reduces the peak current draw, which, although not necessarily a negative aspect as it might actually improve the ESC’s longevity.
At higher PWM frequencies, torque at low RPM can be marginally decreased, potentially resulting in a softer and less responsive control feel at low throttle. Prop wash handling might also be slightly weakened, and setting the PWM frequency too high can make the quad more prone to wobbles.
Hardcore racers seeking maximum power and responsiveness may prefer lower PWM frequencies, such as 24KHz. However, 48KHz strikes a good balance between smoothness and responsiveness, might be more suitable for most people.
For the best of both worlds, consider trying variable PWM frequency, as explained in the next few sections.
Variable PWM Frequency by Throttle Position
The concept of variable PWM frequency offers an optimal solution for different throttle positions. Introduced in BLHeli_32 version 32.8.0, this feature allows you to set both minimum and maximum PWM frequencies. As the throttle increases, the ESC linearly raises the PWM frequency.
This approach combines the best of both worlds. At low throttle, you get higher torque and improved stability. As the throttle increases, you benefit from enhanced smoothness and efficiency. The range of PWM frequencies allowed depends on your specific ESC. For instance, the Tekko32 F3 allows a minimum and maximum of 48KHz and 96KHz, respectively, while some newer F4 ESCs support a range of 24KHz to 128KHz.
After enabling this feature, you might need to retune your PID settings in the flight controller software.
If you set both the low and high values to the same frequency, you effectively disable the variable PWM frequency, and it reverts to a fixed PWM frequency.
Variable PWM Frequency by RPM
While “Variable PWM frequency by throttle position” offers advantages, it isn’t without its challenges. Firstly, the combination of PWM frequency and motor RPM can create harmonics, leading to mid-throttle oscillations and jello. Secondly, at high throttle, the increased PWM frequency significantly reduces the drone’s responsiveness, which might not be ideal for certain setups.
Variable PWM frequency by RPM addresses these issues. By tracking motor RPM, it avoids problematic harmonics while utilizing the lowest possible RPM frequency at high throttle to ensure optimal responsiveness.
Introduced in BLHeli_32 version 32.8.3, variable PWM frequency by RPM significantly enhances ESC performance, motor smoothness, torque, and braking power. It’s important to note that “by RPM” isn’t necessarily superior to “by throttle position,” as the preference for smoothness and efficiency over responsiveness at high throttle varies among pilots. If you experience unexplained mid-throttle oscillations, give “by RPM” a try.
To enable this feature, flash 32.8.3 firmware (or newer). Then, set the PWM Frequency Low to “16KHz” or “24KHz” and the PWM Frequency High to “By RPM.”
You can find further explanation on how this feature works in this GitHub thread.
The default Motor Timing in BLHeli_32 is set to “16 Deg,” which works well for the majority of builds. Motor timing essentially controls the moment the ESC sends an electrical pulse to the motor coils to drive the motor.
In general, higher motor timing reduces the likelihood of “desync” issues but compromises acceleration and braking, resulting in a less responsive drone. Setting it lower at 8 deg produces similar effects. The 16-deg value seems to strike the ideal balance.
For most builds, it’s recommended to keep the motor timing at “16 deg.” However, if you prioritize efficiency and flight time, the “Auto” setting is your best option, as it allows the ESC to dynamically adjust motor timing based on the motor’s requirements.
DShot is a newer, more advanced ESC protocol, and I recommend it over Oneshot and Multishot for several reasons. While it’s true that DShot is more CPU-intensive, which may lead some to choose Multishot to allocate more processing power for running “ultimate” 32K/32K Gyro sampling and loop time (back in 2018 when 32KHz was all the hype back then), DShot offers several advantages:
- No need for ESC calibration
- ESC beacon support, motors double as beepers, which can be helpful for locating your drone after a crash.
- To use ESC telemetry, DShot is a requirement.
- DShot is the recommended ESC protocol by Betaflight developers: In Betaflight 4.4, it’s suggested to use DShot300 for 4K loop time, or DShot600 for 8K looptime.
Demag Compensation is a setting that can help reduce “desync” issues caused by your ESC. What is an ESC Desync: https://intofpv.com/t-what-is-esc-desync
It is recommended to leave this setting at its default value unless you experience desync issues. In such cases, you can change the setting to “High.”
High-power builds, such as 6S-powered drones or hexacopters, which may suffer from electrical noise, could benefit from setting Demag Compensation to “High.” However, for most setups, “Medium” should suffice.
It is important to note that setting Demag Compensation to “High” might result in some performance losses, as the setting essentially reduces acceleration to minimize current spikes and noise. Always consider your specific build and its requirements before adjusting the Demag Compensation setting.
Rampup Power, previously known as Startup Power in older BLHeli versions, is a setting that can help reduce current spikes caused by sudden throttle increases. By limiting the power change, it can be helpful in resolving ESC desync issues or excessive electrical noise in your build.
If your motors are pushing close to your ESC’s limits, current spikes from punch-outs (sudden wide-open throttle) could cause damage. Reducing Rampup Power can help mitigate this risk.
For those unsure about adjusting this setting, it’s best to leave it at its default value. However, fine-tuning Rampup Power can improve your quad’s flight performance. Be aware that setting it too low may result in slower motor response, while setting it too high can lead to a noisier quad and hotter motors.
A slightly higher Rampup Power can benefit your drone, as it pushes the motor harder when trying to gain RPM (faster acceleration), providing a more responsive and powerful feel. Note that this does not affect braking performance (deceleration). Keep in mind that higher Rampup Power can cause your motors to run hotter, so monitor motor temperature when increasing it.
If you’re experiencing excessive vibrations with no other solutions, consider decreasing Rampup Power incrementally until you notice a difference in performance, then back off slightly. In most builds, lowering it to 20% (from the default 40%) is hardly noticeable.
For long-range builds, you may want to reduce Rampup Power for better efficiency if motor responsiveness isn’t your highest priority.
Current Protection is a setting that limits the amperage passing through the ESC. Its purpose is similar to Rampup Power, but Current Protection specifically focuses on current limits.
Unless you know what you are doing, it’s best to leave Current Protection off (default).
In certain situations, Current Protection can be used to safeguard your ESC from “burning” due to current spikes, crashes, and desyncs. However, as long as the current rating of your ESC meets your drone’s requirements, you shouldn’t need to worry about enabling this setting.
In BLHeli, dead time refers to the interval between each PWM pulse during which the ESC turns off power to the motor coil. This dead time ensures there is no overlap when pushing current to the coil, allowing it to discharge before the next pulse.
If dead time is set too short, your motor may overheat. However, if it’s set too long, braking torque (particularly at higher throttle levels) can be reduced, resulting in less responsive performance. It’s crucial to find the right balance to optimize your drone’s performance while maintaining safe motor temperatures.
How about the Rest of the Settings?
For FPV drones, you can leave the remaining settings at their defaults. Many of these settings are tailored for fixed-wing aircraft and planes, so they won’t have a significant impact on the performance of your FPV drone. Focus on the settings we’ve discussed in this article to optimize your drone’s flight performance and efficiency.
- Jun 2018 – Article created
- Nov 2018 – Added Demag Compensation
- Feb 2019 – Updated Rampup Power and Current Protection
- Jan 2020 – Revised
- May 2021 – Added info regarding new feature, variable PWM Frequency by throttle
- Apr 2022 – Added info about variable PWM Frequency by RPM, and updated best settings thanks to Chris Rosser’s testing
- Mar 2022 – Article revised