Flash and Program BLHeli ESC via Cleanflight – Flight Controller

by Oscar
Published: Last Updated on

Do you know that you can now change settings on your ESC in BLHeliSuite, via your flight controller? That’s right, no complicated programming tool, USB linker or Arduino. All you need to do is just connect your flight controller, and you can flash firmware and change settings on your ESC!

Update (Jan 2018): BLHeli is the first generation firmware. It has been replaced by newer firmware such as BLHeli_S (2nd gen), and BLHeli_32 (3rd gen). If you are buying new ESC’s today, get those newer ESC’s instead.

This feature basically turns your FC into a ESC programming tool!

Well, as we speak, it still isn’t working yet on the latest Cleanflight v1.10, but it’s making its way there I believe. It’s already implemented in Betaflight firmware, so if you are running Boris’s Betaflight, then you can try it!

This features is awesome IMO, it really helps someone lazy like me. I no longer need to take my quad apart just to change some settings on ESC. It also means direct soldering of ESC on FC is now possible and no more headache :)

Requirement (dated 26/Oct/2015)

  • Running Betaflight on your FC
  • Running BLHeli already on your ESC (Not sure what the oldest version it supports, the oldest I tried was 14.0 )
  • BLHeli Bootloader installed on ESC (Important!). Firmware and bootloader is not the same thing.
  • Latest version of BLHeliSuite (I am using 14.1.0.3).

News and Updates

27 Oct – There are also reports of problem running this features on some F3 boards. However I cannot verify this as I have only tested this on Naze32 and it’s working perfectly.

28 Oct – Pass-through programming won’t work on a Tornado. The 5V buffers on the PWM outputs aren’t bidirectional. You’ll have to connect directly to the ESCs. BorisB said Seriously Pro Racing board (SPR F3) has issues with auto detecting the ESCs. He said you can connect to each ESC one at a time.

Here is a quick Demo how I use it.

How to Flash / Program ESC via Cleanflight in BLHeliSuite

My Setup: Naze32, Blueseries 20A ESC with BLHeli 14.0

Select Cleanflight Interface

First of all, in BLHeliSuite, select your choice of interface, with (Cleanflight) at the end of the option.

blhelisuite-esc-via-flight-controller-cleanflight-select-interface

Wrong Interface

Don’t worry if you chose the wrong one (whether Atmel or Silabs), you will be warned if you have selected the wrong interface.

blhelisuite-esc-via-flight-controller-cleanflight-wrong-interface

Connect and Read settings

Once you have chosen the correct interface, and the COM Port of your flight controller, click Connect, then Read Setup.

blhelisuite-esc-via-flight-controller-cleanflight-connect-fc-port-read-setup

Flash Latest BLHeli Firmware

Flashing firmware is the same as the usual way.

blhelisuite-esc-via-flight-controller-cleanflight-flash-blheli-firmware

ESC not in Sync with Master

You might see this message saying “Setup not in Sync with Master”. That basically means some of your ESCs have different settings.

Settings including PPM Min/Max and PWM Frequency/Damped and so on would trigger this warning. Difference in Motor Rotation setting would not trigger this warning.

blhelisuite-esc-via-flight-controller-cleanflight-not-in-sync-settings

You will also notice the number is grey colour when it’s not in sync, with a warning when hover over it.

blhelisuite-esc-via-flight-controller-cleanflight-not-in-sync-message-number-grey

Changing settings on a particular ESC

To change settings on a particular ESC, you first need to select it.

To select an ESC, you need to click on all the ESC except that one, when you do that, those ESC number would disappear. For example, when ESC number 1 2 and 4 disappear, number 3 will become blue and bold, that means it’s now selected.

It’s possible to configure multiple ESCs at the same time. The Blue bold number indicates the master, all other ESC will copy the master’s settings when Write Setup is pressed.

blhelisuite-esc-via-flight-controller-cleanflight-how-to-select-esc

