ESP8266 – WiFi SoC
Contents
WiFi SoC (System on Chip)
ESP8266 is the most popular and low cost WiFi SoC with TCP/IP stack and a low power 32 bit microcontroller manufactured by Espressif, a Shanghai based Chinese manufacturer. As you might already know, nowadays IoT (Internet of Things) is an emerging field. This is the one of the most popular and low cost solution for connecting ‘Things’ to internet via WiFi.
ESP8266 belongs to Espressif System’s Smart Connectivity Platform (ESCP) which is a set of high performance, high integration wireless SoC (System on Chip) intended for power and space constrained mobile platform designers. It is a self contained WiFi networking solution, which means that we can store and run the application in it without the aid of any external processors. We can also integrate it with another application processor if required by using SPI/SDIO or I2C/UART interface.
Features of ESP8266
- Supports 802.11 b/g/n
- Integrated low power 32 bit microcontroller
- Integrated 10 bit analog to digital converter
- Integrated full TCP/IP stack
- Supports Station, Soft Access Point, Station + Soft Access Point modes
- Built in TR switch, balun, LNA, power amplifier and matching network
- Have internal PLL, regulators and power management units
- Supports space diversity / antenna diversity
- 2.4 GHz WiFi with support for WPA/WPA2
- Supports WiFi Direct
- Smart Link function supports for both Android and iOS devices
- SDIO 2.0, (H) SPI, UART, I2C, I2S, IR Remote Control, PWM, GPIO
- STBC, 1×1 MIMO, 2×1 MIMO
- A-MPDU & A-MSDU aggregation and 0.4s guard interval
- Wake up and transmit packets in less than 2mS
- Up to +20 dBm output power in 802.11b mode
- Standby power consumption is less than 1mW.
- Deep sleep power is less than 10μA and power down leakage current is less than 5μA
- Certified by FCC, CE, TELEC, WiFi Alliance and SRRC
Technical Specifications of ESP8266
- Operating Voltage : 3.0 ~ 3.6V
- Average Operating Current : 80mA
- Tensilica Xtensa LX106 32 bit RISC CPU running at 80 MHz
- 16 GPIO Pins
- SPI
- I2C
- I2S
- UART – 2x TX and 1x RX
- 1x 10bit ADC
- Operating Temperature : -40°C ~ 125°C
- Frequency Range : 2400 ~ 2483.5MHz
ESP8266 Chip Pinout
The chips comes in a 32 + 1 pin QFN package. Functions of each pin is listed below.
No. | Name | Type | Functions |
---|---|---|---|
1 | VDDA | Power | Power Input 3.0V ~ 3.6V |
2 | LNA | Input/Output | RF Antenna, Output Impedance = 50Ω |
3 | VDD3P3 | Power | Amplifier Power 3.0V ~ 3.6V |
4 | VDD3P3 | Power | Amplifier Power 3.0V ~ 3.6V |
5 | VDD_RTC | Power | NC (1.1V) |
6 | TOUT | Input | An ADC Input or can be used to check voltage of VDD3P3 |
7 | CHIP_EN | Input | Chip Enable (Active High) |
8 | XPD_DCDC | Input/Output | GPIO16, Deep Sleep Wakeup |
9 | MTMS | Input/Output | GPIO14, HSPI_CLK, I2C_SCL, I2SI_WS, PWM2 |
10 | MTDI | Input/Output | GPIO12, HSPI_MISO, I2SI_DATA, PWM0, IR Tx, Link LED |
11 | VDDPST | Power | Digital IO Power Supply, 1.8V ~ 3.3V |
12 | MTCK | Input/Output | GPIO13, HSPI_MOSI, I2SI_BCK, UART0_CTS, Reset Button |
13 | MTDO | Input/Output | GPIO15, HSPICS, UART0_RTS, I2SO_BCK, PWM1 |
14 | GPIO2 | Input/Output | GPIO2, UART1_TXD (flash programming UART Tx), I2C_SDA, I2SO_WS |
15 | GPIO0 | Input/Output | GPIO0, SPI_CS2, WiFi LED |
16 | GPIO4 | Input/Output | GPIO4, PWM3 |
17 | VDDPST | Power | Digital IO Power Supply, 1.8V ~ 3.3V |
18 | SDIO_DATA_2 | Input/Output | GPIO9, Connect to SD_D2 (Series R: 200Ω), SPIHD, HSPIHD |
19 | SDIO_DATA_3 | Input/Output | GPIO10, Connect to SD_D3 (Series R: 200Ω), SPIWP, HSPIWP |
20 | SDIO_CMD | Input/Output | GPIO11, Connect to SD_CMD (Series R: 200Ω), SPI_CS0 |
21 | SDIO_CLK | Input/Output | GPIO6, Connect to SD_CLK (Series R: 200Ω), SPI_CLK |
22 | SDIO_DATA_0 | Input/Output | GPIO7, Connect to SD_D0 (Series R: 200Ω), SPI_MSIO |
23 | SDIO_DATA_1 | Input/Output | GPIO8, Connect to SD_D1 (Series R: 200Ω), SPI_MOSI |
24 | GPIO5 | Input/Output | GPIO5, IR Rx |
25 | U0RXD | Input/Output | GPIO3, UART Rx during flash programming, I2SO_DATA |
26 | U0TXD | Input/Output | GPIO1, SPI_CS1, UART Tx during flash programming |
27 | XTAL_OUT | Input/Output | Used to provide BT clock input, Connect to crystal oscillator output |
28 | XTAL_IN | Input/Output | Connect to crystal oscillator input |
29 | VDDD | Power | Power Input 3.0V ~ 3.6V |
30 | VDDA | Power | Power Input 3.0V ~ 3.6V |
31 | RES12K | Input | 12KΩ resistor is connected to this pin and ground |
32 | EXT_RSTB | Input | Active Low External Reset Signal |
Package
The chip comes in QFN32 package, dimensions are given below.
Datasheet
ESP8266 Modules
A lot of ESP8266 modules are available in the market made by Espressif and 3ed party manufactures like AI-Thinker etc.
Espressif Module
Name | GPIO | ADC | UART | SPI | I2C | LEDs | Antenna | Dimensions | Shielded | Pitch |
---|---|---|---|---|---|---|---|---|---|---|
ESP-WROOM-02 | 11 | 1 | 2x TX, 1x RX | Yes | Yes | No | PCB Trace | 18x20mm | Yes | 2.54mm |
Note : In the above table GPIO pins are including UART, SPI, I2C pins.
AI-Thinker Modules
You can see below a series of ESP8266 modules made by a 3ed party manufaturer, AI-Thinker.
Name | GPIO | ADC | UART | SPI | I2C | LEDs | Antenna | Dimensions | Shielded | Pitch |
---|---|---|---|---|---|---|---|---|---|---|
ESP-01 | 4 | No | Yes | No | No | Yes | PCB Trace | 14.3×24.8mm | No | 2.54mm |
ESP-02 | 5 | No | Yes | No | No | No | UFL Connector | 14.2×14.2mm | No | 2.54mm |
ESP-03 | 9 | No | Yes | Yes | Yes | No | Ceramic Antenna | 17.3×12.1mm | No | 2mm |
ESP-04 | 9 | No | Yes | Yes | Yes | No | Ceramic Antenna | 14.7×12.1mm | No | 2mm |
ESP-05 | 2 | No | Yes | No | No | No | UFL Connector | 14.2×14.2mm | No | 2.54mm |
ESP-06 | 9 | No | Yes | Yes | Yes | No | No | 14.2×14.7mm | Yes | – |
ESP-07 | 9 | No | Yes | Yes | Yes | Yes | Ceramic Antenna + UFL | 20.0×16.0mm | Yes | 2mm |
ESP-08 | 9 | No | Yes | Yes | Yes | No | No | 17.0×16.0mm | Yes | 2mm |
ESP-09 | 8 | No | Yes | Yes | Yes | No | No | 10.0×10.0mm | No | – |
ESP-10 | 2 | No | Yes | No | No | No | No | 14.2×10.0mm | No | 2mm |
ESP-11 | 4 | Yes | No | No | No | No | Ceramic Antenna | 17.3×12.1mm | No | 1.27mm |
ESP-12 | 11 | No | Yes | Yes | Yes | Yes | PCB Trace | 24.0×16.0mm | Yes | 2mm |
ESP-12E/F/Q | 11 | No | Yes | Yes | Yes | Yes | PCB Trace | 24.0×16.0mm | Yes | 2mm |
ESP-13 | 11 | 1 | Yes | Yes | Yes | No | PCB Trace | 18x20mm | Yes | 2.54mm |
ESP-14 | 17 | 5 | Yes | Yes | Yes | Yes | PCB Trace | 24.3×16.2mm | Yes | 2mm |
Note 1 : In the above table GPIO pins are including UART, SPI, I2C pins.
Note 2 : For ESP-02 two other varients are available in the market.
Other Modules
Following are the other popular ESP8266 available in the market made by other vendors.
Name | GPIO | ADC | UART | SPI | I2C | LEDs | Antenna | Dimensions | Shielded | Pitch |
---|---|---|---|---|---|---|---|---|---|---|
Bolt IoT | 8 | 4 | Yes | No | No | Yes | PCB Trace | 30×40mm | Yes | 2.54mm |
Olimex MOD-WIFI-ESP8266 | 2 | No | Yes | No | No | Yes | PCB Trace | 35×17.5mm | No | 2.54mm |
Olimex MOD-WIFI-ESP8266-DEV | 11 | 1 | Yes | Yes | Yes | Yes | PCB Trace | 33x23mm | No | 2.54mm |
NodeMCU DEVKIT V0.9 | 11 | 1 | Yes | Yes | Yes | Yes | PCB Trace | – | Yes | 2.54mm |
NodeMCU DEVKIT V1.0 | 13 | 1 | Yes | Yes | Yes | Yes | PCB Trace | – | Yes | 2.54mm |
Adafruit Huzzah ESP8266 Breakout | 9 | 1 | Yes | Yes | Yes | Yes | PCB Trace | 25×38mm | Yes | 2.54mm |
SparkFun ESP8266 Thing WRL-13231 | 6+2 | 1 | Yes | No | No | Yes | PCB Trace + UFL | 58×26mm | No | 2.54mm |
KNEWRON Technologies smartWIFI | 11 | 1 | Yes | Yes | Yes | Yes | PCB Trace | 25.4×50.8mm | Yes | 2.54mm |
WeMos D1 | 11 | 1 | Yes | Yes | Yes | Yes | PCB Trace | 53.4×68.6mm | Yes | 2.54mm |
WeMos D1 Mini | 11 | 1 | Yes | Yes | Yes | Yes | PCB Trace | 25.6×34.2mm | Yes | 2.54mm |
D1 Mini Pro | 11 | 1 | Yes | Yes | Yes | Yes | Ceramic Antenna + UFL | 34.2×25.6mm | No | 2.54mm |
ESPert ESPresso Lite V1 | 11 | 1 | Yes | Yes | Yes | Yes | PCB Trace | 26.5×57.6mm | Yes | 2.54mm |
ESPert ESPresso Lite V2 | 11 | 1 | Yes | Yes | Yes | Yes | PCB Trace | 28×61mm | Yes | 2.54mm |
In-Circuit ESP-ADC | 11 | 1 | Yes | Yes | Yes | No | UFL Socket | 22.9×14.9mm | No | 2.54mm |
Watterott ESP-WROOM-02 Breakout | 11 | 1 | Yes | Yes | Yes | Yes | PCB Trace | 40.64×27.94mm | Yes | 2.54mm |
Note : In the above table GPIO pins are including UART, SPI, I2C pins.
Software Development Kit (SDK)
There are a lot of official and unofficeal SDKs available for ESP8266. These SDKs allow us to programing the chip directly, removing the need of a separate controller. Espressif maintains basically two types of SDKs based on RTOS (Real Time Operating System) and callback.
ESP8266 HDK
ESP8266 Hardware Development Kit includes all the hardware parts including ESP8266EX chip, module and the development board. We can download pre-compiled firmware to the chip using it.
ESP8266 SDK
ESP8266 SDK is the complete application development kit Espressif or other providers. There are basically two types of SDKs, Non-OS and RTOS. SDK provides a lot of libraries and API (Application Program Interface) for the easy development of the solution. You can choose an SDK based on your requirements.
ESP8266 FW
ESP8266 firware binary files (*.bin) can be downloaded directly to the HDK. We can choose a list of binary files between FOTA (Firmware Over The Air) or Non-FOTA based on our requirements.
ESP8266 Toolkit
ESP8266 Toolkit includes Compiler and Firmware Download Tool. A Linux OS is required for compiling the SDK. You can use virtual box for compiling it in Windows OS. Firware Download Tool is used to download compilerd binary files to the chip.
Popular SDKs
Some of the popular ESP8266 SDKs are below.