The Best BLHeli_32 Settings

by Oscar

Apart from tuning PID, you should also tune BLHeli settings on your ESC to achieve better flight performance with your FPV drone. In this article I will share my BLHeli_32 configurations that I use which give me the best results, and explain what they do.


So, What’s the Best BLHeli Settings?

If you don’t want to read the long article, here is the summary.

BLHeli_32 Recommendation

Here’s my recommendation right now:

  • 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, you can set LOW to 16KHz (or whatever is the lowest) and set HIGH to “by_RPM”, it lets the ESC decide what to use on the go to achieve optimal performance; Try this and 48KHz see which one works better for you
    • For racing, try 24KHz on both LOW and HIGH. If it causes vibrations, try 48KHz 
    • For 2″ or smaller drones like Tiny Whoops, use the highest possible value for both LOW and HIGH (e.g. 48KHz, 96KHz or even 128KHz)
  • Motor Timing: 16 deg for responsiveness, Auto for efficiency
  • Ramp-up Power: 40%
  • ESC Protocol: DShot600 for 8KHz PID Loop Frequency, DShot300 for 4K, DShot125 for 2K
  • If you have ESC desync, try to set Demag to High, high Motor Timing, lower Rampup Power

Blheli 32 Best Settings 2022 Pwm Frequency Rampup Power Motor Timing Blhelisuite32

Note that these settings are only available using BLHeli_32 ESC’s. Looking for new ESC’s? Here are the best ESC I’ve tested and recommend.

BLHeli_S Recommendations

You can flash your ESC to Bluejay (48KHz) firmware, that’s it. 48KHz is better for smoothness and efficiency especially for micro size drones. Some prefer 24KHz because it has slightly more torque and better for prop wash handling, but if you enable thrust linearization in Betaflight on it should make up some of that torque loss when using 48KHz, so you get the best of both worlds.

The original BLHeli_S firmware doesn’t support higher PWM frequency or bi-directional DShot. You need Bluejay firmware which is also required for various features in Betaflight such as RPM filter and Dynamic Idle.

Now let’s go into a bit more detail about what each setting really do.

PWM Frequency

Motors are driven by a PWM signal from the ESC, which is basically a voltage that turns on and off rapidly.

The “PWM Frequency” setting in BLHeli_32 changes how often the microcontroller (MCU) in the ESC sends updates to the MOSFET. This basically means how often the ESC drives the motor. Note that this “PWM Frequency” setting is entirely unrelated to ESC protocol, FC looptime or the PWM frequency setting in Betaflight.

When you increase the PWM frequency, the motors tend to run smoother and generate less noise, with an increase in efficiency (flight time) and a slight boost in maximum thrust and power. However the downside of higher PWM frequency is the decrease in braking power (just deceleration of the motor, acceleration unaffected) hence results in less responsiveness in flight.

The default value for PWM Frequency in BLHeli_32 is 24KHz. By raising it to 48KHz you should notice an improvement in the smoothness of your flight performance right away. It solves “mid throttle oscillations” in a lot of cases, some even claim their motors come down cooler as well as getting longer flight time thanks to the improved efficiency.

In Jan 2022, the most advanced ESC currently with F4 processors can run up to 128KHz PWM Frequency.

Why does higher PWM Frequency help reduce vibrations?

At lower PWM frequencies, there can be some aliasing/conflicts between the commutation rate and the PWM update rate.

Commutation rate is 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 RPM

This can result in some odd vibrations or roughness at certain throttle positions. Raising the PWM frequency to the FETs can move the harmonics where this happens outside the range of the commutation rate.

Downsides of Higher PWM Frequency

So why is the default PWM frequency at 24KHz, not higher such as 48KHz? Because there is no free lunch!

Running a higher PWM frequency gives you smoother flying experience at the expense of loss of braking power and responsiveness. Because of this, higher PWM could also reduce peak current draw slightly too, which isn’t necessarily a bad thing for the longevity of the ESC.

At higher PWM Frequency, the torque at low RPM can also be reduced slightly and so your low end throttle might feel softer and less responsive. It can also slightly weaken prop wash handling. When setting PWM frequency too high, the quad tends to be more susceptible to wobbles.

For racers and hardcore freestylers who want to have all the power and responsiveness available, might actually prefer lower PWM frequency such as 24KHz. 48KHz is a good balance between smoothness and responsiveness.

Even better, try Variable PWM Frequency as I explained below, it gives you the best of both worlds.

Variable PWM Frequency by Throttle Position