Checking ESCs are in Sync

Okay once you have programmed all your ESCs, you want to do a finally check. There is a Check button on the bottom right.

And below shows you the All Okay message. And you should see all the ESCs are green and happy. (except ESC 1 is blue, because it’s the master ESC)

blhelisuite-esc-via-flight-controller-cleanflight-check-esc-in-sync-same-settings blhelisuite-esc-via-flight-controller-cleanflight-all-esc-in-sync-green-same-settings

Motor Tab in BLHeliSuite

You will also notice a motor tab in BLHeliSuite. I find it really handy as you can calibrate your ESC and test your motors right inside BLHeliSuite.

blhelisuite-esc-via-flight-controller-cleanflight-motor-tab-calibration-testing

Anything else?

I am also new to this, so please let me know if I have made a mistake or missed something.

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.

60 comments

Stefano 23rd March 2017 - 10:06 pm

Hi oscar, i have a naze32 and I had to blow the door 1 and 2 for connection reasons, so I started from 3 to 6 with my esc’s.. can do i move the channels via software? I have Blheli dys xm20A

Reply
Nicholas 31st January 2018 - 1:25 pm

yes you can move the motors to different pads on the board..
use the resource command in the command line tool
there is a youtube tutorial for from joshua bardwell

Reply
Naif 22nd June 2016 - 1:49 am

Hi, I have a problem … I tried to flash my ZTW Black Widow motors and now they dont work. Blheli suit says (( erased files and fail to flash))
What should I do now ?? please help :)

Reply
John 11th July 2016 - 7:17 pm

Did you ever find an answer to this? I’m having the same issue with multiple escs lately…

Reply
Chris 25th May 2016 - 7:57 pm

@ blaise he does mention that the Bootloader also needs installing, at the very top

Requirement (dated 26/Oct/2015)

Running Betaflight on your FC
Running BLHeli already on your ESC (Not sure what the oldest version it supports, the oldest I tried was 14.0 )
BLHeli Bootloader installed on ESC (Important!). Firmware and bootloader is not the same thing.
Latest version of BLHeliSuite (I am using 14.1.0.3).

Reply
charlie 2nd May 2016 - 7:56 am

Hi oscar,

Can i use this way to program m’y micro minium osd ?

Thank’s il advence

Reply
Oscar 3rd May 2016 - 12:38 pm

nope, only FTDI at the moment for minimOSD

Reply
Kane 8th April 2016 - 4:26 pm

Just tried this with Cleanflight 1.12.0 and it worked great.

thanks!

Reply
Hoggdoc 8th April 2016 - 4:25 pm

Oscar thanks for the great blog, so much to learn about this subject.

I have been looking for a OSX version of BLHeli Suite, but haven’t been able to find any. I am sure I’m not the only MAC user that is frustrated with the lack of support for our chosen computer platform.

Currently I use Apple’s BootCamp and and install of Window 7 Professional to do any adjustments to the BLHeli escs in use it works great. But, as you know this requires a reboot into the Bootcamp partition and the associated delays that go along with the. It seems that inasmuch as Cleanflight and Betaflight are supported cross-platform via Chrome Configurator, having a OSX version of BLHeli Suite seems like a no brainer. Maybe even a version for Linux should be considered too.

So if you have any influence with the BLHeli Suite developers maybe you can put a good word in for us Non-windows users.

Wayne (aka hoggdoc)

Reply
Joshua Dedeaux 7th April 2016 - 3:53 am

Hi Oscar
I am running a Naze32 Rev 6 with Xhover 25A esc that run ATMEL BLHeli and am trying to connect through cleanflight/betaflight. When attempting to connect get a connect to FlightCtrl failed message. I seen a couple videos showing the com port identifies when its pugged in, mine does not, it has the list of 1-99. Is the Rev 6 board still not working to flash your escs through cleanflight. Is there a way to determine what COM port short be used? Any information would be appreciated. thanks in advanced.

