Arduino Remote Firmware Upload over Wifi - ESP8266

To support for remote upload arduino firmware, such a dozen solutions to perform but they almost be complex and further confuse to someone who is new comer. I also try to do some methods such as Bluetooth HC-05 or TFTP over LAN but can not be satisfied with me. So i decide to develope by myself a new way to upload that is Wifi based with nuclear element is ESP8266.

Before talking to detail firmware for ESP8266, Just please edit the platform.txt (C:\Program Files (x86)\Arduino\hardware\arduino\avr) as below, Note for highlight and Bold -V symbol.

Step 1:

tools.avrdude.upload.pattern="{cmd.path}" "-C{config.path}" {upload.verbose} -p{build.mcu} -c{upload.protocol} -P{serial.port} -b{upload.speed} -D -V "-Uflash:w:{build.path}/{build.project_name}.hex:i"

Step 2:

Use ESP8266 wifi module and flash firmware "TCP-UART" with parsing header of STK-500 "________________" to reset Arduino board with GPIO2 Pin, Remember if first reset can not meet bootload protocol then wait 10mS before reset again. Ofcourse the ESP8266 should change serial baud rate to 115200 before transfer header packet follow by reset signal.

Step 3:

Connect RX,TX and GPIO2 to reset Pin of arduino and enjoy.

I will upload schematics and firmware to this page later. The project which i am earning is electric load monitoring use  Arduino 2560, ESP8266, ACS-712  in my college. It is an Iot base ESP8266 but capable to remote firmware upgrade