Flash BLHeli on Blue Series 12A ESC using Arduino

by Oscar

I have been using SimonK firmware on my Mini Quad Blue Series 12A ESC, they perform really well and I can’t complain. But recently Oneshot and Active Braking (damping light) has been popular and I have been hearing all sorts of good things, but they are only supported in BLHeli (V13.0) at the moment. So I decided to flash the latest verison of BLHeli firmware on my Hobbyking BS ESC.

Some of the links on this page are affiliate links. I receive a commission (at no extra cost to you) if you make a purchase after clicking on one of these affiliate links. This helps support the free content for the community on this website. Please read our Affiliate Link Policy for more information.

Just like how I flashed SimonK, I will be using an Arduino Uno board as the ISP Programmer, and the ATMEGA flashing tool to gain access to the ESC chip. For connections check out this post.

I have to say, BLHeli does a great job in terms of user experience. They provide you with a software GUI client where you can connect, flash your ESCs, it also let you adjust all sorts of parameters through the interface. There is no need to touch any firmware files, you can select the brand/spec of your ESC from the drop down menu, very user friendly and easy to use. No more command lines or trouble with the long file paths! :)

Connect Arduino Uno and Flashing tool

connect-arduino-atmega-flashing-tool

Arduino Mini and Mega should work too. Connect the flashing tool to the pins on the Arduino following this.

Arduino Uno / Nano

Arduino Pin 10 – SS / Reset Arduino Pin 11 – MOSI Arduino Pin 12 – MISO Arduino Pin 13 – SCK

atmega flash tool pinout

Get BLheliSuite Software Ready

First download the latest BLHeliSuite client from here. Note that Oneshot is only available from version 13.0 onwards.

blhelisuite 13.1 GUI Client for ESC

Then you need to setup BLHeliSuite, so that you can use the Arduino as ISP Programmer to flash your ESC. If you are not sure, make sure you also check out the video below for visual step by step instructions.

In the top menu, click “ATMEL / SILABS” and check “ATMEL ISP Interface“.

Now go to the “Interfaces for Atmel” tab, choose “Uno” from the drop down list in “Arduino board“, Pick the com port of your connected Arduino board, leave baud rate as default 115200.

Now, Click the “Make ArduinoISP Programmer” button. This will automatically upload the ArduinoISP sketch for you, without having you to do that in the Arduino IDE, very handy :)

When it’s done, go back to “Atmel BESC Setup” tab, at the very bottom, in “ISP Prog“, choose “ArduinoISP (Arduino as ISP Interface)“, and the com port of your connected Arduino. Leave baud rate as default 19200.

Flash BLHeli Firmware !

We are now ready to flash our Blue Series 12A ESC, place your flashing tool on the Atmel chip on your ESC.

flash-esc-firmware-blheli-simonk

Now click “Read Setup” button, BLHeliSuite should read the information on your ESC just like it does in the CMD window when we were flashing SimonK. If you didn’t place the flashing tool on the chip properly or misalign the pin connections, you will get an error. If that happens, just double check and try again until it works.

After it successfully read your ESC, it should detect the current firmware is “SimonK or others”, and will prompt you to flash BLHeli on it.

Press yes, and you can now choose a firmware according to brand, spec and code version. For each ESC, there are three versions of the code,

  • Main: Intended for helicopter main motor
  • Tail: Intended for helicopter tail motor
  • Multi: Intended for multirotor motors

I chose Blue Series 12A Multi, since mine is a mini quadcopter. I left everything else as default, and this will take you 30 seconds to flash your ESC.

Enable Oneshot and Active Braking Feature (Damping Light mode)

Now, enable Oneshot in Cleanflight if you haven’t already. After BLHeli is flashed on your ESC successfully, Oneshot (AKA Oneshot125) is automatically detected and enabled by default (it can tell by the signal coming from the FC), there is nothing more you need to do.

There is one more popular feature in BLHeli can you enable, which is Damping light mode. As mentioned, active braking allows much rapid throttle response as it actively slow down your motors as you reduce throttle, while before, your motors are passively slowed down by air resistance.

SimonK VS BLHeli Test and BLHeli Flash Instructions

Here we have a simple comparison of how much responsive the motors have become since the flash of BLHeli, to our old SimonK ESCs.

Comparison is done using two different mini quad, but exact same setup, same looptime, same PID, same flight controller.

You can hear the different with Oneshot and Damping light enabled, the motor speed changes much more rapidly, very responsive throttle changes. It also sounds faster switching, more aggressive and higher pitch.