Reply
Oscar 12th April 2016 - 9:20 am

there is a version of Naze32 rev6 doesn’t work with pass through… have a search on intoFPV.com i think someone mentioned it there.. Also make sure you have the BLheli bootloader on you ESC’s.

Reply
Oliver Larsen 24th March 2016 - 3:40 pm

Hi Oscar,
I have been expericencing some troubles trying to flash my DYS SN20A ESC’s with the latest firmware. From factory they come shipped with BLHeli 14.0 so naturally i wanted to update them to 14.4. I am using cleanflight to do so and i have gotten the ESC’s to connect. I could read the settings and see that they were all on 14.0 and i could also see that one ESC was out of sync. As soon as i try to use the flash firmware feature I am met with an error. “Error writing to the flash”, when clicking OK you get “Failed to write to Flash! (“Write failed” error)” and then finally “ESC#3: Flash FAILED. DYS_SN20A (Multi) BLHeli Rev: 14.4.
And now when you check the ESC status it says **FLASH*FAILED** instead of the version as if the current firmware now has been corrupted. To me it seems like quite an odd problem in that i can read the chip but not write to it. I was hoping that you or someone else could maybe help me out.
Thanks in advance.
– Oliver

Reply
Miguel Barroso 21st June 2016 - 2:01 pm

Did you manage to solve your problem? I’m having the same issue, but with ZTW Lite 18A ESCs

Reply
Murathan 29th June 2016 - 10:11 pm

Don’t panic. I had same problem and i flashed pass through with naze32 rev5. Everything is fine.

Reply
Jayvin Krzych 13th October 2016 - 7:59 pm

So did anyone actually figure out a solution for this? I have the same problem.

Reply
Tuan 5th March 2016 - 8:50 pm

Hi Oscar, i am using sp racing f3 with betaflight 2.4.1 to read write and flash esc. It is good for littlebee 20a but not good for dys sn 20a. When i connect to 4 dys sn 20a escs , it see all of them but it can not read or write or flash dys escs. When i click to read tab , It said esc not connect and need to check connection. My dys escs have blheli 14.2 firmware. When I used dys usb linker to setup , everything is ok but i just setup one esc one time. It is not convenience as using sp racing f3.

Reply
Oscar 7th March 2016 - 5:12 pm

sounds like the dys sn20a esc’s have got SimonK bootloader rather than BLHeli bootloader. search on my blog on how to change bootloader.

Reply
Bruno Carmo 29th February 2016 - 5:51 pm

Hi Oscar

Any news about the possibility to flash the esc with F3 boards? Is there actually a F3 board working with this feature?

Reply
Tristan 16th February 2016 - 3:44 am

Hi Oscar. The other thread said I can flash blheli on my ESCs if they have SimonK bootloader. My question is… Am I still able to flash Blheli this way. Even if my esc’s have SimonK bootloader?

Reply
Oscar 22nd February 2016 - 10:51 am

absolutely you can. bootloader and firmware are 2 different things :)

by the way, I recommend joining this forum, it’s very useful and there are lots of helpful people there. I am a daily user too :) http://intoFPV.com

Reply
Shaun 24th January 2016 - 9:44 pm

Hi Oscar,

Just a quick comment, I was able to access and flash these no problem (one by one) without having the ESC comms ground wire attached anywhere. My LittleBee’s were running BLHELI 14.1 (and obviously also BLHELI bootloader). I’ve flashed them all to 14.3 and reversed the direction of 2 motors, and enabled Damped Light. This all worked a treat. Good stuff.

Reply
Shaun 24th January 2016 - 9:46 pm

Forgot to mention FC is a Flip32.

Reply
Oscar 25th January 2016 - 8:38 pm

That’s fantastic Shaun! Enjoy the ease of flashing ESC via FC :)
lastly, i would really appreciate it if you could join the forum: http://intoFPV.com … I don’t want to miss your comment, because I only check my blog comments once a week, but I use the forum daily!

