Cookies help us deliver our services. By using our services, you agree to our use of cookies.OK


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 [1] 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).

Analogue Reading

Only the ADC0 pin is capable of Analogue reading and reads a max of 1V with a 10 bit reading (0(min)->1023(max))

Useful Links

Find more links on the Bookmarks page

Instructibles Getting Started

Everything ESP8266 - Forum, lots of stuff, not always reliable (check posting dates - a lot of stuff may be out-of-date)

Deep Sleep - what GPIO to connect, internal firmware issues (Jun2015)

Lots of useful information here:

Complete starter tutorial, including programming via Arduino, AT-mode operation, etc.

If YouTube's your thing, try:

Wiki pages - work in progress

Flash, fancy, UK seller - not so much useful information though.

ESP8266: "It don't come easy!" - Using the ESP8266 as a serial-slave to a Zpuino

NodeMCU Quickstart

Re-flashing firmware

Getting Started

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:

ESP8266 Modules Explained

NodeMCU v2

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.

Connecting to an ESP8266 module

What you'll need:

  1. An ESP8266 module with
  2. A breadboard and suitable cables
  3. A USB to TTL Serial adapter
  4. 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


The default firmware

Article describing the process of re-flashing firmware

Current RTOS SDK Latest Version: 1.4.0 Release date: Feb 28, 2016

Firmware flash download tools (version 2.4 at 31 Mar 31 2016)


Uses the Lua scripting/programming language to control the ESP8266

See for the documentation.

Page describing the process for flashing NodeMCU firmware into a device, with links to Flasher programs for Win32 and Win64


There are a couple of different programs that can be used to upload code and files to an ESP8266 with NodeMCU firmware:

  1. LuaLoader
  2. ESPlorer
  3. NodeLua, an open source web based IDE (Integrated Development Environment)
  4. ZeroBrane Studio - A (general) Lua IDE for writing scripts in
    1. 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 for a walkthrough guide.


A section for Hackspace members to fill up with links to their ESP8266 related projects