Flashing ESCs with SimonK Firmware

17 November 2012

I started flashing my Atmel-based speed controllers with the SimonK firmware a few months ago. There is definitely a big improvement in motor response when flashing the ESCs with the new firmware. I have found this to greatly improve a copter’s stability. This can be seen the most when rapidly descending or ascending.

When I first started flashing my speed controllers I was manually soldering wires to the pads on the ESC. This then evolved into making a 6-pin setup to flash with. The problem with this is that the spacing between pads is not the same for all brand/models of ESCs. Some don’t even have pads in a row.

Now there is a super easy method to flash any Atmega chip and then reflash through the servo cable. This method will also allow you to reverse motor direction purely through software!

Hardware Needed

Software Needed

First Time Flashing

  • Remove heat shrink from your ESC
  • Plug socket tool into USBasp, plug USBasp into your computer
  • Run the KKmulticopter Flash Tool (.cmd file)
  • Use the settings from the screenshot to the right. Be sure to select “+Bootloader” in the controller list if you want to be able to reflash through the servo cable. See this spreadsheet to find what firmware you should use for your ESC
  • Push the socket tool onto the Atmega chip (see pinout to the right) and click the flash button

KKmulticopter flash tool usbasp

Orientation for socket tool

There is a small dot in the upper left corner of the Atmega chip. My socket tool didn’t come marked. The corner that has 3 pins grouped together should be opposite of the dot on the chip.
atmega8 pinout

Re-Flashing / Reversing Motors through ESC Servo Cable

The following method is optional but I find it very useful when upgrading the firmware when a new version is released, when you don’t want to remove the heat wrap from your ESC again, or your motor’s bullet connectors are hard to get to for reversing the motor direction.

Flashing with Turnigy USB Linker

  • Plug your ESC’s servo cable into Turnigy USB Linker, plug this into your computer
  • Power your ESC with a battery
  • Run the KKmulticopter flash tool using the file that ends in “_SERIAL
  • Use the settings from the screenshot to the right, select the COM port that has been assigned to your USB Linker
  • Select your firmware type and if needed use the “Reverse” version of the firmware to reverse the motor spin direction.
  • Click Flash
  • If the flash fails, one reason might be that the voltage (red wire) needs to be temporarily removed from the servo cable

kkmulticopter flash tool usb linker

Additional Resources

  • Eddie


  • questech

    This is great, very, very helpful… Thanks!!

    Question: You mention that “I find it very useful when upgrading the firmware when a new version is released”

    How do you know when a new version is released???

    I can’t find any files newer than circa 2012.

    Your feedback is greatly appreciated!!


  • Pingback: Beginner Quadcopter Kit Buying Guide - Hovership()

  • VItaria VM

    How about flashing an ESC with ARDUINO? Can one make a flashing cable?