diff --git a/libraries/ESP8266AVRISP/README.md b/libraries/ESP8266AVRISP/README.md new file mode 100644 index 000000000..be691aaa8 --- /dev/null +++ b/libraries/ESP8266AVRISP/README.md @@ -0,0 +1,57 @@ +# 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](http://www.atmel.com/images/doc0943.pdf) 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: + +```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 .