ESP8266 Pinouts: ESP-01/01S, NodeMCU & D1 Mini GPIO Guide

ESP-01 and ESP-01S pinout plus ESP8266 NodeMCU, ESP-12E/F and D1 Mini GPIO maps, safe pins, boot pins, ADC limits and board-label mappings.

This guide explains the most common ESP8266AliExpress price variants (ESP-01AliExpress price, ESP-12E/F, NodeMCUAliExpress price and D1 mini) and shows their pinouts, safe GPIOs, and boot-sensitive pins to avoid.

The ESP8266AliExpress price started life as a tiny Wi-Fi module but quickly became a full microcontroller platform. Under the metal cans, almost all modules use the same chip (ESP8266EX) – what changes is:

  • How many GPIO pins are brought out
  • Antenna type (PCB vs ceramic vs u.FL)
  • Form factor (bare module vs dev board)

Quick verdict: choose a D1 Mini for the smallest general-purpose development board, NodeMCUAliExpress price when easy USB setup and more breadboard space matter, an ESP-12F for custom PCBs, and an ESP-01S only when two boot-sensitive GPIOs are enough.

  1. ESP-01 / ESP-01S – 8-pin “stick” module
  2. ESP-12E / ESP-12F (and ESP-07) – 22-pad SMD modules
  3. NodeMCU dev board – ESP-12E on a USB dev board
  4. Wemos D1 mini – small, breadboard-friendly dev board

And we’ll summarise pinouts and which pins are “safe” to use.

⚠️ ESP8266 GPIOs use 3.3 V logic. Feeding 5 V directly into a GPIO can damage the chip.

ESP8266 module comparison showing ESP-12F, NodeMCU and Wemos D1 Mini

ESP-01 and ESP-01S Pinout

The ESP-01 is the original “blue board” most people saw first: a tiny module with only 8 pins broken out. It’s cheap and widely used in legacy designs.

ESP-01 ESP8266 pinout showing GPIO0, GPIO2, RX, TX, EN, RST, 3.3V and GND
ESP-12E and NodeMCU ESP8266 pinout diagrams with GPIO and board labels

Typical pinout (viewed from top, pins pointing down)

PinNameFunction
1GNDGround
2GPIO2I/O, also affects boot mode
3GPIO0I/O, boot-mode / flash pin
4RXD0UART0 RX
5TXD0UART0 TX
6CH_PD / ENChip enable (pull HIGH to run)
7RSTReset (active LOW)
8VCC3.3 V power

Practical notes:

  • Usable GPIOs in normal projects: GPIO0, GPIO2 (both have boot-mode roles)
  • To flash firmware, you usually:
    • Hold GPIO0 LOW at reset → enter bootloader
    • Use TXD0/RXD0 as serial connection
  • Very limited number of I/O pins makes ESP-01 a pain for bigger projects. Great as a Wi-Fi modem or for very small nodes.

ESP-12E, ESP-12F and ESP-07 Pinouts

Modules like ESP-12E, ESP-12F and ESP-07 expose almost all usable pins of the ESP8266EX. They’re metal-shielded SMD modules used on dev boards like NodeMCU.

They all share a very similar core pinout; ESP-12E/F adds an extra bottom row mainly for flash pins.

High-level features of the ESP-12 class:

  • 17 GPIOs total on the chip, ~11–13 usable on typical modules
  • 1× 10-bit ADC (A0)
  • PCB antenna (ESP-12), ceramic antenna (ESP-07)

Typical ESP-12E pin groups:

  • Power & control: VCC, GND, EN/CH_PD, RST
  • UART0: TXD0 (GPIO1), RXD0 (GPIO3) – default programming / logging port
  • SPI flash pins: GPIO6–GPIO11 – used internally, don’t touch
  • General GPIOs: GPIO0, 2, 4, 5, 12, 13, 14, 15, 16
  • ADC: TOUT or ADC0 – 0–1.0 V max

Example bare ESP-12E pinout:

  • “Safe” GPIOs most people use:
    • GPIO4, GPIO5, GPIO12, GPIO13, GPIO14 → best general I/O
    • GPIO16 can wake the ESP8266 from deep sleep only when it is wired to RST.
  • Boot-sensitive pins:
    • GPIO0, GPIO2, GPIO15 control boot mode – must be at the right level on reset.
    • GPIO1/3 used for UART – toggled during boot.

