Overview
The ESP-12E (and its refined successor the ESP-12F) is a surface-mount Wi-Fi microcontroller module manufactured by AI-Thinker based on the Espressif Systems ESP8266EX SoC. Featuring a castellated 22-pad SMD package () with an integrated meandered PCB trace antenna, it is the module at the heart of the NodeMCU v2/v3, Wemos D1 Mini, and Sonoff smart home devices.
Powered by a 32-bit Tensilica Xtensa L106 Diamond core operating at , the ESP-12E integrates () SPI Flash, a full TCP/IP networking stack, 11 accessible GPIO lines, hardware UART, SPI, I2C, and a 10-bit ADC channel. Operating from to DC, it supports deep-sleep power consumption down to , making it the premier bare module for custom IoT sensor nodes and Wi-Fi actuators.
Quick reference
| SoC / Processor | Espressif ESP8266EX (32-bit Tensilica L106 RISC) |
| Package | 22-pin Castellated SMD Module () |
| Clock Frequency | default (Configurable to ) |
| Flash Memory | () SPI Flash |
| RAM | User Data RAM + Instruction RAM |
| Operating Voltage Range | to DC ( nominal) |
| Peak Current Consumption | during Wi-Fi transmission bursts |
| Deep Sleep Current | (Requires GPIO16 tied to RST) |
| Wi-Fi Protocols | (, up to output) |
| ADC Channel | 10-bit SAR ADC ( to maximum input range) |
Module Pinout (22-Pin SMD Package)
text
┌───────[ Antenna ]───────┐
│ ESP-12E / ESP-12F │
(Active-Low) RST│ 1 22│ TXD0 (UART0 TX / GPIO1)
(0-1V Input) ADC0│ 2 21│ RXD0 (UART0 RX / GPIO3)
(Pull-Up) EN│ 3 20│ GPIO5
GPIO16│ 4 19│ GPIO4
GPIO14│ 5 18│ GPIO0 (Boot Mode Select)
GPIO12│ 6 17│ GPIO2 (Pull-Up)
(+3.3V) VCC│ 7 16│ GPIO15 (Pull-Down)
(Ground) GND│ 8 15│ GND
└──┬──┬──┬──┬──┬──┬───────┘
9 10 11 12 13 14
(Internal SPI Flash Pads)
| Pin | Name | Type | Description |
|---|---|---|---|
| 1 | RST | Reset | Active-LOW Reset input (Pull up to via ) |
| 2 | ADC | Analog In | 10-bit ADC Input ( max; use divider for 3.3V) |
| 3 | EN / CH_PD | Enable | Chip Enable (Must be pulled HIGH to via to run) |
| 4 | GPIO16 | GPIO | Deep sleep wakeup pin (Connect to RST to enable auto-wake) |
| 5 | GPIO14 | GPIO / SPI | HSPI_CLK / GPIO14 |
| 6 | GPIO12 | GPIO / SPI | HSPI_MISO / GPIO12 |
| 7 | VCC | Power | Supply Voltage ( to DC) |
| 8, 15 | GND | Power | Common Ground reference () |
| 9–14 | CS0, MISO, ... | SPI Flash | Internal SPI Flash connection pads (Do NOT connect on PCB) |
| 16 | GPIO15 | GPIO / Boot | Strapping pin: Must be pulled LOW to GND via |
| 17 | GPIO2 | GPIO / Boot | Strapping pin: Must be pulled HIGH to via / Onboard Blue LED |
| 18 | GPIO0 | GPIO / Boot | Boot Select: HIGH for normal boot, LOW for UART Flash mode |
| 19, 20 | GPIO4, GPIO5 | GPIO / I2C | General purpose I/O (Standard for SDA and SCL) |
| 21 | RXD0 | GPIO / UART | UART0 Receive (RXD0 / GPIO3) |
| 22 | TXD0 | GPIO / UART | UART0 Transmit (TXD0 / GPIO1) |
Boot Strapping Configurations
| Boot Mode | CH_PD (EN) | RST | GPIO15 | GPIO0 | GPIO2 |
|---|---|---|---|---|---|
| Normal Flash Boot (Run) | HIGH () | HIGH | LOW (GND) | HIGH () | HIGH () |
| UART Flashing (Download) | HIGH () | HIGH | LOW (GND) | LOW (GND) | HIGH () |
Minimal Schematic Hookup for Custom PCBs
text
+3.3V DC (Minimum 500mA LDO like AP2112 / AMS1117)
│
┌───────────────────┼───────────────────┬───────────────────┐
│ │ │ │
[ 10kΩ Pull-Up ] [ 10kΩ Pull-Up ] [ 10kΩ Pull-Up ] [ 10kΩ Pull-Up ]
│ │ │ │
├─────────────► [Pin 1: RST] │ │
│ │ │ │
├─────────────► [Pin 3: EN] │ │
│ │ │
├───────────────────────────────────────┼─────────────► [Pin 17: GPIO2]
│ │
│ [ Flash Switch ] ──► [Pin 18: GPIO0]
│ │
│ GND
│
[Pin 7: VCC] ──┬──[ 10µF Tantalum / Ceramic ]──┐
└──[ 100nF Ceramic MLCC ]───────┤
│
[Pin 16: GPIO15] ──[ 10kΩ Pull-Down ]──────────┼──► [Pin 8, 15: GND] ── Common GND
Common mistakes
- Inadequate power supply regulation: During Wi-Fi calibration and RF transmissions, the ESP8266 draws sharp current pulses up to . Powering directly from a weak 3.3V FTDI adapter or high-impedance regulator will cause brownout resets (
rst cause:2, boot mode:(3,6)). Always place at least a low-ESR capacitor directly acrossVCCandGND. - Applying 5V logic signals directly: The ESP8266 is strictly a device. Use bidirectional level shifters or resistor voltage dividers on
RXD0when interfacing with 5V microcontrollers. - Overdriving the ADC pin: The onboard ADC pin accepts a maximum input of . Connecting directly to Pin 2 will saturate or damage the ADC. Use a resistor divider ().
- Routing copper traces under the PCB antenna: For proper Wi-Fi range, the antenna section must overhang the edge of your carrier board with zero copper traces or ground planes directly underneath.
Notes
- ESP-12E vs ESP-12F: ESP-12F features an improved 4-layer PCB layout and optimized antenna impedance matching for greater RF range.
Assets & downloads
- datasheetdatasheet
- product-pagereference