Flash ESCs with ANY Arduino!

by Corsair2014 | October 10, 2018 | (2) Posted in How To

So for the longest time I've had these old Simon-K (generic/unbranded) ESCs lying around from the 'old days' of multirotor builds. I saw numerous expensive flashing tools that were vaguely described and didn't have much documentation, so I never bought anything to update these ESCs. Well after finally finding a new use for the ESCs (to come soon!) I learned how to flash them using an Arduino!

While there are numerous other videos out there on how to do this, they all had gaps somewhere in the method that left uncertainty in the process. If you're like me you don't want to brick your ESCs by flashing them incorrectly, and that is why I made this video, to share my experience and the method I've learned for flashing these ESCs using nothing but an Arduino. And any Arduino should work, as long as you have knowledge of the digital output pins (fairly simple, just look at the schematic for your board).

Enjoy the video, and please leave any questions you might have in the comments! I will do my best to help out, and I know some other knowledgeable folks here would be happy to do the same.

Note: PLEASE watch the whole video carefully, as this is a somewhat delicate process. Be sure you KNOW what kind of chip your ESC has (or the brand/make) or you WILL damage somet

Step 1: Identify your ESC - It is very important that you at least know the Microchip and amperage rating of your ESC. Flashing the wrong firmware can (somewhat permanently) brick your ESC

Step 2: Identify your Arduino Board - This will help you know what firmware to flash to the Arduino, as well as help you know which pins to use for flashing

Step 3: Find "Digital 2" output and Ground - This will differ from board to board, but a schematic of your board should reveal the digital "2" pin

Step 4: Wire the Arduino to the ESC - Digital 2 pin connects to ESC signal, and ground to ESC ground

Step 5: Connect Arduino - Download necessary drivers if your PC doesn't recognize the board http://bit.ly/2x2ACkH

Step 6: Download / Install BLHeli - http://bit.ly/2Misj96 

Step 7: Flash Arduino Board - Navigate to the 'Make interfaces' tab in BLHeli. In the far right tab, 'Make Arduino Interface Board', select your Arduino. Select correct com-port, then hit 'Make Arduino 4-way Interface'

Step 8: Select Hex file for Arduino - This will vary depending on the board you selected etc., but for the Mega2560 boards you will select PB2PB3 hex. Flash.

Step 9: Connect to ESC - Navigate back to "Atmel ESC" tab. Power your ESC from an external battery, select correct com-port, and hit connect. Next, hit "Read Setup"

Step 10: Flash BLHeli - The program will probably ask you if you'd like to flash BLHeli if you currently have SimonK firmware. If you want to flash BLHeli, hit "yes" when prompted. Ensure you select your correct ESC in the following menu. When you are ready, hit "OK" and let the ESC flash.

Step 11: Read Setup - Hit "read setup" again to ensure the flashed values loaded. Now setup whatever settings you would like, then click "write setup" to store them to the ESC.

Congratulations! You have successfully flashed your ESC and can now go and have some fun (:


harveststorm on October 17, 2018
hi, for arduino uno r3 which pin is the digital pin 2? thank you
Log In to reply
Corsair2014 on October 17, 2018
Looks like [Pin 2] will be your D2 pin; see pinout here. Goodluck!
Log In to reply

You need to log-in to comment on articles.

Flash ESCs with ANY Arduino!