ESP-12E is a module with an ESP8266 and 4 MB of flash under a shield can, with 22 solder pads. It is the heart of the NodeMCU and countless devices, from smart plugs to weather stations.
The ESP-12F has the same pinout and differs only in the antenna shape.
Specifications
- ESP8266: Tensilica L106 80/160 MHz
- 4 MB flash
- Wi-Fi 4 (2.4 GHz), PCB antenna
- 11 free GPIO and analog input A0, 6 flash pads on the bottom edge
- 3.3 V supply, around 300 mA peak
- 16 × 24 mm, 2 mm pad pitch (not 2.54 mm!)
The bare module needs a few extra parts: pull-ups on EN and RST, pull-ups on GPIO0 and GPIO2, a pull-down on GPIO15 and a 3.3 V regulator. It is more convenient to buy it on an adapter board with 2.54 mm headers.
Pinout and pin table
Hover over a pin in the diagram or a table row; use the filter to highlight a bus. You can download the pinout as PNG or SVG.
| Pin | Name | Direction | UART | I2C | SPI | ADC | Note |
|---|---|---|---|---|---|---|---|
| 1 | RST | input | Reset – connecting to GND restarts the module | ||||
| 2 | A0 | input | ADC0 | ADC 0–1 V (TOUT), no divider on the module | |||
| 3 | EN | input | Chip enable (CH_PD) – connect to 3.3 V | ||||
| 4 | GPIO16 | input/output | Wake from deep sleep (connect to RST) | ||||
| 5 | GPIO14 | input/output | SCK | ||||
| 6 | GPIO12 | input/output | MISO | ||||
| 7 | GPIO13 | input/output | MOSI | ||||
| 8 | 3V3 | input | Power 3.3 V, supply at least 500 mA | ||||
| 9 | GPIO11 | input/output | Connected to flash memory (CS0) – do not use | ||||
| 10 | GPIO7 | input/output | Connected to flash memory (MISO) – do not use | ||||
| 11 | GPIO9 | input/output | Connected to flash memory (SD2) – do not use | ||||
| 12 | GPIO10 | input/output | Connected to flash memory (SD3) – do not use | ||||
| 13 | GPIO8 | input/output | Connected to flash memory (MOSI) – do not use | ||||
| 14 | GPIO6 | input/output | Connected to flash memory (SCLK) – do not use | ||||
| 15 | GND | – | |||||
| 16 | GPIO15 | input/output | SS | Strapping pin – must be logic 0 at boot (external pull-down) | |||
| 17 | GPIO2 | input/output | Strapping pin – must be logic 1 at boot; blue LED on the module (lights at logic 0) | ||||
| 18 | GPIO0 | input/output | Strapping pin – logic 0 at boot = download mode | ||||
| 19 | GPIO4 | input/output | SDA | ||||
| 20 | GPIO5 | input/output | SCL | ||||
| 21 | GPIO3 | input/output | RX | UART0 RX – firmware upload | |||
| 22 | GPIO1 | input/output | TX | UART0 TX – firmware upload |
What to watch out for
- 3.3 V supply from a source rated at least 500 mA (Ai-Thinker’s recommendation); the module draws peaks of around 300 mA.
- Strapping pins: GPIO0 and GPIO2 must be at logic 1 at boot and GPIO15 at logic 0.
- GPIO6–11 (pads on the bottom edge) are connected to the flash – do not use them.
- A0 measures only 0–1 V; there is no divider on the module.
- To wake from deep sleep, connect GPIO16 to RST.
ESP-12E projects on chiptron.eu/
Projects and guides on chiptron.eu/:
- Meteo v3 – a versatile low-power board for ESP12E, ESP07 and ESP08 modules
- ESP12E and Si7021 – a mini weather station on a custom board, logging data to TMEP.cz
More pinouts
See all pinouts on the Pinouts page.