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!
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
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.
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.
- 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