How to - Flashing BLHeli firmware using Arduino

by eluminerRC | October 21, 2013 | (11) Posted in How To

***IF YOU ARE PLANING TO BUY ANY OF THE PRODUCTS USED IN THIS VIDEO, PLEASE DO THIS VIA LINKS IN THE VIDEO DESCRIPTION.*** This will help me generate bonus points on Hobbyking website. That way I will be able to make better videos in the future.***

This is short instructional video on how to do one of the things that will greatly improve your crafts performance - flashing ESCs with BLHeli firmware.

Nearly everyone heard about SimonK firmware. This is specially designed firmware for ESCs that greatly improves performance for multi-copter use. However, SimonK firmware is designed for ATMEGA based ESCs and it can't be flashed on other chips.

However, more and more ESCs these days come with SiLabs chips, including very popular Turnigy Plush line. Luckily, there is an alternative - BLHeli firmware. This is very advanced and customisable firmware and latest versions are as good if not better than SimonK in multi-rotor department. And yes, it works with SiLabs based chips.

You will need some kind of programmer for this and Arduino Uno is the best and cheapest way to go.

LINKS:

1. Everything you need

2. Supported ESCs

WARNINGS:

1. This process involves soldering, flashing and programming your ESC. Each one of these things can destroy your ESC. I''M NOT RESPONSIBLE FOR ANY DAMAGE CAUSED BY USING THIS METHOD. YOU HAVE TO BE AWARE OF THE RISK!
2. This process is not reversible. So, if you don't like BLHeli firmware there is no coming back to stock one.
3. You can experiment with different firmware settings, but every time you change something you have to do exactly the same thing on every ESC! Everything must be the same otherwise weird behaviour could be expected.

You need:
Arduino Uno - search eBay for "Arduino Uno" and buy the cheapest one :)

Arduino jumper cables - search eBay for "Arduino jumper cables"

Turnigy Plush 30A ESCs

Servo Connectors

Servo Wire

Crimping Tool

Soldering Paste

Soldering Iron (30W):
Any 30W (or similar) soldering iron.

Solder (60/40)

Third/helping hand tool

Hot glue gun

Enjoy RC as much as I do! :)

Additional information:

Video: iPhone 4
Editing: FinalCut Pro X
Music: GarageBand

COMMENTS

Hilbert on October 22, 2013
Thanks, I found http://www.olliw.eu/2012/owsilprog/ also, very nice. Also for you linux users go to this link: http://code.google.com/p/esc-tool-for-blheli/. I have not tested it, the Arduino part works, but I have not tested the esc-part
Log In to reply
eluminerRC on October 22, 2013
Thank you for the informations!
Log In to reply
Hilbert on October 24, 2013
Succes, the linux esc-programing works.@eluminerRC What settings did you use?
I used from the video:
Govener P Gain: 0.13
Govener I Gain: 0.13
Govener Mode: off (default, not on your screen)
Low Voltage Limit: off
Motor Direction: normal
Input PWM Polarity: positive
Startup Power: 1.00
Startup PWM: 0.67
Startup Acceleration: 2.3
Motor timing: High
Motor pwm freq: High
Damping Force: very low
Startup method: direct (default, not on your screen)
Demag Compentstions: 15/0 (default, not on your screen)
Gain: 1 (default, not on your screen)
BEV Voltage High: low (default, not on your screen)
Programing my TX: on (default, not on your screen)
Trottle Rate: 255 (default, not on your screen)
Trottle Min 1148 (default, not on your screen)
Trottle Max 1832 (default, not on your screen)
Becon Strength 80 (default, not on your screen)
Beacon Delay: 3 min (default, not on your screen)
Beep Strength: 40 (default, not on your screen)

Everything with (default, not on your screen) is the default value, can you confirm these?
I guess that the Trottle settings are set when you calibrate with the KK 2.0 board when holding button 1 and 4.

