I have been working on a arduino based robot, and needed a way to program the micro without having to connect it to usb.
The code is available on github : https://github.com/rene-win/esp_avr_programmer
The ESP function as a "web server" where you can upload hex files, using a web browser. Files are stored on the ESP using the 3MB SPIFFS, using a web browser you can select which files to flash, or delete files no longer needed.
1. Change the SSID and PASSWORD in the code to give the ESP wireless access.
2. Install the Arduino SPIFFS plugin : https://github.com/esp8266/arduino-esp8266fs-plugin
3. Compile the code and upload the program data using the SPIFFS plugin
4. Connect the ESP RX/TX pins to the arduino TX/RX pins, and the ESP pin 4 to the Arduino Reset.