ESP8266 Pinout
ESP8266 (ESP-12E / NodeMCU) · ESP-12E module / NodeMCU dev board
The ESP8266 exposes eleven usable GPIO. Several carry boot-strapping duties, so which pins are safe to use is the thing most people are actually looking up.
Checked against the KiCad library and datasheet on

Pin by pin
| Pin | Name | Function |
|---|---|---|
| D0 | GPIO16 | Wake from deep sleep (wire to RST). No interrupt support; internal pull-down only, no pull-up. |
| D1 | GPIO5 | Safe. Commonly I²C SCL. |
| D2 | GPIO4 | Safe. Commonly I²C SDA. |
| D3 | GPIO0 | Boot-strap: must be HIGH at boot, LOW enters flash mode. |
| D4 | GPIO2 | Boot-strap: must be HIGH at boot. On-board LED. |
| D5 | GPIO14 | Safe. SPI SCLK. |
| D6 | GPIO12 | Safe. SPI MISO. |
| D7 | GPIO13 | Safe. SPI MOSI. |
| D8 | GPIO15 | Boot-strap: must be LOW at boot. SPI CS. |
| RX | GPIO3 | UART receive — occupied while flashing. |
| TX | GPIO1 | UART transmit — occupied while flashing. |
| A0 | ADC0 | Single 10-bit ADC, 0–1.0 V on the bare module. |
Things that catch people out
- Safe general-purpose pins: D1, D2, D5, D6, D7.
- GPIO0, GPIO2 and GPIO15 decide boot mode. A pull-down on GPIO0 stops the chip booting.
- NodeMCU boards divide A0 to 0–3.3 V; the bare ESP-12E does not.
- GPIO6 to GPIO11 (the module's CS0, MISO, GPIO9, GPIO10, MOSI and SCLK pads) drive the flash chip. Leave them alone.
Putting the ESP8266 (ESP-12E / NodeMCU) on a PCB
- On a bare ESP-12E: EN and RST pulled up with 10 kΩ, GPIO15 pulled down with 10 kΩ, GPIO0 and GPIO2 pulled up. Without these the module does not boot.
- Size the 3.3 V regulator for the Wi-Fi transmit bursts, not the average current: a few hundred mA, with a bulk capacitor at the module's VCC pad.
- Keep copper, parts and ground pour out from under the PCB antenna at the module's top end, and let that end overhang or sit at the board edge.
Common questions
- Which ESP8266 pins are safe to use?
- GPIO4, GPIO5, GPIO12, GPIO13 and GPIO14 (D2, D1, D6, D7, D5 on a NodeMCU) have no boot duty and are free for general use.
- Why won't my ESP8266 board boot?
- Usually a strapping pin in the wrong state at power-up: GPIO15 must be low, GPIO0 and GPIO2 high. A sensor or LED that pulls one of them the wrong way at reset is enough.
- What voltage does the ESP8266 A0 pin read?
- 0 to 1.0 V on the bare chip and ESP-12E module. NodeMCU and Wemos boards add a divider so A0 reads 0 to 3.3 V.
ESP-12E boards most often fail on power and boot pins. Describe yours, then check the generated schematic for the pull-ups on EN, RST and GPIO0 before you route.
Start an ESP8266 board →Sources
- Espressif ESP8266EX datasheet
- KiCad 9 libraries: symbol RF_Module:ESP-12E, footprint RF_Module:ESP-12E (CC-BY-SA 4.0).