ESP8266

ESP8266
ESP8266-IC
ManufacturerEspressif Systems
Type32-bit microcontroller
CPUTensilica Diamond Standard 106Micro (aka. L106) @ 80 MHz (default) or 160 MHz
Memory32 KiB instruction, 80 KiB user data
Input16 GPIO pins
Power3.3 V DC
SuccessorESP32
ESP-01 module by Ai-Thinker with ESP8266EX SoC

The ESP8266 is a low-cost Wi-Fi microcontroller, with built-in TCP/IP networking software, and microcontroller capability, produced by Espressif Systems[1] 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.[2] 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.[3]

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.[4]

These microcontroller chips have been succeeded by the ESP32 family of devices.

Features

[edit]
ESP-01 module wireframe drawing

Pinout of ESP-01

[edit]
ESP-01 module pinout

The pinout is as follows for the common ESP-01 module:

  1. GND, Ground (0 V)
  2. GPIO 2, General-purpose input/output No. 2
  3. GPIO 0, General-purpose input/output No. 0
  4. RX, Receive data in, also GPIO3
  5. VCC, Voltage (+3.3 V; can handle up to 3.6 V)
  6. RST, Reset
  7. CH_PD, Chip power-down
  8. TX, Transmit data out, also GPIO1
ESP8266 Die shot

SDKs

[edit]

In October 2014, Espressif Systems released a software development kit (SDK) for programming the chip directly, which removed the need for a separate microcontroller.[9] Since then, there have been many official SDK releases from Espressif; Espressif maintains two versions of the SDK — one that is based on FreeRTOS and the other based on callbacks.[10]

An alternative to Espressif's official SDK is the open-source ESP-Open-SDK[11] that is based on the GNU Compiler Collection (GCC) toolchain, maintained by Max Filippov.[12] Another alternative is the "Unofficial Development Kit" by Mikhail Grigorev.[13][14]

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. The ESP8266 Arduino Core is available through GitHub.
  • ESP8266 BASIC — An open-source BASIC-like interpreter specifically tailored for the Internet of Things (IoT). Self-hosting browser-based development environment.
  • ESP Easy — Developed by home automation enthusiasts.
  • ESPHome — ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through home automation systems.
  • Tasmota - open-source firmware, for home automation.
  • ESP-Open-RTOS — Open-source FreeRTOS-based ESP8266 software framework.
  • ESP-Open-SDK — Free and open (as much as possible) 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.
  • ESPurna — Open-source ESP8285/ESP8266 firmware.
  • Forthright — Port of Jones Forth to the ESP8266 microcontroller.
  • MicroPython — A port of MicroPython (an implementation of Python for embedded devices) to the ESP8266 platform.
  • Moddable SDK — 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.[15]
  • NodeMCU — A Lua-based firmware.
  • PlatformIO — A cross-platform IDE and unified debugger, which sits on top of Arduino code and libraries.
  • Punyforth — Forth-inspired programming language for the ESP8266.
  • Sming — An actively developed asynchronous C/C++ framework with superb performance and multiple network features.
  • uLisp — A version of the Lisp programming language specifically designed to run on processors with a limited amount of RAM.
  • ZBasic for ESP8266 — 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[16] and other microcontrollers in Python.
  • IOTBAH - is An operating system (OS) for Espressif ESP8266
  • EspOS Webserver, easy IoT solution.

Espressif modules

[edit]
ESP-WROOM-02

This is the series of ESP8266-based modules made by Espressif:

Name Active pins Pitch Form factor LEDs Antenna Shielded Dimensions (mm) Notes
ESP-WROOM-02[17] 18 1.5 mm 2×9 castellated No PCB trace Yes 18 × 20 FCC ID 2AC7Z-ESPWROOM02.
ESP-WROOM-02D[18] 18 1.5 mm 2×9 castellated No PCB trace Yes 18 × 20 FCC ID 2AC7Z-ESPWROOM02D. Revision of ESP-WROOM-02 compatible with both 150-mil and 208-mil flash memory chips.
ESP-WROOM-02U[18] 18 1.5 mm 2×9 castellated No U.FL socket Yes 18 × 20 Differs from ESP-WROOM-02D in that includes an U.FL compatible antenna socket connector.
ESP-WROOM-S2[19] 20 1.5 mm 2×10 castellated No PCB trace Yes 16 × 23 FCC ID 2AC7Z-ESPWROOMS2.