Reply
Ludo De Greef 2nd January 2016 - 3:30 pm

Hello all,
I can make contact with the ESC’s as I can use the motors-tab to rev the motors… however when I try to read the ESC’s setup I get a blanc and error-code.
Must be the bootloader issue, I guess.
Is there anything i can do to get a simple way of access to the esc’s?

Reply
FyreSG 20th December 2015 - 1:49 pm

Hi Oscar, would this method work for EMAX NightHawk Pro 280?

Reply
sense 15th November 2015 - 7:02 am

Hi Oscar , can you please advise if i need to use BLheli on my ESC’s to use betaflight ..or is it only necessary if you want to use ONESHOT ?

i just flashed my naze 32 rev 6 with betaflight and went outside to test and i have a little bit of wobble ..

Reply
Oscar 16th November 2015 - 9:44 am

in the Betaflight RCG thread, it was recommended to use the latest version BLHeli, so try flashing that on your ESC for optimal performance.

Reply
Dave McClernon 15th November 2015 - 12:57 am

Hi Oscar. Can you do a ‘how to’ on changing the bootloader to BlHeli on atmel escs with the usbasp or ftdi, either by soldering to the pads or with the socket tool or both please. I keep seeing people asking on facebook why they cant connect to blheli suite through cleanflight/Betaflight/Naze. Most of the time this is because they have the simonk bootloader as you know. I keep trying to explain how to do it but there is not much info out there to help me. It would be much easier if I could just point them to one page with all the info. Thanks. Keep up the good work. Love your blog.
Thanks
Dave

Reply
Oscar 16th November 2015 - 9:40 am

I have a post on flashing Atmel ESC (blue series) with flashing tool maybe that’s what you are after? There are ESCs provide soldering pad so flashing tool is not required.

Reply
titanium 13th November 2015 - 9:57 am

Hi Oscar
I have naze32 and blheli 14.1 with simonk bootloader.
Is there a way to install blheli bootloader ? (ESC are DYS SN 16A)

Thanks !

Reply
Oscar 16th November 2015 - 9:24 am

there are 6 pins near the processor chip, you can use an ISP programmer to flash bootloader.

Reply
Ed 8th November 2015 - 12:42 am

Hi Oscar,

Great, great stuff! Thanks, I use your page regularly.

I have tried to connect to BLHeliSuite via BetaFlight on Naze32 but no success:
MSP_SET_1WIRE: ESC#1 OK
BLB Connect to ESC: FAILED

I am using Multistar 20A v2 BLHeli slim. Only the signal wire is connected to the FC. Tried Betaflight 2.1.2c and 2.1.1 and Cleanflight 1.10. All on Naze32 rev 5 full.

When using 2.1.2c and connecting to BLHELISUITE, board reboots and motors start to spin – don’t think that is meant to happen :S

Appreciate your opinion on whether I need to connect the ESC ground to the FC.

Thanks

Reply
Yura 8th November 2015 - 12:24 am

Hi,

Could you please elaborate on how to calibrate my esc’s (RG20) in BLhelisuite? I use naze32 rev6.

Thanks!

Reply
Joe Stubbs 31st October 2015 - 12:33 am

Hi Oscar
Have CF installed on Naze(Full) with BLHeli12A Esc’s in my Emax Nighthalk250.. Gone through your BLHeliSuite 14.1.0.1 setup with No 1 Esc/motor plugged into Motor 1 pins on the Naze32… not sure if this is the correct physical setup ?… anyway pressed Connect get a message
Initialization of serial 1wire passthrough failed. Please chk FC revision to support serial 1wire passthrough … Now please, what have I done wrong…. Joe

Reply
Oscar 4th November 2015 - 6:36 pm

it only works with Betaflight at the moment…

Reply
Joe Stubbs 5th November 2015 - 3:26 pm

