AVR In-System Programming over WiFi for ESP8266 =============================================== This library allows an ESP8266 module with the HSPI port available to become an AVR In-System Programmer. Hardware -------- The ESP8266 module connects to the AVR target chip via the standard 6-pin AVR "Recommended In-System Programming Interface Connector Layout" as seen in `AVR910 `__ among other places. If the AVR target is powered by a different Vcc than what powers your ESP8266 chip, you **must provide voltage level shifting** or some other form of buffers. Exposing the pins of ESP8266 to anything larger than 3.6V will damage it. Connections are as follows: +-----------+-------------+ | ESP8266 | AVR / SPI | +===========+=============+ | GPIO12 | MISO | +-----------+-------------+ | GPIO13 | MOSI | +-----------+-------------+ | GPIO14 | SCK | +-----------+-------------+ | any\* | RESET | +-----------+-------------+ For RESET use a GPIO other than 0, 2 and 15 (bootselect pins), and apply an external pullup/down so that the target is normally running. Usage ----- See the included example. In short: .. code:: arduino // Create the programmer object ESP8266AVRISP avrprog(PORT, RESET_PIN) // ... with custom SPI frequency ESP8266AVRISP avrprog(PORT, RESET_PIN, 4e6) // Check current connection state, but don't perform any actions AVRISPState_t state = avrprog.update(); // Serve the pending connection, execute STK500 commands AVRISPState_t state = avrprog.serve(); License and Authors ~~~~~~~~~~~~~~~~~~~ This library started off from the source of ArduinoISP "sketch" included with the Arduino IDE: :: ArduinoISP version 04m3 Copyright (c) 2008-2011 Randall Bohn If you require a license, see http://www.opensource.org/licenses/bsd-license.php Support for TCP on ESP8266 Copyright (c) Kiril Zyapkov .