In the table above (and the two tables which follow), "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 (Radio Frequency Interference), 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.[citation needed]

Ai-Thinker modules

[edit]
ESP-01 module
Ai-Thinker ESP8266 modules (ESP-12F, black color) soldered to breakout boards (white color)

This is the first series of modules made with the ESP8266 by the third-party manufacturer Ai-Thinker and remains the most widely available.[20] 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 (sometimes called a USB-to-UART bridge) 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 (mm) Notes
ESP-01 6[21] 0.1 in 2×4 DIL Yes PCB trace No 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[22] 0.1 in 2×4 DIL Yes PCB trace No 14.4 × 24.7 1 MiB Flash
ESP-01M 16 1.6 mm 2×9 edge connector No PCB trace Yes 18.0 × 18.0 Uses ESP8285 (1 MiB built-in flash).
ESP-02 6 0.1 in 2×4 castellated No U.FL socket No 14.2 × 14.2
ESP-03 10 2 mm 2×7 castellated No Ceramic No 17.3 × 12.1
ESP-04 10 2 mm 2×4 castellated No None No 14.7 × 12.1
ESP-05 3 0.1 in 1×5 SIL No U.FL socket No 14.2 × 14.2
ESP-06 11 various 4×3 dice No None Yes 14.2 × 14.7 Not FCC approved.
ESP-07 14 2 mm 2×8 pinhole Yes Ceramic + U.FL socket Yes 20.0 × 16.0 Not FCC approved.
ESP-07S 14 2 mm 2×8 pinhole No U.FL socket Yes 17.0 × 16.0 FCC and CE approved.
ESP-08 10 2 mm 2×7 castellated No None Yes 17.0 × 16.0 Not FCC approved.
ESP-09 10 various 4×3 dice No None No 10.0 × 10.0
ESP-10 3 2 mm 1×5 castellated No None No 14.2 × 10.0
ESP-11 6 1.27 mm 1×8 pinhole No Ceramic No 17.3 × 12.1
ESP-12 14 2 mm 2×8 castellated Yes PCB trace Yes 24.0 × 16.0 FCC and CE approved.[23]
ESP-12E 20 2 mm 2×8 castellated Yes PCB trace Yes 24.0 × 16.0 4 MiB flash.
ESP-12F 20 2 mm 2×8 castellated Yes PCB trace Yes 24.0 × 16.0 FCC and CE approved. Improved antenna performance.
ESP-12S 14 2 mm 2×8 castellated Yes PCB trace Yes 24.0 × 16.0 FCC approved.[24]
ESP-13 16 1.5 mm 2×9 castellated No PCB trace Yes 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 Yes PCB trace Yes 24.3 × 16.2 Mostly advertised with "AI Cloud Inside".

Other boards

[edit]
SparkFun ESP8266 Thing

