ESC reflash with SimonK firmware

ESC reflash with SimonK firmware


I hadn’t gotten around to modifying the internals of my TX so I figured I’d have a go at reflashing the Hobby King 20A (F-20A) ESCs first. I chose this ESC because:

  • They were really cheap
  • They supported reflashing with SimonK’s firmware
  • They had their test pads in a row so it would be easier
  • All it’s FETs were the same (N-Channel)

Some wiring had to be done to match the pin-outs from my 10 pin AVR programmer to the test pads on the ESC. I found the information that I needed over at this RC Groups thread. I also read the instructions found here at openpilot.

As for the firmware we can find it on github along with more useful instructions. I suggest you read all of it and refer to this spreadsheet for your particular ESC.


I wanted to test this really quickly so I just slapped some wiring together with a breadboard to get everything hooked up.


The test pads are in the following order: MOSI, MISO, SCK, -, +, RESET (from bottom to top). I took the time to tin the wire, that I took from an old IDE cable, to make sure I had good contact and no stray wires crossing pads. I then lined it up and held it in place with some scotch tape so that I didn’t have to keep holding it there. The tape doesn’t really maintain the contact so prior to programming I would still need to use my finger to press down, it just keeps me from fumbling around.

With the wiring done, I plugged the AVR programmer into the USB port and fired up AVRFuses.


I set the device to “ATmega8″ which is the microcontroller found on this ESC, and probably most other ESCs compatible with the SimonK firmware. I also pointed the hex file to the firmware file that I had downloaded for my ESC. Then I took a deep breath, pressed my finger to the wire on the ESC and clicked on program. A few seconds later… “SUCCESS”.

I unhooked the ESC and reconnected it to a battery, servo tester and motor. Upon doing this I heard 3 beeps followed by a 4th telling me that everything was good. A few twists on the servo tester and the motor was spooling like a dream.

The flashing instructions make mention of the fuses on the ESC. We do not need to do this and can leave it stock.


In case something was changed accidentally (and you still have access to the ATmega) here are the default fuse settings as seen by AVRFuses.

I, on the other hand, somehow managed to mess things up and bricked 1 of my 4 ESCs during the process. Not too bad for my first time doing this, but now I had to go order another ESC. I’ll probably buy a few as spare.

Comments are closed.