It makes sense to run maximum PWM frequency some of the times, but not all the times, this is why variable PWM frequency was introduced. This is a feature since BLHeli_32 version 32.8.0, it allows you to set a minimum and maximum PWM frequency, and the ESC linearly increases PWM frequency as throttle goes up.

blheli_32 setting, Variable PWM Frequency

This gives you the best of both worlds. When your throttle is low, it gives you higher torque and better stability. As you increase throttle it gives you better smoothness and efficiency. The range of PWM frequency allowed depends on your particular ESC. For example with the Tekko32 F3, the minimum and maximum are 48KHz and 96KHz, while some newer F4 ESC allows 24KHz to 128KHz.

You may want to retune PID after enabling this feature.

By setting both low and high to the same value basically disables it and you it becomes a fixed PWM frequency.

Variable PWM Frequency by RPM

Variable PWM Frequency by Throttle Position does not come without problems. First of all, there’s a possibility that the PWM frequency and RPM of the motors can create harmonics which leads to mid throttle oscillations and jello. And at high throttle, the high PWM frequency significantly reduces responsiveness of the drone which might not work well on some setups.

The new Variable PWM Frequency by RPM basically addresses these issues. It tracks the motor RPM so it stays well away from the problematic harmonics in the first place, while using the lowest possible RPM frequency in high throttle to ensure the best possible responsiveness.

Variable PWM Frequency by RPM is a new feature in BLHeli_32 since 32.8.3, probably one of the biggest improvements in ESC performance we have seen in a while, it really improves motor smoothness, torque and braking power.

However, “By RPM” is not necessarily better than “By Throttle Position“, it depends on whether you prefer smoothness and efficiency in high throttle over responsiveness. If you are getting some sort of unexplained mid throttle oscillations, then you might want to give “By RPM” a try.

To enable “By RPM“, you need to flash the latest 32.8.3 firmware (currently in beta and need to be downloaded in github), then simply set PWM Frequency Low to “16KHz” or “24KHz”, and set PWM frequency High to “By RPM”.

Here’s a github thread explaining how it works.

Motor Timing

The default Motor Timing in BLHeli_32 is “16 Deg”, which seems to work fine for the majority of builds.

Generally speaking, a higher motor timing is less likely to have “desync” issues, but it reduces both acceleration and braking of the motor, making your drone less responsive. Setting it lower at 8deg also has the same effect, 16deg seems to be the sweet spot.

For most builds, setting motor timing to “16 deg” is recommended. If you are after efficiency and flight time, “Auto” is the best setting.

ESC Protocol

DShot is a newer and more advanced ESC protocol, and I recommend it over Multishot for several reasons.

Regardless of the differences in performance, DShot is indeed more CPU intensive. This has been the reason for some to opt for Multishot, to allow more processing power to run the “ultimate” 32K/32K Gyro sampling and looptime.

Anyway, give both protocols a try if you want to experiment. Personally I feel very minimal difference in performance between the 2 protocols, but when using DShot:

  • I don’t have to worry about ESC calibration (calibration doesn’t do anything when running DShot)
  • I use ESC beacon which relies on DShot command
  • You need DShot in order to use ESC Telemetry
  • Betaflight 4.1 recommends DShot300 for RPM Filter when running 4K looptime, or DShot600 for 8K/8K

Demag Compensation

This setting can help reduce “desync”. Just leave the setting at default unless you have desync issues, otherwise change it to high. (what is ESC desync)

High power builds (e.g. 6S or hexacopters) that suffer from electrical noise may benefit from setting demag to High, but in most cases Medium is fine.

You might experience performance losses by setting it to high, as it’s basically backing down acceleration in order to reduce current spikes and noise.

Rampup Power

Rampup Power can be used to reduce current spikes due to the sudden increases in throttle by limiting the change of power, it can be helpful if you have ESC desync issue or excessive electrical noise in your build. It’s previously known as Startup Power in the older BLHeli.

If the motors are pushing close to the limit of your ESC’s, current spikes from punch-outs (sudden wide open throttle) could inflict damage, reducing Rampup Power can lessen this risk.

Leave it at default if you are unsure, but you can tune it and make your quad fly better, but note that setting it too low can lead to slower motor response, and too high can lead to noisier quad and hotter motors.

A slightly higher rampup power can benefit your drone as it pushes the motor harder when it’s trying to gain RPM (faster acceleration), giving you more responsive and powerful feel, but it doesn’t affect braking performance (deceleration). Note that higher rampup power can make your motors run hotter too, so you should keep an eye on motor temperature when increasing it.