The reason for the popularity of many of these boards over the earlier ESP-xx modules is the inclusion of an on-board USB-to-UART bridge (like the Silicon Labs' CP2102 or the WCH CH340G) and a Micro-USB connector, coupled with a 3.3-volt regulator to provide both power to the board and connectivity to the host (software development) computer – commonly referred to as the console, making it an easy development platform. With earlier ESP-xx modules, these two items (the USB-to-serial adapter and the regulator) had to be purchased separately and be wired into the ESP-xx circuit. Modern ESP8266 boards like the NodeMCU are easier to work with and offer more GPIO pins. Most of the boards listed here are based on the ESP-12E module, but new modules are being introduced seemingly every few months.

Name Active pins Pitch Form factor LEDs Antenna Shielded Dimensions (mm) Notes
Bolt IoT 14 0.1 in 2×14 DIL Yes PCB trace Yes 30 × 40 Comes with an onboard SD card and features like Lib-Discovery and Fail Safe Mode. Has its own cloud for IoT.
Olimex MOD-WIFI-ESP8266[25] 2 0.1 in UEXT module Yes PCB trace No ? Only RX/TX are connected to UEXT connector.
Olimex MOD-WIFI-ESP8266-DEV[26] 20 0.1 in 2×11 DIL + castellated Yes PCB trace No 33 × 23 All available GPIO pins are connected, also has pads for soldering UEXT connector (with RX/TX and SDA/SCL signals).
NodeMCU DEVKIT 14 0.1 in 2×15 DIL Yes PCB trace Yes 49 × 24.5 Uses the ESP-12 module; includes USB to serial interface.
Adafruit Huzzah ESP8266 breakout[27] 14 0.1 in 2×10 DIL Yes PCB trace Yes 25 × 38 Uses the ESP-12 module.
SparkFun ESP8266 Thing[28] WRL-13231 12 0.1 in 2×10 DIL Yes PCB trace + U.FL socket No 58 × 26 FTDI serial header, Micro-USB socket for power, includes Li-ion battery charger.
KNEWRON Technologies smartWIFI[29] 12 0.1 in 2×20 DIL Yes 1 RGB PCB trace Yes 25.4 × 50.8 CP2102 USB bridge, includes battery charger, micro-USB socket for power and battery charging, 1 RGB LED and USER / Reflash button.
ArduCAM ESP8266 UNO[30] 12+ 0.1 in Arduino Uno Yes PCB trace Yes 53.4 × 68.6 Uses the AI Thinker's ESP8266MOD module and features Micro-USB port, Battery pins, Camera pins and uSD card all on the same board. Fully compatible with Arduino Uno shields.
DoIT ESPduino[31] 12 0.1 in Arduino Uno Yes PCB trace Yes 53.4 × 68.6 Uses the ESP-WROOM-02 (ESP-13) module and USB Type B port. Fully compatible with Arduino Uno shields.
WeatherPlus - SwitchDoc Labs[32] 26+Grove 0.1 in Custom Yes PCB trace Yes 86.0 × 50.0 Uses the AI Thinker Model ESP8266MOD (ESP-13) module and FTDI for Programming and Mini-USB port for power. Fully compatible with Adafruit Huzzah software. Includes BMP280 Barometer, ADS1115 and Grove I2C connectors. Plugs for Anemometer/Wind Vane/Rain Bucket.
WeMos[33] D1[34] 12 0.1 in Arduino Uno Yes PCB trace Yes 53.4 × 68.6 Uses the ESP-12F module and Micro-USB socket. Discontinued in favor of WeMos D1 R2.
WeMos[33] D1 R2[35] 12 0.1 in Arduino Uno Yes PCB trace Yes 53.4 × 68.6 Uses ESP-12F module and has Micro-USB socket.
WeMos[33] D1 mini[36] 12 0.1 in 2×8 DIL Yes PCB trace Yes 25.6 × 34.2 Uses ESP-12S module and has Micro-USB socket.
WeMos[33] D1 mini Lite[37] 12 0.1 in 2×8 DIL Yes PCB trace Yes 25.6 × 34.2 Based on the ESP8285, an ESP8266 with 1 MiB flash built-in; has Micro-USB socket.
WeMos[33] D1 mini Pro[38] 12 0.1 in 2×8 DIL Yes Ceramic and U.FL socket Yes 25.6 × 34.2 Uses ESP8266EX chip; has Micro-USB socket, U.FL antenna connector, and 16 MiB flash.
ESPert ESPresso Lite[39] 16 0.1 in 2×8 DIL Yes PCB trace Yes 26.5 × 57.6 Uses the ESP-WROOM-02 module. Produced in limited quantity as beta version.
ESPert ESPresso Lite V2.0[40] 24 0.1 in 2×10 DIL Yes PCB trace Yes 28 × 61 Improved version of ESPresso Lite.
In-Circuit ESP-ADC[41] 18 0.1 in 2×9 DIL No U.FL socket Yes 22.9 × 14.9 Uses ESP8266EX chip.
Watterott ESP-WROOM02-Breakout[42] 14 0.1 in 2×10 DIL Yes PCB trace Yes 40.64 × 27.94 Uses the Espressif ESP-WROOM-02 module.
Geek Wave Solution IOT WROOM-02 Dev. Board[43] 20 0.1 in ? Yes PCB trace Yes 93.80 × 80.02 Development board with Espressif ESP-WROOM-02 module and four relays.
Witty 2-piece board[44] 20 0.1 in ? Yes PCB trace Yes ? Development board with Espressif ESP8266 ESP-12E and separate board for CH340G USB interface.

ESP32-C3

[edit]

In 2020, Espressif announced a new chip, ESP32-C3, which is pin-compatible with ESP8266. It is based on a single core RISC-V 32-bit CPU with a clock speed of up to 160 MHz. It includes 400 KiB of SRAM and 384 KiB ROM storage space built in.[45]

See also

[edit]

References

[edit]
  1. ^ "ESP8266 Overview". Espressif Systems. Retrieved 2017-10-02.
  2. ^ Brian Benchoff (August 26, 2014). "New Chip Alert: The ESP8266 WiFi Module (It's $5)". Hackaday. Retrieved 2015-06-24.
  3. ^ Brian Benchoff (September 6, 2014). "The Current State of ESP8266 Development". Hackaday. Retrieved 2015-06-24.
  4. ^ "Espressif Announces ESP8285 Wi-Fi Chip for Wearable Devices". Espressif Systems. Mar 9, 2016. Archived from the original on 2016-07-25. Retrieved 2016-07-10.
  5. ^ "ESP8266 Non-OS SDK API Reference, Chapter 2.4. System Performance" (PDF). espressif.com. Espressif Systems.
    The flash mode and frequency directly influence the code execution speed. Setting the flash to a higher frequency and QIO mode may produce the best results in terms of performance, though it costs in terms of power consumption. "ESP8266 Non-OS SDK API Reference" (PDF). espressif.com. Espressif Systems.
    Success varies chip to chip.[citation needed]
  6. ^ "ESP8266 Non-OS SDK API Reference, Chapter 2.5. System Memory" (PDF). espressif.com. Espressif Systems.
  7. ^ "ESP8266 Technical Reference, Version 1.7" (PDF). Espressif Systems. Retrieved 2021-04-22.
  8. ^ "Espressif ESP8266 Developer Zone Discussion Forum: Does ESP8266 actually have hardware I2C?". Espressif Systems. 2014-10-27. Retrieved 2017-10-02.
  9. ^ Brian Benchoff (October 25, 2014). "An SDK for the ESP8266 WiFi Chip". Hackaday. Retrieved 2015-06-24.
  10. ^ "Official SDK release from Espressif for ESP8266". Espressif Systems. July 29, 2015. Retrieved 2015-08-08.
  11. ^ Paul Sokolovsky (11 November 2022). "esp-open-sdk: Free and open (as much as possible) integrated SDK for ESP8266/ESP8285 chips". GitHub.
  12. ^ Max Filippov (February 15, 2015). "ESP8266 GCC Toolchain". GitHub. Retrieved 2015-08-08.
  13. ^ Mikhail Grigorev (29 August 2022). "Unofficial Development Kit for Espressif ESP8266 (GitHub Repository)". GitHub.
  14. ^ Mikhail Grigorev. "Project Unofficial Development Kit for Espressif ESP8266".
  15. ^ "Mongoose OS Documentation". Cesanta. Archived from the original on 2018-01-27. Retrieved 2017-10-02.
  16. ^ Luigi F. Cerfeda (June 15, 2017). "Python for ESP8266 in just a few clicks using Zerynth". Zerynth (Kinzica Ventures LLC).
  17. ^ "Espressif ESP-WROOM-02". Espressif Systems. Retrieved 2015-07-29.
  18. ^ a b "ESP-WROOM-02D/ESP-WROOM-02U Datasheet" (PDF). Espressif Systems. Archived from the original (PDF) on 2017-12-01. Retrieved 2017-11-25.
  19. ^ "ESP-WROOM-S2 Datasheet" (PDF). Espressif Systems. Archived from the original (PDF) on 2017-10-08. Retrieved 2017-10-08.
  20. ^ "ESP8266 module family". ESP8266 Community Wiki. Retrieved 2015-06-24.
  21. ^ "ESP-01 (esp8266): high-resolution pinout and specs". Mischianti.
  22. ^ "ESP-01S (esp8266): high-resolution pinout and specs". Mischianti.
  23. ^ "2ADUIESP-12 by Shenzhen Anxinke technology co., LTD for Wi-Fi Module". FCC. December 30, 2014. Retrieved 2015-06-24.
  24. ^ "FCC ID 2AHMR-ESP12S, Shenzhen Ai-Thinker Technology co., LTD WIFI MODULE -ESP12S". FCC. August 4, 2016. Retrieved 2017-07-17.
  25. ^ "MOD-WIFI-ESP8266". Olimex. Retrieved 2015-06-25.
  26. ^ "MOD-WIFI-ESP8266-DEV". Olimex. Retrieved 2015-06-25.
  27. ^ "Adafruit HUZZAH ESP8266 Breakout". Adafruit Industries. Retrieved 2015-06-25.
  28. ^ "SparkFun ESP8266 Thing". SparkFun. Retrieved 2015-06-27.
  29. ^ "KNEWRON smartWIFI". KNEWRON. Archived from the original on November 14, 2016. Retrieved 2016-03-04.
  30. ^ ESP8266 UNO (25 April 2016). "ArduCAM ESP8266 UNO Board".{{cite web}}: CS1 maint: numeric names: authors list (link)
  31. ^ ESPduino. "Arduino ESPduino". GitHub.
  32. ^ SwitchDoc Labs. "Grove WeatherPlus". Archived from the original on 2021-04-14. Retrieved 2018-06-30.
  33. ^ a b c d e WeMos. "WEMOS". WEMOS.
  34. ^ "WeMos D1". WeMos. Archived from the original on 2017-09-03. Retrieved 2016-11-30.
  35. ^ "WeMos D1 R2". WeMos. Archived from the original on 2017-09-03. Retrieved 2016-01-05.
  36. ^ "WeMos D1 mini". WeMos. Archived from the original on 2017-07-02. Retrieved 2017-06-29.
  37. ^ "WeMos D1 mini Lite". WeMos. Archived from the original on 2017-06-06. Retrieved 2017-06-29.
  38. ^ "WeMos D1 mini Pro". WeMos. Archived from the original on 2017-08-27. Retrieved 2017-06-29.
  39. ^ "Espert". Espert. Retrieved 2016-01-07.
  40. ^ "ESPresso Lite V2.0". Espert Pte Ltd. Retrieved 2017-10-02.
  41. ^ "ESP-ADC DIL18 development board". In-Circuit Wiki. Retrieved 2016-02-03.
  42. ^ "Watterott ESP-WROOM02-Breakout". Watterott. Retrieved 2016-11-06.
  43. ^ "Geek Wave Solution ESP8266-WROOM-02-IOT WiFi Development Board". Geek Wave Solution. Archived from the original on 2017-09-04. Retrieved 2017-09-04.
  44. ^ "Witty ESP8266 ESP-12E dual-level board". N/A. Retrieved 2019-08-29.
  45. ^ List, Jenny (2020-11-22). "Espressif Leaks ESP32-C3: A WiFi SOC That's RISC-V and is ESP8266 Pin-Compatible". Hackaday.
[edit]