Note that oneshot and damping light doesn’t affect the how fast FC is updating the ESC, so you probably won’t notice much difference in the configurator motor tab. It’s mainly how the motors are handled by the ESCs, and how much more responsive the motor is regarding to changes.

With the good old SimonK, it sounds a bit softer and the motors still rotates a bit slowly after throttle is cut. But with Damping light enabled, the motors are actively forced to stop (hence named Active Braking I guess). I think this might use a bit more current and not as power efficient. But I tried hovering in my room for a few minutes, control feels very good and motors are not particularly any warmer than before. I can’t wait to test this outdoor later.

About Looptime, I tried lowering looptime to 2400, 2200, 2000, even 1600, all perform well and doesn’t have any jittering issue like before. I observed jittering at the beginning, but that was due to a faulty ESC. I would recommend 1600 which gave me good result. With PID Controller = 2, I could even set it to 1200, which is the lowest Naze32 can handle. Forget about Kiss ESCs :) cheap BS ESC performs just as great :)

The motor noise at zero throttle

With Oneshot enabled my motors make clicking noise. I don’t really mind, but if you want to get rid of it, set your min_command lower to reduce it.

set min_command to 960

That should get rid of the noise down low on Atmel based ESCs.

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.

46 comments

Nick 28th July 2016 - 6:36 am

I have followed your guide, and everything works great. I’m using ztw 12a spider esc, naze32 rev 6 , sunnysky 2204 motors. Only one issue, if I enable one shot, my motors twitch. Even if it’s not armed, just sit there with a slight beep and twitch. They seem to run fine, bit is that normal? Is there a way to get rid of it? Thanks for the guide btw

Reply
Oscar 7th August 2016 - 2:18 pm

it’s a common issue with ATMEL ESC, you can try to set min command lower e.g. 980 or 970

Reply
Cody 18th February 2016 - 4:49 am

Hi Oscar,

I just flashed my rctimer 12a esc that came with SimonK to Blheli following your instructions and now my ESCs seem dead.
The blheli software said everything was successfully, but when I power up my quad my ESCs do not make any noise.
I tried connecting to cleanflight and perform an esc calibration but nothing works.

Reply
Oscar 22nd February 2016 - 11:27 am

The instructions were meant for Blue series.
I have never used any RCTimer ESCs so not sure if they would work…

maybe try flash them back to simonK?
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
henrik 1st March 2016 - 12:38 pm

if your on a cc3d fc board you need to use the last pin on the FC reciever port for ppm, not the third one like regular ppm uses but mabey thats not the problem?

Reply
Paps 26th December 2015 - 11:29 am

Hi

I have a problem flashing. Im trying to flash Blue series 30A. Can you help me?

It tells me:
Device Signature: 0x000000
Yikes! Invalid device signature
Expected signature for ATMEGA8 is 1E 93 07

Reply
Oscar 6th January 2016 - 10:24 am

signature is null… looks like it’s not detecting the chip!

Reply
Paps 29th January 2016 - 2:40 pm

Haven’t had much time since then. Decided to try again. Don’t know what to do really. I even soldered some wires on pads beside the chip. It still does not recognize it.

Reply
KSK 5th October 2015 - 12:14 pm

Hi Oscar ,

I’m planning to run HK BlueSeries 12A on 4S and I tried lookup if those ESC support 4S or not. I’ve got SS2204 2300kv motors, a Naze32. I read in one rcgroups thread that the BEC might needed to be disabled for it? Did you do that or you just hooked up a 4S directly?

HK has conflicting info on this ESC on their site. The label on the photo says -3S, specs say it has sbec and supports 4S. [..hobbyking/store/__11429__HobbyKing_12A_BlueSeries_Brushless_Speed_Controller.html]

The rest of my system has 4S support, don’t wanna fry the Naze. How to proceed?

Thanks,
KSK

Reply
Oscar 6th October 2015 - 4:54 pm

Hi KSK,
they are safe on 4S, i have been running them on 4S for nearly a year now. no need to disconnect or disable BEC, they are fine.
just hook them up to 4S directly.

Reply
Stefan 27th July 2015 - 10:15 pm

Hi Oscar,

Did you ever do a direct compare between SimonK 2015 with COMP_PWM and BLHeli 14.0.0.2 with Damped Light mode? I’ve seen you write about these features but I couldn’t find out if you’ve actually used SimonK with COMP_PWM and compared it to DL in any way.