Hi Oscar
So I have too get rid – erase my FC’s CleanFlight load Betaflight and then use a combination of both BLHeliSuite and Betaflight too… using terms like …. flash/load/prog BLHeli bootloader and then flash/load/prog my Esc with BLHel firmware using the FC computer USB’s
Then .. I re-prog my FC with Cleanflight, in effect use Betaflight as a means to an end.
Do I still have to permanently remove the input resister and capacitor prior too and after the above procedures. Joe

Reply
Oscar 6th November 2015 - 3:29 pm

also make sure your ESCs have BLHeli bootloader installed.
I am not sure about your resistors and caps… what ESCs are they?

Reply
Joe Stubbs 6th November 2015 - 11:39 pm

Your Q’s … how do I check what BL have installed’ having great difficulty talking to my Emax BLHeli 12A Esc using BLHeliSuite and Turnigy USB-Linker …. at the moment am a UART/TTL board 1wire interface flash BLHeli Amtel Esc over servo cable… hope it may work with the BLHeli Esc’s Silab chip !!??…Joe

Reply
Mugenski 28th October 2015 - 9:58 pm

This does not yet work on the RMRC dodo yet either. Can only connect to the first ESC

Reply
Gab707 5th November 2015 - 7:16 pm

Hi Oscar, Same comment as Mugenski, two of us have tried it with the RMRC dodo, esc’s (RG20A and SN20A) running blheli 14.2, and betaflight 2.1.1. BlHeli suite will only recognize esc num. 1. Great post though!

Reply
Oscar 6th November 2015 - 3:34 pm

I think it’s more of a firmware issue…
maybe try the latest betaflight 2.1.2: Fixed some minor issues with serial 1wire passthrough feature for F3 targets

Reply
Bam 26th November 2015 - 3:23 am

Gab707, worked for me.

Try it with betaflight 2.1.3 and make sure to ground the ESC signal ground on the FC ESC pin’s ground. I tried grounding the ESC signal to the battery ground and it did not work, but it worked when I grounded the ESC signal ground on the FC ground.

Reply
lukim 28th October 2015 - 3:45 pm

Hi Oscar
I could not get it to work on my Flip32 board, Little Bee 20A, only signal connected to Flip.
If I set my board to 1wire mode via CLI command “1wire 1-4” ESCs are discovered by BLHeli Suite and can be flashed and programmed via the 1wire interface.
Connecting the Flip32 in Cleanflight mode only brings up ESC#1 on motor port 1 in BLHeli Suite. Can’t get this multiple ESC thing to work…

Reply
Keivn Yang 28th October 2015 - 3:16 pm

Great Posting Oscar!!
I tested them already. I like this system but only blheli bootloader work now. Why don’t you mention about right click button When you select ESC?

Reply
PaulN 28th October 2015 - 8:01 am

Hi Oscar,
I calibrated my ESCs using the motor tab of betaflight. However, in BLHeli different PPM min/max throttle isdetected. Would you recommend calibrating via motor tab or via setting in BLHeli?
Thanks!

Reply
Oscar 28th October 2015 - 5:35 pm

i would suggest to take the number from your master ESC and copy them to the rest of ESCs… there could be mistaken on ESCs reading the analog signal sent from FC…

Reply
PaulN 29th October 2015 - 8:45 am

Hi Oscar,
thank you for your advice!

Reply
Ted 28th October 2015 - 1:14 am

Hi Oscar
i am so close. It seems to get closer if i disconnect from cleanflight. i can flash and read, but it seems to hangup. Comm port issue? Not sure Haven’t gotten to work yet.

Reply
txrxtx 27th October 2015 - 11:42 pm

Hi Oscar

I couldn’t get this to work with betaflight, blheli 14.0(little bee) and cc3d. I had to go with one-wire arduino instead
It would be good to know if cc3d works or if it is just me.
Also, osx would be nice, one day.
Thanks for all your work!

