- 1 IoThursday
- 2 ESP8266
The ESP8266 has been discussed quite a bit in the regular IoThursday meetings.
The ESP8266 is a microcontroller that has WiFi built in, making it a great starting device for all things IoT.
As of 2016-04-01 it is not currently possible to route traffic between multiple clients connected to the ESP8266 when it is acting as an Access Point (AP).
To the clients it appears they are in a "client isolation mode" in that they can talk to the ESP8266 but no other devices on that particular WiFi network. Forum posts and questions asked on  suggest this may be a limitation of the firmwares currently on offer, and that it may be possible (if someone were willing to spend the time and effort) to develop a routable firmware, however it's not clear if the limited hardware of the modules would be a limiting factor.
Pulse Width Modulation (PWM)
While it's possible to use PWM on most of the GPIO pins, and in fact most documentation reads "any of the GPIO pins", with NodeMCU 0.9.6 build 20150704 firmware it is not possible to use PWM on GPIO 16 (I/O interrupt 0).
Only the ADC0 pin is capable of Analogue reading and reads a max of 1V with a 10 bit reading (0(min)->1023(max))
Everything ESP8266 - Forum, lots of stuff, not always reliable (check posting dates - a lot of stuff may be out-of-date) http://www.esp8266.com/
Deep Sleep - what GPIO to connect, internal firmware issues (Jun2015) http://bbs.espressif.com/viewtopic.php?t=562
Lots of useful information here: https://nurdspace.nl/ESP8266
Complete starter tutorial, including programming via Arduino, AT-mode operation, etc. http://rancidbacon.com/files/kiwicon8/ESP8266_WiFi_Module_Quick_Start_Guide_v_1.0.4.pdf
If YouTube's your thing, try: https://www.youtube.com/watch?v=qU76yWHeQuw
Wiki pages - work in progress http://www.esp8266.nu/index.php/Main_Page
Flash, fancy, UK seller - not so much useful information though. http://esp8266.co.uk/
ESP8266: "It don't come easy!" - Using the ESP8266 as a serial-slave to a Zpuino http://www.xess.com/blog/esp8266-it-dont-come-easy/
NodeMCU Quickstart http://benlo.com/esp8266/esp8266QuickStart.html
Re-flashing firmware http://www.xess.com/blog/esp8266-reflash/
A section for useful information on getting started with an ESP8266 module
A subsection to explain the different modules and what differs between them
List of modules on the ESP8266 community wiki: http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family
An open hardware board (costing about £3.50) that combines the ESP-12-E core (32Mbits(4MBytes) flash) with a CP2102 USB-UART so you can connect it directly to a PC USB with a standard USB micro cable. It comes flashed with a Lua core but that can easily be replaced with an Arduino core with all the Lua core features plus anything vanilla that works with Arduino.
- Official site: http://nodemcu.com/index_cn.html
- Open hardware schematics, PCB layouts, Gerbers, etc: https://github.com/nodemcu/nodemcu-devkit-v1.0
- NB: hype of version numbers when sold by various sellers on ebay! See http://frightanic.com/iot/comparison-of-esp8266-nodemcu-development-boards/ for the lowdown at time of writing.
- Wikipedia page: https://en.wikipedia.org/wiki/NodeMCU
- Michael's initial investigations page at NodeMCU_v2
Connecting to an ESP8266 module
What you'll need:
- An ESP8266 module with
- A breadboard and suitable cables
- A USB to TTL Serial adapter
- A computer to connect to the ESP8266 with
A subsection to explain the different firmwares available for the ESP8266 and how they differ
Page with links to different firmwares http://www.electrodragon.com/w/Category:ESP8266_Firmware_and_SDK
The default firmware
Article describing the process of re-flashing firmware http://www.allaboutcircuits.com/projects/update-the-firmware-in-your-esp8266-wi-fi-module/
Current RTOS SDK Latest Version: 1.4.0 Release date: Feb 28, 2016 http://bbs.espressif.com/viewtopic.php?f=46&t=1827
Firmware flash download tools (version 2.4 at 31 Mar 31 2016) http://bbs.espressif.com/viewtopic.php?f=57&t=433
Uses the Lua scripting/programming language to control the ESP8266
See http://nodemcu.readthedocs.org/en/dev/en/ for the documentation.
Page describing the process for flashing NodeMCU firmware into a device, with links to Flasher programs for Win32 and Win64 http://randomnerdtutorials.com/flashing-nodemcu-firmware-on-the-esp8266-using-windows/
There are a couple of different programs that can be used to upload code and files to an ESP8266 with NodeMCU firmware:
- NodeLua, an open source web based IDE (Integrated Development Environment)
- ZeroBrane Studio - A (general) Lua IDE for writing scripts in
- NOTE: This IDE is not specific to the NodeMCU implementation, but can be used to write general Lua code.
The ESP8266 Arduino core brings support for ESP8266 boards and modules to the Arduino environment. It lets you write sketches using familiar Arduino functions and libraries, and run them directly on ESP8266 with no external microcontroller required. ESP8266 Arduino core comes with libraries to communicate over WiFi using TCP and UDP, set up HTTP, mDNS, SSDP, and DNS servers, do OTA updates, use a file system in flash memory, work with SD cards, servos, SPI and I2C peripherals.
Installation into Arduino is simple with recent versions by using the Boards Manager: see http://esp8266.github.io/Arduino/versions/2.1.0/doc/installing.html for a walkthrough guide.
A section for Hackspace members to fill up with links to their ESP8266 related projects