p.s. your blog is an excellent resource, cheers!

Reply
Oscar 28th July 2015 - 5:30 pm

Thanks Stefan,
No i haven’t done a active braking comparison between the two firmware.
but a good idea though!

Reply
Tom 19th June 2015 - 2:49 pm

Hi Oscar. Great Blog.
The link to download the blheli suite works (directs to mediafire.com) but chrome blocks the download saying the file’s malicious. Any Idea why? Have anybody else encountered that?

Reply
Oscar 19th June 2015 - 3:08 pm

Hi Tom
sorry I am not sure i didn’t get any warning when I downloaded it few months ago.
I have no control what those files are. Maybe try a different browser, after downloading and run a full virus/malware scan on the files?

thanks
Oscar

Reply
vincenzo 6th May 2015 - 5:35 pm

Hi Oscar

I’ve made first flash with USBASP.
can I connect my blue series through the servo cable for the next config activities?
and how?

Reply
Oscar 19th June 2015 - 3:09 pm

yes you can :)

Reply
Misio 4th May 2015 - 2:50 am

Hey Oscar, I must ask for your help again. I flashed my hk blue 12A esc back to simonk from blheli, flashing went ok no errors (i choosee bs_nfet.hex) But after that esc are dead, no sound after power up and motors dont spin. Do you have any idea why ??
Thank you!

Reply
Oscar 6th May 2015 - 12:28 pm

first of all, flash it back to BLHeli, make sure ESC is not dead?
secondly, if it’s not dead, it’s probably the flashing not correct, or settings not correct. Try to compile the hex file using default settings..
https://oscarliang.com/flash-blue-series-12a-esc-atmega-tool/

thanks
Oscar

Reply
misio 7th May 2015 - 3:28 am

