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.
Table of Contents
BLHeli_32 Settings
I suggest the following BLHeli_32 settings for top-notch performance:
- PWM Frequency:
- For most builds, especially freestyle and cinematic, settings both LOW and HIGH to 48KHz is the safest option as it reduces noise getting to your gyro. You can get back some of the loss in motor torque by enabling Thrust Linearization in Betaflight later on.
- If you want the best motor performance, e.g. for racing, setting both LOW and HIGH to 24KHz offers the most motor responsiveness and torque, but this might not work well in all builds, you might get vibrations and jello in your video.
- For long range, set LOW to 24KHz (or 48Khz if 24 is unavailable) and set HIGH to “by_RPM” to let the ESC dynamically adapt during flight for optimal performance.
- For 2″ or smaller drones, like Tiny Whoops, 48KHz offers the best balance in terms of motor torque, noise performance and efficiency.
- Motor Timing: 24 deg
- Ramp-up Power: Set it to 30%
- 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
Keep in mind that these settings apply specifically to BLHeli_32 ESCs. If you’re in the market for new ESCs, check out my recommendations.
BLHeli_S Settings
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.
PWM Frequency
PWM (Pulse Width Modulation) frequency can be adjusted from 16kHz to 128kHz, affecting motor response and efficiency. Higher frequencies can improve efficiency but may reduce braking torque.
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, motor torque at low RPM can be decreased, potentially resulting in a softer and less responsive control feel. Prop wash handling might also be 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.
Motor Timing
Motor timing adjusts when the ESC sends an electrical pulse to activate the motor coils and drive the rotor. It ranges from 1° to 31°, with an auto setting available. Higher motor timing increases torque and motor heat, also reduces the likelihood of “desync” issues, while low timing limits motor torque, resulting in a less responsive drone.
Generally, 16° timing is ideal for long range cruising and efficiency, while 24° can be used for builds focus on power such as freestyle and racing. Higher settings don’t seem to provide much additional benefits. The “Auto” setting performs similarly to 16 deg setting.
ESC Protocol
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
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
Ramp-up power controls how quickly the ESC increases the power delivered to the motor as it accelerates. It’s previously known as Startup Power in older BLHeli versions, is a setting that can help reduce current spikes caused by sudden throttle increases. Setting this too low can cause motors to struggle, while too high can lead to overheating without additional torque benefits. 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.
For 3inch to 5inch drones, generally 20% to 30% is recommended to ensure reliable performance. Too low the motors would struggle to spin up and too high would cause motor overheat.
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
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.
Dead Time
In ESC firmware, dead time refers to the interval between each PWM pulse during which the ESC turns off power to the motor coil. We cannot turn one FET on at exactly the same time as turning the other off, because both turn-on and turn-off take time. This dead time ensures there is no overlap when pushing current to the coil, allowing it to discharge before the next pulse. Without this, a short circuit could occur, potentially damaging the FETs.
Dead time significantly impacts the overall performance of the ESC. A shorter dead time is generally desirable for better performance. However, if the dead time is set too short, your motor may overheat. Conversely, if it’s set too long, the braking torque can be reduced, resulting in less responsive performance. Finding the right balance is crucial to optimize your drone’s performance while maintaining safe motor temperatures.
The required dead time for an ESC depends on various factors, including the FETs themselves, the gate driver, auxiliary components, and the PCB layout. Because of these complexities, dead time is not a parameter that should be altered by ordinary users.
PWM frequency refers to the number of times the FETs switch on and off per second, and each on-off transition involves dead time. Dead time is the period during which the motor is not supplied with power and thus cannot generate torque. Therefore, higher PWM frequencies mean more time is spent without torque. This is why some quads may underperform with high PWM frequency at low throttle.
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.
Edit History
- 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
40 comments
Hello Brother, I need your suggestions and recommendations for my Cinebot30, What type of settings do you recommend to be able to fly freestyle & cinematic safely?
My Cinebot30 specifications:
– FC/ESC Mamba mk4 F740 AIO 40a blheli_32 128k (Wifi)
– Motor Axisflying 2004, 2650kv
– Naked Gopro Hero 8
– VTX O3
– Lipo tattu 6s 1200mah 150c
– Prop HQ 76mm x 3 blades
Thank you in advance, greeting from Indonesia.
Best regards,
– Rhambu Sakti –
Hi Oscar, I need you recommendation for the iflght4 inch longrange Copter. What kind of esc setup do you recommend? I fly sometimes with a 850mah lipo for Freestyle and the 3800mah lion for longerange. the motors are 3800kv xing2 1404. Thank you in advance. Bye, Sascha from Germany
I’d probably stick with 48KHz PWM Freq., and leave the rest of the settings similar to 5″.
I have a HGLRC Rekon7. I tried to tuned this drone and I have many problems of ossillations. I flashed the ESCs to bluejay and my question is, which are the best settings in Bhelli Blujay for a 7 inshes ?
Thank you very much for your help :)
When a 7inch has oscillations and tuning issues, it’s usually caused by the frame, or some other hardware and and have less to do with ESC firmware. Because larger quads are just harder to tune.
Bluejay doesn’t have a lot of settings you can change that affect flight performance, but you can try 24KHz and 48KHz and see which option gives you better performance. It requires reflashing the firmware when switching between these two options.
Hello, is it possible to have a configuration on the BL heli firmware to simply run the motor at a desired speed on startup without any link signal. I am trying to make a brushless motor behave like a brushed motor. Thank you.
You could use a PWM signal generator? these things only cost a few bucks.
Will theese settings be ok for kiss ultra fcfc
yes, these settings are independent of flight controller firmware.
Hi Oscar–thanks for this awesome article. Curious one for me: I have a new Roma F5 V2 with and F7 controller and BLHeli_32 ESC. When I run DSHOT300 and 4K PID the RPM is rock solid with 0.00% error. When I switch to DSHOT600 and 8K the error is a lot higher, often well over 1%. I updated to BF 4.2.9 and BLHeli_32 32.8 but the problem persists. I used all of the key settings from your tutorial but no avail. Can you think of a reason why things would go so wrong with DSHOT600? Thanks!
If you haven’t found the answer is because you can’t use 8 k 8k and dshot 600,even 8k 4k d shot 600 too high..i had same problem,uses too much computer usage..cli,type tasks enter..total needs to be around 50 percent..i use 8k 4k dshot300 with rpm filter on
Thank Chip, I appreciate the feedback. I’m seeing a lot of evidence that you’re right, it just flumoxes me that so many people run 8k/8k D600 and apparently don’t suffer the CPU overload issues…
Hey I just bought a digital diatone roma f5 v2 and was having terrible bounce back and oscillations if this is what you are trying to sort I flashed to bf 4.3 update to blheli_32.8 if not already mine was leaving default on esc and on betaflight the only things I changed was throttle idle to 6.5 and the master multipler when you put expert mode on and in the pids bottom slider called master multipler to 1.4 and it flys amazing now.
When putting the master multipler up it starts at 1 I would put it up at 0.20 per time and take it for a flight give it a good fly about then check motors and if to hot turn down there okay to have a bit of heat just as long as its not hard to touch if its the same as mine 1.4 is good. Hope that helps
I’m setting up a twin motor airplane for long range. I’m currently using TMotor 2208-1700KV motors with TMotor F35A Esc.
When spooling up (close to full throttle), the ESC resets itself and motor stops spinning. Based on what I’ve read in your tutorial this could be Desync??? Correct?
I’ve been trying to reprogram the ESC thru BLHeli 32. Even tjough it’s connected (signal) and with power, it gives me a message asking to connect power. Confused!
I have HIFIONRC F722 Pro V2 & 60A BLheli_32 3-6S 4in1 Brushless ESC Stack with BrotherHobby Avenger V3 2306.5 2000kv 6S.
bidirectionnal DSHOT makes the quad to flips at starts, so I gave up on it after many hours of trying stuff. But just by changing the motors setting to timing =20, frenquency=36 and betaflight 4.2 stock, except dmin =off, it now flies perfectly. And no noise in the video like at frequency=48.
Thanks for your Overview. I come back from time to time, just to doublecheck. I have a lot of problems with tuning betaflight 4.2 and hot motors on different builds (all 5inch, 1900kv 6S). So i tried to take out the power from the ESC and played around. I ended with Rampup 15%, Dmag to High, Timing 20, 48khz. I clearly give up a lot power, but not as much as i expected. With this i have a good base for tuning bf and having cool motors again. for freestyling and cinematics perfectly fine
Excellent info Oscar! I appreciate all the educational material you put in your site.
awesome dude, this made my new 6s racing rigs fly even smoother with 48khz and auto motor timing!
I had a really bad oscillations on my 5″. After setting 48kHz PWM and timing to auto its finally flying as it suppose to :) thanks a lot Oscar! Happy flying everyone!
Hi Oscar rhanks for all you do for the community-
I have a super light 4inch build 2204 3000kv motors with a 35amp stack. Running 5s with an 80% motor output. It flies amazing until i do a hard punchout. Im no where near my amperage limit for the esc. I habe my settings in blheli32 to auto timing- 48khz timing set to medium. Could you recommend something to help with the mild desync im getting. This quad is absolutely stellar as long as im under about 80% throttle.
Thanks again for any help
NB! Lots of people have been experiencing wobbles during low throttle using 48kHz PWM on a 5 inch. 48kHz reduces thrust at low RPM, which then wrecks the ability of the PID loop to maintain low throttle stability.
Most people and documentations talk about 24 or 48 kHz. But since the slider in the configurator allows for setting many values in between, I wonder if that’s something I want to do or not? For example what about a setting of 36 kHz?
play with it and decide for yourself.
Hello,
Can you help me choosing the most adequate settings for a fixed wing?
I have a BLHELI_32 ESC.
Thank you
wings/planes won’t be affected by ESC settings as much as quads, just run default.
Hi! Me and a friend of mine bought GEPRC Cinepro 4K as our first drones and we keep burning the 35A BLHeli_32 ESC’s when the drone gets stuck sideways or upside down…Could the current protection help us investing in this drone? (38$ everytime)
Hi! Did you find a solution? I have almost the same issue with GEPRC Rocket Plus with GEPRC F411 20A AIO. It burns out motors every time it stuck in the grace. I don’t understand what may cause it.
It flies better and the motors sound smoother with 48 KHz. That’s right, but there is more noise in the video signal. With 48 KHz I have lot more lines in the video feed. If I reduce the PWM to 36 KHz it still flies perfect, but the noise in the video is way better. So I agree with OrneryD at some point. There is definitely more video noise with 48 KHz.
Another great read. Just set 48Khz and 22 and will test it out next weekend.
I just updated my blheli to 32.6 with dshot protocols however flip over after crash is still not reversing motor direction. The motors dont spin at all
Set PWM to 48Khz solve my issue with this.
Opening up PWM speed to 48khz also creates more EMI. High voltage + fast switching on the Mosfets will turn them into eletromagnets.
Why come it flies better though? I have seen you say this all over town, but 48khz works fucking amazing for me.
Does anyone know where to download the BLHeli_32 suite from? The mediafire site seems dead, and everywhere including BLHeli32.com links to that site.
I’m running my first 32bit ESC. first few flights after set up went great. after selecting save and reboot while in the field my esc’s never came back online. when plugging into the 32bit blheli suite my four in one esc is recognized but fails to communicate. did my firmware get erased? how can i fix this? HGLRC F440 stack. Communicating with blheli suite using FC pass through.
I tried this and my quad was twitching like crazy. Motors got pretty warm from a short hover. I’m using pyrodrone f4 FC and Aikon AK32 4in1 esc.
I am having the same problem…the motors are super twitchy since i am using blheli_32 on my holybro tekko32.
Have you found a solution?
The FC i am using is the omnibus f4sd with dshot1200.
regards
most importantly… Dshot makes turtle mode setup VERY FAST AND EASY!!!
FLying DYS aria_32. When I engage turtle mode, then disengage it, the escs get stuck in the reverse direction. Anyone else ever have this problem?
Can you talk about the new Since wave modulation in the new BlHeli32 ? No one is talking about it.