I found a very interesting article about programming turnigy compatible ESCs via an ATmega328P running at 12 MHz.
http://frank.circleofcurrent.com/cache/escprogrammingcardhack.htm
In the MultiWii-Project most of us use the same Processor, but at 16 MHz.
My programming-knowledge ends when it gets to close to bitshifting and hardware-timers, but I hope someone of you could translate the code for our Arduino-Board.
My intention is to do something like that:
- the intended esc config shall be configurable in the MultiWii Sketch (Brake:off, Battery-Type:Ni-xx, Cut-off-Type:Soft-Cut, Cut-off-Voltage:Low, Start-Mode:Normal, Timing-Mode:High, Governor-Mode:OFF)
- there should be a switch in the eeprom like "programm_esc_config"
- if it is set to "1" (via a button in the config-tool or manually when uploading the sketch) then write the ESC config on the next power-up
- reset eeprom switch to "0"
Another feature worth a thought is the calibration of the trottle-range, but I am not sure how to include this in the process.
The ESCs also send their current config to the programming-card so it should also be possible to check the current config with the arduino and rewrite it only when it differs from the intended config. With this it could be possible to automate the whole process and the user can be sure the ESCs are perfectly programmed at every flight.
I am going to donate 15€ (as a little motivation-help

Best regards,
Peter