Flashing ESC RCTimer 20A
Please read Liability Disclaimer and License Agreement CAREFULLY
Electronic Speed Controller (ESC) is used to vary the speed of an electric motor.
The ESC that i bought for my Quadcopter is RC Timer 20A and uses an ATMega 8 MCU as controller. By default the MCU is clocked at 16MHz without external oscillator which means that the frequency will drift with the temperature up to 15%.
Another thing is that the standard ESC are not designed for multirotor applications, so their performance for a Quadcopter is not great. giving these facts i have decided to update the firmware of my ESC's with the one provided by SimonK to improve the performance from the software point of view, but in order to have a stabilized oscillator i have decided to add to my ESC's also a 16MHz crystal that i soldered on the MCU contacts as shown in the picture below.
Flashing an ESC can help improve your motor's overall performance and therefore improve the flying capabilities of your Quadcopter.
In order to flash the Firmware to the MCU i have tried several software's that are used by the community for this job, but unfortunately for me they did not work.
DO NOT SOLDER THE CRYSTAL BEFORE FLASHING, IT WILL NOT WORK!!!
BACKUP your EEPROM and Flash using "READ" buttons before flashing new firmware.
Because i have flashed before similar MCU's i decided to apply the ATMega328P - Burning bootloader for the ESC flashing...and it worked like a charm.
To do this connect the pins shown in the ESC RcTimer 20A ISP Connections to an Arduino board like shown in the link, then with AvreDude-GUI select the "Programmer", "Device" and type "Command line Options" like shown in AVRDUDE BitbBang Method image, then click on "READ" from "Fuse" nad "Lock Bit" (the values will not be like in the image). If they are read then the connection is working, if not check your wiring. Next click on "Chip Erase", after select the "tgy.hex" file in "Flash" field and finaly "Erase - Write - Verrify". After the process is finished type in the values foe "Fuse" if you want to change them and click "Write".
Without external oscillator: avrdude -U lfuse:w:0x24:m -U hfuse:w:0xda:m
With external oscillator: avrdude -U lfuse:w:0x3f:m -U hfuse:w:0xca:m
After the firmware flashing is done solder on the pins of ATMega 8 the assembly of crystal and capacitors and you have a working ESC with external oscillator.
Connect your ESC to the motor and receiver and calibrate the Min&Max throttle using a limited current source like a 9V battery,, if it works the
1. Reflash the Quadcopter controller and test it at 20MHz and why not at 24MHz
2. Reflash the Quadcopter ESC's and test it at 20MHz and why not at 24MHz