I flashed back to blheli and esc`s are back to life again. Thanks !

Reply
Mike G 25th April 2015 - 2:12 am

Hi,
I am wondering if I can use the USBasp by Hobby King to flash the HK Blueseries 12a ESC instead of the Urduino uno and if your process/steps still apply?

Reply
Oscar 27th April 2015 - 5:30 pm

yes it can be used to replace the Arduino.

Reply
Misio 30th March 2015 - 6:34 pm

Hey, great blog and source of usefull info. I just followed this tutorial and was able to flash my HK blue 12 A with simonk softweare but after calibration in baseflight motors spinning full speed at only 1350 pwm whitch is only about 1/4 of my throtlle so imposible to control the quad. Battery is 4S nano tech 1300 mah , dont know at this point what to do and cant find any info on the web either I was calibrating the motors in baseflight only and everything seem to be fine. Please let me know if there is enythig I could try. Thank You !!

Reply
Oscar 31st March 2015 - 1:25 am

Is your throttle showing correct range? between 1000 to 2000 in receiver tab?
How did you calibrate your ESCs?

Reply
Misio 31st March 2015 - 3:52 am

Hi Oscar
My throttle seems to be ok the receiver tab shows 1005 to 2001, what I did was disconnect the battery go to the motor test tab , moved the master slider all the way up then connect battery and move the slider back all the way down as fast as possible. After that when I move the slider I can hear that the motors accelerate only until appx 1350 pwm after that they spinning at the same rate. My flight control board is flip32+ with baseflight firmware.

Reply
Oscar 1st April 2015 - 3:13 pm

very odd. Make sure you set these parameters in CLI, i think they are default values. AFter than re-calibrate ESCs.

set minthrottle = 1150
set maxthrottle = 1900
set mincommand = 1000
set mincheck = 1100
set maxcheck = 1900
set midrc = 1500

If that still doesn’t fix it, try to uninstall Cleanflight/Baselfight Chrome App, install the latest one. Then flash the board with latest firmware. don’t change any CLI commands and Re-calibrate ESCs. try again.

Reply
Misio 4th April 2015 - 5:13 am

Hi Oscar,
Thank you for your help but unfortunatelly nothing seems to help. No matter what I do my motors spinning at full speed around 1400. So my plan is to buy another board and maybe ne esc.

Reply
Oscar 6th April 2015 - 1:00 am

well, probably a hardware issue then :(

Reply
misio 5th April 2015 - 5:32 am

Ok so I guess I found my problem (not sure if it is a problem) , when I use 3s battery and calibrate esc`s my motors starts at 1150 and reaching top speed at 1850 PERFECT !. However when I connect 4s battery and calibrate esc`s motors start spinning at 1150 and reach top speed at around 1400. So the question is if this is normal and I just need to learn how to fly it ?? My motors are cobra CM2204/1960.

Thank you !

Reply
Oscar 6th April 2015 - 1:06 am

no not normal, I used the same setup and never had this problem with 4S… maybe try flashing a previous verison of simonK? or try BLHeli.

Reply
Misio 6th April 2015 - 2:49 am

This is what I did, I flashed BLHelli and problem is gone but first thing I wanted to do was to flash simonk 5.15.13 but was unable to find it, can you tell where to get it from ? Thanks a lot, Im so glad there is a place on the web like this blog.

Reply
Oscar 8th April 2015 - 12:39 am

I can’t find it either in the SimonK Github (github.com/sim-/tgy), that’s why I used BLHeli. It was mentioned in the commits that Oneshot will/was added though. BLheli works fine and has a great software interface, I don’t see a reason to go back to SimonK at the moment.

Reply
npmullins 26th March 2015 - 10:39 pm

Hi Oscar,
great guide. Just followed it to flash my 20amp blue series esc’s on my blackout 330. on throttling up the motors just jitter. Can’t calibrate them either. Any ideas what could have gone wrong?
I have enabled oneshot in cleanflight and tried with it deactivated.with no luck

Reply
Oscar 27th March 2015 - 10:34 am

do you have video showing the problem?
make sure you tried turning “Damping light” off and try again.

Reply
TimJC 11th March 2015 - 7:49 pm

Oscar,
I noticed that your ESCs still have the BEMF caps for the output leads. I haven’t done a lot of research on this, but there seems to be a consensus for removing these SMD capicators to help prevent motor sync issues. Have you noticed any motor sync issues, and do you plan to remove these caps?

Source for BS-12a BEMF cap locations: rcgroups.com/forums/showpost.php?p=30587814&postcount=630

Reply
Oscar 15th March 2015 - 6:31 pm

thanks for the comment.
I am not sure I have noticed any Sync issues so far. I have not removed any SMD caps.
I think I will just leave them there.

Reply
Stephen 7th March 2015 - 6:53 am

I just did this myself the other day :-)

Have you tried doing an esc throttle calibration in Cleanflight with oneshot turned on? After I did this my motors were “chirping” at 0 throttle.

I was able to solve this by calibrating with a min command of 1050, then returning it back to 100 and a min throttle of 1100.

Reply
Oscar 9th March 2015 - 5:28 pm

Yes mine are the same, they make “clicking” noise at zero throttle. I wasn’t sure at first, but they seem to run fine so I just ignore it :D
I will try your solution and find out!
thanks for you comment Stephen!

Reply
JWnsb 6th March 2015 - 3:24 am

Oscar,
Thank you for the time you take to write these blogs. It seems every time I need to know something you had just wrote about it and it’s the most comprehensive thing i could find online. Keep it up!!
I don’t know if it’s me or not but it seems that the link to BLHeliSuite firmware is not working?

Reply
Oscar 9th March 2015 - 5:12 pm

thanks! :D
that’s wierd, I just tried it’s working for me.

Reply
Tapio 5th March 2015 - 11:44 am

Hi, do you know if/how you can use raspberry Pi instead of an Arduino to hook up the atmel programming tool?

Reply
Oscar 9th March 2015 - 5:09 pm

no don’t think you can do that.

Reply
Fabien 5th March 2015 - 8:03 am

Hi,

Do you know if oneshot will be available for SimonK ESCs ?

(by the way, thank you for your blog, great ressource ! :) )

Reply
Oscar 5th March 2015 - 9:53 am

As far as i know, no it’s not supported (yet). Rumour say it will, but I couldn’t wait, that’s why I flashed BLHeli :)

Reply
Lauszus 6th March 2015 - 5:05 pm

It is supported since February 26: github.com/sim-/tgy/commit/6dbc056a71161593cc8eaf08f8959cf4ea6e4ce6, but you need to compile it yourself or simply download it from my Dropbox: dropbox.com/s/wn44hukquwb7jbp/bs_nfet_6dbc056a71.hex?dl=0 :)

Reply
Oscar 6th March 2015 - 6:50 pm

thanks Lauszus! I didn’t know that. I will look into that shortly!

Reply
Fabien 23rd April 2015 - 9:50 am

Thanks Lauszus !

Still have one issue, having “Lumenier 12 amp ESC with SimonK Firmware (N-FET)” I’m not sure which firmware I should use. How can I choose ?

Reply