ESP8266
The ESP8266 is a low-cost Wi-Fi microchip, with built-in TCP/IP networking software, and microcontroller capability, produced by Espressif Systems in Shanghai, China.
The chip was popularized in the English-speaking maker community in August 2014 via the ESP-01 module, made by a third-party manufacturer Ai-Thinker. This small module allows microcontrollers to connect to a Wi-Fi network and make simple TCP/IP connections using Hayes-style commands. However, at first, there was almost no English-language documentation on the chip and the commands it accepted. The very low price and the fact that there were very few external components on the module, which suggested that it could eventually be very inexpensive in volume, attracted many hackers to explore the module, the chip, and the software on it, as well as to translate the Chinese documentation.
The ESP8285 is a similar chip with a built-in 1 MiB flash memory, allowing the design of single-chip devices capable of connecting via Wi-Fi.
These microcontroller chips have been succeeded by the ESP32 family of devices.
Features
- Processor: L106 32-bit RISC microprocessor core based on the Tensilica Diamond Standard 106Micro running at 80 or 160 MHz
- Memory of 160 Kbytes of RAM which are segmented into:
- * 32 KB instruction RAM
- * 32 KB instruction cache RAM
- * 96 KB of dRAM which are segmented into 80 KB dRAM for SDK and heap memory, and 16 KB for ROM
- External QSPI flash: up to 16 MiB is supported
- IEEE 802.11 b/g/n Wi-Fi
- * Integrated TR switch, balun, LNA, power amplifier and matching network
- * WEP or WPA/WPA2 authentication, or open networks
- 17 GPIO pins
- Serial Peripheral Interface Bus
- I²C
- I²S interfaces with DMA
- UART on dedicated pins, plus a transmit-only UART can be enabled on GPIO2
- 10-bit ADC
Pinout of ESP-01
- GND, Ground
- GPIO 2, General-purpose input/output No. 2
- GPIO 0, General-purpose input/output No. 0
- RX, Receive data in, also GPIO3
- VCC, Voltage
- RST, Reset
- CH_PD, Chip power-down
- TX, Transmit data out, also GPIO1
SDKs
An alternative to Espressif's official SDK is the open-source ESP-Open-SDK that is based on the GNU Compiler Collection toolchain, maintained by Max Filippov. Another alternative is the "Unofficial Development Kit" by Mikhail Grigorev.
Other SDKs, mostly open-source, include:
- Arduino — A C++-based firmware. With this core, the ESP8266 CPU and its Wi-Fi components can be programmed like any other Arduino device. .
- — An open-source BASIC-like interpreter specifically tailored for the Internet of Things. Self-hosting browser-based development environment.
- ESP Easy — Developed by home automation enthusiasts.
- — ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through home automation systems.
- - open-source firmware, for home automation.
- — Open-source FreeRTOS-based ESP8266 software framework.
- — Free and open integrated SDK for ESP8266/ESP8285 chips.
- Espruino — An actively maintained JavaScript SDK and firmware, closely emulating Node.js. Supports a few MCUs, including the ESP8266.
- — Open-source ESP8285/ESP8266 firmware.
- — Port of Jones Forth to the ESP8266 microcontroller.
- — A port of MicroPython to the ESP8266 platform.
- — includes JavaScript language and library support for the ESP8266
- Mongoose OS — An open-source operating system for connected products. Supports ESP8266 and ESP32. Develop in C or JavaScript.
- NodeMCU — A Lua-based firmware.
- — A cross-platform IDE and unified debugger, which sits on top of Arduino code and libraries.
- — Forth-inspired programming language for the ESP8266.
- — An actively developed asynchronous C/C++ framework with superb performance and multiple network features.
- — A version of the Lisp programming language specifically designed to run on processors with a limited amount of RAM.
- — A subset of Microsoft's widely-used Visual Basic 6, which has been adapted as a control language for the ZX microcontroller family and the ESP8266.
- Zerynth — IoT framework for programming ESP8266 and other microcontrollers in Python.
- IOTBAH - is An operating system for Espressif ESP8266
- Webserver, easy IoT solution.
Espressif modules
| Name | Active pins | Pitch | Form factor | LEDs | Antenna | Shielded | Dimensions | Notes |
| 18 | 1.5 mm | 2×9 castellated | PCB trace | 18 × 20 | FCC ID 2AC7Z-ESPWROOM02. | |||
| 18 | 1.5 mm | 2×9 castellated | PCB trace | 18 × 20 | FCC ID 2AC7Z-ESPWROOM02D. Revision of ESP-WROOM-02 compatible with both 150-mil and 208-mil flash memory chips. | |||
| 18 | 1.5 mm | 2×9 castellated | U.FL socket | 18 × 20 | Differs from ESP-WROOM-02D in that includes an U.FL compatible antenna socket connector. | |||
| 20 | 1.5 mm | 2×10 castellated | PCB trace | 16 × 23 | FCC ID 2AC7Z-ESPWROOMS2. |
In the table above, "Active pins" include the GPIO and ADC pins with which external devices can be attached to the ESP8266 MCU. The "Pitch" is the space between pins on the ESP8266 module, which is important to know if the device will be used on a breadboard. The "Form factor" also describes the module packaging as "2 × 9 DIL", meaning two rows of 9 pins arranged "Dual In Line", like the pins of DIP ICs. Many ESP-xx modules include a small onboard LED which can be programmed to blink and thereby indicate activity. There are several antenna options for ESP-xx boards including a trace antenna, an onboard ceramic antenna, and an external connector that allows an external Wi-Fi antenna to be attached. Since Wi-Fi communications generate a lot of RFI, governmental bodies like the FCC like shielded electronics to minimize interference with other devices. Some of the ESP-xx modules come housed within a metal box with an FCC seal of approval stamped on it. First and second world markets will likely demand FCC approval and shielded Wi-Fi devices.
Ai-Thinker modules
This is the first series of modules made with the ESP8266 by the third-party manufacturer Ai-Thinker and remains the most widely available. They are collectively referred to as "ESP-xx modules". To form a workable development system, they require additional components, especially a serial TTL-to-USB adapter and an external 3.3 volt power supply. Novice ESP8266 developers are encouraged to consider larger ESP8266 Wi-Fi development boards like the NodeMCU which includes the USB-to-UART bridge and a Micro-USB connector coupled with a 3.3 volt power regulator already built into the board. When project development is complete, those components are not needed and these cheaper ESP-xx modules are a lower power, smaller footprint option for production runs.In the Notes column, Flash memory sizes apply to the given module and all those below it in the table. Exceptions which apply to a single module are shown in.
| Name | Active pins | Pitch | Form factor | LEDs | Antenna | Shielded | Dimensions | Notes |
| ESP-01 | 6 | 0.1 in | 2×4 DIL | PCB trace | 14.3 × 24.8 | 512 KiB Flash and blue PCB from a generic manufacturer. 1 MiB Flash, AI-Cloud and black PCB from AI-Thinker. | ||
| ESP-01S | 6 | 0.1 in | 2×4 DIL | PCB trace | 14.4 × 24.7 | 1 MiB Flash | ||
| 16 | 1.6 mm | 2×9 edge connector | PCB trace | 18.0 × 18.0 | Uses ESP8285. | |||
| ESP-02 | 6 | 0.1 in | 2×4 castellated | U.FL socket | 14.2 × 14.2 | |||
| ESP-03 | 10 | 2 mm | 2×7 castellated | Ceramic | 17.3 × 12.1 | |||
| ESP-04 | 10 | 2 mm | 2×4 castellated | - | 14.7 × 12.1 | |||
| ESP-05 | 3 | 0.1 in | 1×5 SIL | U.FL socket | 14.2 × 14.2 | |||
| ESP-06 | 11 | various | 4×3 dice | - | 14.2 × 14.7 | Not FCC approved. | ||
| ESP-07 | 14 | 2 mm | 2×8 pinhole | Ceramic + U.FL socket | 20.0 × 16.0 | Not FCC approved. | ||
| ESP-07S | 14 | 2 mm | 2×8 pinhole | U.FL socket | 17.0 × 16.0 | FCC and CE approved. | ||
| ESP-08 | 10 | 2 mm | 2×7 castellated | - | 17.0 × 16.0 | Not FCC approved. | ||
| ESP-09 | 10 | various | 4×3 dice | - | 10.0 × 10.0 | |||
| ESP-10 | 3 | 2 mm | 1×5 castellated | - | 14.2 × 10.0 | |||
| ESP-11 | 6 | 1.27 mm | 1×8 pinhole | Ceramic | 17.3 × 12.1 | |||
| ESP-12 | 14 | 2 mm | 2×8 castellated | PCB trace | 24.0 × 16.0 | FCC and CE approved. | ||
| ESP-12E | 20 | 2 mm | 2×8 castellated | PCB trace | 24.0 × 16.0 | 4 MiB flash. | ||
| ESP-12F | 20 | 2 mm | 2×8 castellated | PCB trace | 24.0 × 16.0 | FCC and CE approved. Improved antenna performance. | ||
| ESP-12S | 14 | 2 mm | 2×8 castellated | PCB trace | 24.0 × 16.0 | FCC approved. | ||
| ESP-13 | 16 | 1.5 mm | 2×9 castellated | PCB trace | W18.0 × L20.0 | Marked as "FCC". Shielded module is placed sideways, as compared to the ESP-12 modules. | ||
| ESP-14 | 22 | 2 mm | 2×8 castellated +6 | PCB trace | 24.3 × 16.2 | Mostly advertised with "AI Cloud Inside". |