Log In to reply
eluminerRC on October 25, 2013
Well, I didn't compare this with mine, but I use what I've showed in the video. On second tab everything is default so I didn't showed that.
Log In to reply
santiago404 on October 22, 2013
Amazing tutorial! Thanks for sharing!
Log In to reply
eluminerRC on November 9, 2013
Thank you!
Log In to reply
Crashpilot1000 on October 22, 2013
Thanks for taking the time to make such a good video!!
I flashed my skywalker 20A ESC with some BLheli 10.x FW (I think :) ) and I stumbled upon some obstacles I want to present here, perhaps it will save others some time. I used the arduino method (abusing temporarily my multiwii board for it - so no extra hardware.. some use their arducopterboards.. just reflash the flightcontrolsoft when done with blheli).
1st problem:
The first obstacle was my soldering skill and the tiny bad placed pads on skywalker esc. So I took two needles and attached cables to them and arduino, the third cable is GND and can be taken from the battery/mainpowerlead. Now put some normal transparent scotchtape over the contacts of the dismantled ESC. This allows your needles to peek throug and touch the pads, while holding them into place (laterally, you will have to press a little from above).
2nd problem:
I used the olliw gui (like in your video) and its' supplied arduino sketch/hex to program the esc the first time and failed many times. It worked with the blheli suite and its' arduino program! The sil chips on skywalker seem to be somehow locked and need to be unlocked - and that couldn't be done by the olliw sketch (maybe now, I flashed some months ago). Once unlocked you can flash them with both utils. So if you get a constant flashing error and your cabeling is correct, try the other tool!
After solving these probs I figured out the best settings for my esc/motorcombo and flashed all esc with it. I am very happy with blheli for months now. My method does not allow to quickly change the FW but thankfully I don't need to.
Cheers
Rob
Log In to reply
danallen82 on November 5, 2013
I'm glad you have the 4x20a Quattro ESC on the list. That's something I wanted to flash, yet there were no guides on it. So my question: is there known settings for motors like the DT750?
Log In to reply
eluminerRC on November 9, 2013
Well, this list is not mine, I've just shared the link on it. You could tweak settings if you know what you're doing, but usually it is the best to leave them stock. Even stock settings work way better than stock firmware.
Log In to reply
rifted on October 22, 2013
Nice! Someday I'll flash my Plush ESC this way!
Thanks again and great video!
Ed
Log In to reply
eluminerRC on October 22, 2013
Thank you! I definitely recommend that you do this. Huge difference.
Log In to reply
uberjay on October 22, 2013
Hey great idea to add this to the FT site. A couple extra pointers / notes to add to this are:
- BLHeli flashing howto for all programmer hw out there: http://oddcopter.com/2012/07/18/flashing-silabs-escs-with-blheli-firmware/
- HK has this tool that allows for flashing as well if you don't want to mess with the Arduino: http://www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idproduct=25433

Probably the biggest thing I'd recommend is that BLHeli and/or SimonK are also GREAT on 3D planes for wicked throttle linearity!! No more (or much less) throttle punching to hover, etc. Bottom line is - do it! You'll love it for 3D!!

Note: BLHeli/SimonK for a glider app where you want to use the brake on the motor requires an ESC that supports the braking / damping function.

Cheers, and thanks for bringing this up on the site.
J
Log In to reply
eluminerRC on October 22, 2013
Thanks for the informations. I would still recommend Arduino over other solutions because it's basically the same price while offers far more possibilities for other projects as well. Also, as you've seen, it's pretty easy to set it up.

And yes, BLHeli is great firmware not only for multi-rotor use.
Log In to reply
uberjay on October 22, 2013
Sure.... just putting options out there. I thought the tool from HK was a bit cheaper than the Arduino, but I could be wrong.

Cheers,
J
Log In to reply
uberjay on October 22, 2013
Yeah... I just re-looked at HK and you're right, the UNO vs. that USB programmer is only a $2 difference. So if someone is going to get their hands dirty then why not go for the UNO which has much more to tinker with ;-).
Log In to reply
tomrc on June 19, 2015
The article and the video are awesome.they still work.
The problem is the blheli tool doesn't seem to support firmware versions newer than 10.4
It can flash them, but it can't read them or make configuration changes.

The link to blhelisuite on github points to mediafire.com, but chrome prevents downloading the zip archive claiming it's a malicious file.

Suggestions anyone?

Log In to reply
r1122 on November 30, 2015
hi thanks for the great video... i was successfully able to flash the hex file on my turnigy plush 10amp.. but was not able to connect it with bl heli suite 14.3.0.1.
I tried it with "Turnigy Multistar USB BLHeli Programmer For V2 Multistar ESC" ( http://www.hobbyking.com/hobbyking/store/__65150__Turnigy_Multistar_USB_BLHeli_Programmer_For_V2_Multistar_ESC.html ) through servo lead and also tried through arduino uno as arduino usb linker but its not connecting.

The newer version of hex file which is 14.3 is not supported to configure through bl heli tool v122 so to configure that i need to connect it with the blheli suite. please let me know if there is a way to connect it with blheli suite after flashing it through blheli tool.

Thanks for the support
Log In to reply
Mohamed Zaki on December 11, 2015
first of all , thanks for this amazing tutorial ,iwould like to know if this method works for an afro ESC 30A , it wasn't in the pdf of supported ESCs so it 'll not propably work ,so how it could be programmed
Log In to reply

You need to log-in to comment on articles.


How to - Flashing BLHeli firmware using Arduino