NodeMCU ESP8266 Pinout

NodeMCU boards like NodeMCU v1.0 (ESP-12E) take an ESP-12 module and add:

  • USB-to-serial (CP2102/CH340)
  • 3.3 V regulator
  • Auto-reset / auto-flash circuitry
  • Breadboard-friendly pins labelled D0, D1, D2… instead of raw GPIO numbers

Typical NodeMCU ESP-12E dev board pinout:

Board labelESP8266 GPIONotes
D0GPIO16No PWM; wire D0 to RST for deep-sleep wake
D1GPIO5I²C SCL (by convention)
D2GPIO4I²C SDA (by convention)
D3GPIO0Boot mode pin, pulled-up
D4GPIO2Boot mode pin, on-board LED on many
D5GPIO14HSPI CLK
D6GPIO12HSPI MISO
D7GPIO13HSPI MOSI
D8GPIO15Boot mode pin, pulled-down
RXGPIO3UART0 RX (Serial)
TXGPIO1UART0 TX (Serial)
A0ADC0Board-dependent divider; commonly about 3.2–3.3 V max. Bare ESP8266 TOUT is 1.0 V max.

Good defaults on NodeMCU:

  • I²C → D2 (GPIO4) SDA, D1 (GPIO5) SCL
  • SPI → D5 (GPIO14) SCK, D6 (GPIO12) MISO, D7 (GPIO13) MOSI, D8 (GPIO15) CS
  • Avoid using D3 (GPIO0), D4 (GPIO2), D8 (GPIO15) for things that pull hard HIGH/LOW at boot.

Wemos/LOLIN D1 Mini Pinout

The Wemos D1 mini is a very compact dev board with an ESP-12 module, micro-USB and 3.3 V regulator. It exposes 11 usable GPIOs and is extremely popular in DIY and Home Assistant projects.

Typical D1 mini pin mapping:

LabelGPIOTypical use
D0GPIO16Wire D0 to RST for deep-sleep wake; no PWM
D1GPIO5I²C SCL
D2GPIO4I²C SDA
D3GPIO0Boot pin, input w/PU
D4GPIO2Boot pin, on-board LED
D5GPIO14SPI SCK
D6GPIO12SPI MISO
D7GPIO13SPI MOSI
D8GPIO15Boot pin (pulled-down)
RXGPIO3UART0 RX
TXGPIO1UART0 TX
A0ADC03.2 V max on the official D1 Mini

Notes:

  • Only one ADC channel (A0).
  • D0 (GPIO16) lacks the usual interrupt, PWM, I²C and OneWire support; wire D0 to RST for deep-sleep wake.
  • Don’t tie D3, D4, D8 to random stuff that changes the boot levels.

Other ESP8266 Module Variants

There are more SMD modules, but they’re all the same chip plus different antennas / footprints:

  • ESP-05 – tiny module with just UART pins and power (like ESP-01 but even more limited).
  • ESP-07 – similar pinout to ESP-12 but with ceramic antenna and u.FL connector.
  • ESP-201 / ESP-14 – older / less common modules with their own pinouts.

The main differences are:

  • How many GPIOs are broken out
  • Antenna type (PCB vs ceramic vs external connector)
  • Footprint and shield size

The actual SoC (ESP8266EX) and its GPIO roles are the same across all of them.

Safe GPIOs and Boot Pins

Because of boot-mode strapping, some pins must be at defined levels during reset. The classic rule from the ESP8266 pinout references:

Boot strapping pins:

  • GPIO0
  • GPIO2
  • GPIO15

Valid boot from flash requires:

  • GPIO0 = HIGH
  • GPIO2 = HIGH
  • GPIO15 = LOW

So:

  • Don’t pull GPIO0 or GPIO2 hard LOW at boot.
  • Don’t pull GPIO15 HIGH at boot.
  • You can use them after boot, but avoid big loads or things that force the wrong level during reset.

Generally safe GPIOs on ESP-12 / NodeMCU / D1 mini:

GPIO4, GPIO5, GPIO12, GPIO13, GPIO14, GPIO16

CONTINUE EXPLORING / ESP32 & ELECTRONICS

Read next

Practical guides related to this article.

Explore the topic →
HARDWARE DECISION GUIDEWhich ESP32 board should you use?

Compare practical options before you choose hardware.

Compare options →