If you are suffering from too much vibrations and there is no other solutions, you can try decreasing rampup power. Lowering it incrementally, until you notice a difference in performance, then back off. For most builds it’s hardly noticeable when you lower it to 20% (40% is the default).

On long range builds, you probably want to lower it by a reasonable amount for better efficiency if you don’t need all that motor responsiveness.

Current Protection

Current protection limits the amperage passing through the ESC. The purpose is similar to Rampup Power, but the Current Protection setting is more specific on current limit.

I recommend leaving this setting to off (default), unless you know what you are doing.

Potentially this can be used to protect your ESC from “burning” due to current spikes, crashing and desyncs. But as long as the current rating of your ESC meets the requirement, you shouldn’t need to worry about it.

Dead Time

Dead time in BLHeli is the time interval between each PWM pulse that the ESC will just shut off power to the coil. Dead time is to make sure there’s no overlap when trying to push current to the coil so it can get discharged before the next pulse.

If dead time is too short your motor will get really hot, however if it’s too long it reduces braking torque (especially in higher throttle level), results in less responsive performance.

How about the Rest of the Settings?

For mini quad? Just leave them at default :) A lot of these settings are for fixed wings and planes.

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

Leave a Comment

By using this form, you agree with the storage and handling of your data by this website. Note that all comments are held for moderation before appearing.


Frank 11th August 2022 - 5:29 am

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.

Oscar 11th August 2022 - 4:27 pm

You could use a PWM signal generator? these things only cost a few bucks.

Alain 28th May 2022 - 9:35 pm

Will theese settings be ok for kiss ultra fcfc

Oscar 29th May 2022 - 11:32 am

yes, these settings are independent of flight controller firmware.

Christopher Heiser 26th June 2021 - 9:55 pm

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!

chip cline 5th July 2021 - 4:49 am

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 needs to be around 50 percent..i use 8k 4k dshot300 with rpm filter on

Christopher Heiser 7th July 2021 - 1:12 am

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…

Mark 8th February 2022 - 11:31 pm

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

Carlo L Perez 21st January 2021 - 11:29 pm

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!

Frederic 8th November 2020 - 6:08 pm

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.

Tinic FPV 31st August 2020 - 9:32 am

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

LL 19th August 2020 - 12:56 am

Excellent info Oscar! I appreciate all the educational material you put in your site.

LEVIATHANN 28th June 2020 - 8:09 am

awesome dude, this made my new 6s racing rigs fly even smoother with 48khz and auto motor timing!

Phil 14th June 2020 - 8:04 pm

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!

Brendan 11th June 2020 - 7:40 pm

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

Justin Scholtemeyer 23rd May 2020 - 12:59 pm

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.

neo2001 9th May 2020 - 5:08 pm

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?

Oscar 3rd June 2020 - 12:31 am

play with it and decide for yourself.

Joao Fonseca 19th February 2020 - 7:53 pm


Can you help me choosing the most adequate settings for a fixed wing?
I have a BLHELI_32 ESC.

Thank you

Oscar 11th March 2020 - 8:32 pm

wings/planes won’t be affected by ESC settings as much as quads, just run default.

Martin 21st January 2020 - 1:49 am

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)

Alex 22nd May 2022 - 6:00 pm

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.

Andre 14th January 2020 - 10:56 am

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.

nordicblue 28th April 2019 - 7:43 pm

Another great read. Just set 48Khz and 22 and will test it out next weekend.

Nate 14th January 2019 - 10:43 pm

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

eme 25th November 2018 - 10:00 am

Set PWM to 48Khz solve my issue with this.

OrneryD 12th September 2018 - 4:15 pm

Opening up PWM speed to 48khz also creates more EMI. High voltage + fast switching on the Mosfets will turn them into eletromagnets.

Robert Leclercq 8th November 2018 - 1:49 am

Why come it flies better though? I have seen you say this all over town, but 48khz works fucking amazing for me.

Darren 5th August 2018 - 10:43 am

Does anyone know where to download the BLHeli_32 suite from? The mediafire site seems dead, and everywhere including links to that site.

karl 30th June 2018 - 11:23 pm

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.

Denver Valdez 9th June 2018 - 9:09 am

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.

Harald Schürz 28th July 2018 - 11:28 am

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.


Jerrod 3rd June 2018 - 8:43 pm

most importantly… Dshot makes turtle mode setup VERY FAST AND EASY!!!

David Burkhart 3rd June 2018 - 6:00 pm

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?

Paul 3rd June 2018 - 5:28 pm

Can you talk about the new Since wave modulation in the new BlHeli32 ? No one is talking about it.