From b6531b10f38bfc05db839c95067dc81c92030fd0 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Fri, 12 Dec 2014 04:41:50 +0300 Subject: [PATCH] Add notes for ESP8266 version --- NOTES | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 NOTES diff --git a/NOTES b/NOTES new file mode 100644 index 000000000..20b2141fe --- /dev/null +++ b/NOTES @@ -0,0 +1,73 @@ +Arduino IDE with ESP8266 support +================================ + +This is an early beta. Things might not work as expected, please do report any bugs you find. + +What works +---------- + +- pinMode, digitalRead, digitalWrite +- analogRead +- shiftIn, shiftOut +- millis, micros, delay, delayMicroseconds +- yield (call that once in a while in long loops; delay() works as well) +- Serial + Only 8n1 is supported right now. flush() doesn't work, and there is no propper TX buffer. + When sending long strings (>128 chars at a time) something might get lost. + There will be some diagnostic output from WiFi libraries unless you call Serial.begin. + +- EEPROM + This is a bit different from standard EEPROM class. You need to call EEPROM.begin(size) + before you start reading or writing, size being the number of bytes you want to use. + EEPROM.write does not write to flash immediately, instead you must call EEPROM.commit() + whenever you wish to save changes to flash. EEPROM.end() will also commit, and will + release the RAM copy of EEPROM contents. + +- I2C (Wire library) + Only master mode works, and I haven't tested if Wire.setClock gives correct frequency. + Before using I2C, you need to set pins you will use for SDA and SCL by calling + Wire.pins(int sda, int scl), i.e. Wire.pins(0, 2); on ESP-01. + +- WiFi (ESP8266WiFi library) + This is mostly similar to WiFi shield library. Differences include: + * WiFi.mode(m): set mode to WIFI_AP, WIFI_STA, or WIFI_AP_STA. + * WiFi.softAP(ssid) or WiFi.softAP(ssid, passphrase) to set up an AP. + * WiFi.macAddress(mac) is for STA, WiFi.softAPmacAddress(mac) is for AP. + * WiFi.localIP() is for STA, WiFi.softAPIP() is for AP. + * WiFi.RSSI() doesn't work + * WiFi.scanNetworks() doesn't work yet + WiFiServer and WiFiClient behave mostly the same way as with WiFi shield library. + +- Other libraries that don't rely on low-level access to AVR registers. + +- Upload via serial port + Select "esptool" as a programmer, and pick the correct serial port. + You need to put ESP8266 into bootloader mode before uploading code (pull GPIO0 low and toggle power). + +What is not done yet +-------------------- + +- pin interrupts (attachInterrupt, detachInterrupt) +- analogWrite (PWM) +- pulseIn, pulseOut +- SPI +- UDP +- I2C slave mode +- Serial modes other than 8n1 +- Serial TX buffer +- WiFi.scanNetworks +- WiFi.RSSI +- Upload sketches via WiFi +- Samples for all the libraries + + +License and credits +------------------- + +Arduino is licensed under GPL, with Arduino core libraries licensed under LGPL. +This build includes an xtensa gcc toolchain, which is also under GPL. +Espressif SDK included in this build is under Espressif Public License. + +ESP8266 port contributed by Ivan Grokhotkov, igrokhotkov at gmail dot com. +Drop me a line if you find some bugs not mentioned here! +