* update examples * fix serial<->tcp example, use STASSID instead of SSID (name collision) * fix HTTPSRequest.ino * update AxTLS HTTPS examples, update AxTLS API to deprecated * fixes * fixes + fix astyle (no preproc directives) + restyling script * fix HTTPClient library * fixes * common.sh: do not reload arduino when already present (for locally CI testing) * common.sh: do not reload ArduinoJson when already present (for locally CI testing) * fix * fix * fix deprecated example * fix WiFiHTTPSServer.ino * reduce footprint * wipfix * fix led builtin * fix example * finished updating APSSID on all examples * style * restyle examples * helper to run CI test locally * local CI runner more verbose * +const * deprecation deprecation * deprecation * Update NTPClient.ino const char[] => const char * * Update interactive.ino const char[] => const char *
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:
// 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 <kiril@robotev.com>.