Opens in a new tab

ESP-12E / ESP-12F Pinout

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.

ESP-12E (ESP8266) – pinoutESP-12E (ESP8266) – pinoutchiptron.eu · CC BY 4.0ESP8266 1 RST → Reset – connecting to GND restarts the module 2 A0 ADC0 3 EN → Chip enable (CH_PD) – connect to 3.3 V 4 GPIO16 5 GPIO14 SCK 6 GPIO12 MISO 7 GPIO13 MOSI 8 3V3 → Power 3.3 V, supply at least 500 mA 22 GPIO1 TX 21 GPIO3 RX 20 GPIO5 SCL 19 GPIO4 SDA 18 GPIO0 17 GPIO2 blue LED 16 GPIO15 SS 15 GND 9 GPIO11 flash CMD 10 GPIO7 flash D0 11 GPIO9 flash D2 14 GPIO6 flash CLK 13 GPIO8 flash D1 12 GPIO10 flash D3 GPIO UART I2C SPI ADC (analog) Power Ground (GND) Control / reset Strapping pin Used by flash
Download:PNGSVG
Pin table – ESP-12E (ESP8266)
PinNameDirectionUARTI2CSPIADCNote
1RSTinputReset – connecting to GND restarts the module
2A0inputADC0ADC 0–1 V (TOUT), no divider on the module
3ENinputChip enable (CH_PD) – connect to 3.3 V
4GPIO16input/outputWake from deep sleep (connect to RST)
5GPIO14input/outputSCK
6GPIO12input/outputMISO
7GPIO13input/outputMOSI
83V3inputPower 3.3 V, supply at least 500 mA
9GPIO11input/outputConnected to flash memory (CS0) – do not use
10GPIO7input/outputConnected to flash memory (MISO) – do not use
11GPIO9input/outputConnected to flash memory (SD2) – do not use
12GPIO10input/outputConnected to flash memory (SD3) – do not use
13GPIO8input/outputConnected to flash memory (MOSI) – do not use
14GPIO6input/outputConnected to flash memory (SCLK) – do not use
15GND–
16GPIO15input/outputSSStrapping pin – must be logic 0 at boot (external pull-down)
17GPIO2input/outputStrapping pin – must be logic 1 at boot; blue LED on the module (lights at logic 0)
18GPIO0input/outputStrapping pin – logic 0 at boot = download mode
19GPIO4input/outputSDA
20GPIO5input/outputSCL
21GPIO3input/outputRXUART0 RX – firmware upload
22GPIO1input/outputTXUART0 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.

Related Articles