Reply
Enurian 16th December 2015 - 11:30 am

Hi Colton

did you get it to work? I have a similar setup (little bee and cc3d, betaflight) and can “connect” in blhelisuite. Any further action (read setup) leads to an error und corrupts the whole USB connection. I cannot connect via blhelisuite or cleanflight configurator after that until I reboot the whole FC.

Reply
Jerrod 14th January 2016 - 2:52 pm

Colton and Enurian,

I have cc3d , betaflight, and DALRC blueseries 12a ESC and i cannot connect. Colton, i have the same exact experience as you. Upon clicking ‘read setup’ my computer slows down and blheli suite window reads “not responding”. Then i get a popup window that reads

Connection to Serial Cleanflight MSP Interface at COM8 failed!

(Error: “SetCommState function failed
System Error. Code: 31.
A device attached to the system is not functioning”)

Please check usb/serial port settings!

I tried to include the log file but it wont let me highlight and copy/paste.

I’m guessing cc3d is not compatible? I thought it was just my PC (win7) because i have to update my ‘generic USB hub every time i want to connect to the cc3d. If i don’t it does not show up as a serial port and will not connect. I think i have the latest stm32 driver installed so i don’t know why it’s doing that. Windows problem?

Reply
Colton 27th October 2015 - 11:00 pm

Hi Oscar
Like the guy up there who pointed out that this wouldn’t work with the naze rev6, this also won’t work (as far as I can tell) with the Ready Made RC Dodo. I’ve tried everything, and it just doesn’t want to read.

Reply
Oddworld 27th October 2015 - 5:24 pm

Hi Oscar
Can anyone confirm that this works with the naze rev6?

I had no issues flashing ESCs using the naze rev5 on betaflight, but cannot do the same on rev6. Unsure whether it’s just the rev6, the particular build of betaflight on the board (unlikely), or the bootloader (also unlikely, as they are the same DYSBL20a model ESCs ordered from the same store, MRSS). Getting a read error.

Reply
Keivn Yang 28th October 2015 - 3:12 pm

Yes, It works perfectly. I use naze32 rev6 with betaflight. In my case DYS bl20a was SK bootloader(but firmware is blheli firmware). It cannot read from cleanflight.

Reply
Paul 27th October 2015 - 3:13 pm

Will this work with escs that can’t be programmed via 1-wire but have BLheli v14 and above? I assume not. This would be cool on my 250 I flashed BLheli using and aurdino jumpered to pads on the 12a emax escs built it up and have flown it but have lost all power on punch out so assume I programmed the escs wrong. My escs are buried deep within my custom frame and are a real pain to access requiring a couple of hours at least to strip sn d rebuild this would be a life saver if it would work.

Reply
techfreak 27th October 2015 - 10:01 am

Best idea is merge blheli to cleanflight and then all settings will be in one program not depended from system. yeah :)

Reply
fl0PPsy 27th October 2015 - 7:51 am

Hi Oscar,

You might want to mention the facts that the BLHeli bootloader needs to be installed on the ESCs otherwise flashing etc via Betaflight will not work.

The SimonK bootloader is not supported by the current solution. There are quite a few ESCs out there that have BLHeli installed but with the SimonK bootloader and these still need to be updated the old way.

Reply
Gareth Newton 27th October 2015 - 2:02 am

Hi Oscar

I believe this does not work with ESCs that have the Simon K bootloader on them. Might be worth mentioning.
Thanks – and great write up!

Reply
Fuzz 2nd November 2015 - 12:23 am

Do you know how to get the BLHeli Bootloader on ESC’s that have the SimonK bootloader installed?

Reply
blaise 27th October 2015 - 1:44 am

One thing you’ve forgotten to mention in your requirements is that the ESCs must also be running the BLHeli bootloader. BLHeli software on top of SimonK bootloaders doesn’t work.

Reply