Robot Maker Toolkit › Pinouts › ESP8266 NodeMCU

ESP8266 NodeMCU pinout

Every ESP8266 NodeMCU pin with its capabilities (digital, PWM, ADC, I2C, SPI, UART) and the wiring gotchas that bite. The cheap WiFi board that made hobby IoT mainstream. 3.3 V logic (NOT 5 V tolerant), a single analog input, and several pins that must sit at the right level at boot. The silkscreen D-labels do NOT match the GPIO numbers you use in code.

ESP8266 @ 80/160 MHz, WiFi / 3.3 VLogic: 3.3 VFree in app

ESP8266 NodeMCU pinout diagram

ESP8266 NodeMCU (ESP-12E) pinout diagramUSBESP8266 NodeMCUA0 = A0 (ADC0): Analog in. Watch out: 0-3.3 V on NodeMCU/Wemos (divider); 0-1.0 V on a bare ESP8266A0Analog in⚠RSV (not detailed in the catalog yet)RSVRSV (not detailed in the catalog yet)RSVSD3 = SD0-SD3/CLK/CMD (GPIO6-11): Reserved - flash. Watch out: Connected to the flash chip; do not useSD3Reserved - flash⚠SD2 = SD0-SD3/CLK/CMD (GPIO6-11): Reserved - flash. Watch out: Connected to the flash chip; do not useSD2Reserved - flash⚠SD1 = SD0-SD3/CLK/CMD (GPIO6-11): Reserved - flash. Watch out: Connected to the flash chip; do not useSD1Reserved - flash⚠CMD = SD0-SD3/CLK/CMD (GPIO6-11): Reserved - flash. Watch out: Connected to the flash chip; do not useCMDReserved - flash⚠SD0 = SD0-SD3/CLK/CMD (GPIO6-11): Reserved - flash. Watch out: Connected to the flash chip; do not useSD0Reserved - flash⚠CLK = SD0-SD3/CLK/CMD (GPIO6-11): Reserved - flash. Watch out: Connected to the flash chip; do not useCLKReserved - flash⚠GND: GroundGNDGround3V3: Power out 3.3V3V3Power out 3.3VEN = EN (CH_PD): Enable. Watch out: Must be HIGH to run (pulled up)ENEnable⚠RST: ResetRSTResetGND: GroundGNDGroundVIN = Vin / 5V: Power in 5V. Watch out: Feeds the onboard regulator; board logic is still 3.3 VVINPower in 5V⚠D0 = D0 (GPIO16): Wake from deep-sleep. Watch out: No PWM / interrupt / I2C; no internal pull-upD0Wake from deep-sleep⚠D1 = D1 (GPIO5): PWM · Interrupt · I2C SCL (default)D1PWM · Interrupt · I2C SCL (default)D2 = D2 (GPIO4): PWM · Interrupt · I2C SDA (default)D2PWM · Interrupt · I2C SDA (default)D3 = D3 (GPIO0): PWM · Interrupt. Watch out: Strapping: must be HIGH at boot (FLASH button); has pull-upD3PWM · Interrupt⚠D4 = D4 (GPIO2): PWM · Interrupt · Built-in LED. Watch out: Strapping: must be HIGH at boot; onboard LED is active-LOWD4PWM · Interrupt · Built-in LED⚠3V3: Power out 3.3V3V3Power out 3.3VGND: GroundGNDGroundD5 = D5 (GPIO14): PWM · Interrupt · SPI SCKD5PWM · Interrupt · SPI SCKD6 = D6 (GPIO12): PWM · Interrupt · SPI MISOD6PWM · Interrupt · SPI MISOD7 = D7 (GPIO13): PWM · Interrupt · SPI MOSID7PWM · Interrupt · SPI MOSID8 = D8 (GPIO15): PWM · Interrupt · SPI CS. Watch out: Strapping: must be LOW at boot; has pull-downD8PWM · Interrupt · SPI CS⚠RX = RX (GPIO3): UART RX. Watch out: Used by USB serialRXUART RX⚠TX = TX (GPIO1): UART TX. Watch out: Used by USB serial; must be HIGH at bootTXUART TX⚠GND: GroundGNDGround3V3: Power out 3.3V3V3Power out 3.3VPowerGNDI2CSPIUARTAnalogPWMDigitalOther / not in catalog yet⚠has a watch-out in the table below · hover a pin for details

30-pin NodeMCU v2/v3 layout. SD0–SD3/CLK/CMD go to the flash chip: leave them alone. Download SVG

PinCapabilitiesWatch out
A0 (ADC0)Analog in
0-3.3 V on NodeMCU/Wemos (divider); 0-1.0 V on a bare ESP8266
D0 (GPIO16)DigitalWake from deep-sleep
No PWM / interrupt / I2C; no internal pull-up
D1 (GPIO5)DigitalPWMInterruptI2C SCL (default)
D2 (GPIO4)DigitalPWMInterruptI2C SDA (default)
D3 (GPIO0)DigitalPWMInterrupt
Strapping: must be HIGH at boot (FLASH button); has pull-up
D4 (GPIO2)DigitalPWMInterruptBuilt-in LED
Strapping: must be HIGH at boot; onboard LED is active-LOW
D5 (GPIO14)DigitalPWMInterruptSPI SCK
D6 (GPIO12)DigitalPWMInterruptSPI MISO
D7 (GPIO13)DigitalPWMInterruptSPI MOSI
D8 (GPIO15)DigitalPWMInterruptSPI CS
Strapping: must be LOW at boot; has pull-down
RX (GPIO3)DigitalUART RX
Used by USB serial
TX (GPIO1)DigitalUART TX
Used by USB serial; must be HIGH at boot
SD0-SD3/CLK/CMD (GPIO6-11)Reserved - flash
Connected to the flash chip; do not use
3V3Power out 3.3V
Vin / 5VPower in 5V
Feeds the onboard regulator; board logic is still 3.3 V
EN (CH_PD)Enable
Must be HIGH to run (pulled up)
RSTReset
GNDGround

ESP8266 NodeMCU gotchas & notes

Get this pinout — plus 55+ sensor wiring diagrams, shield maps and maker calculators — offline on your phone.

Get it onGoogle Play

Other board pinouts

Arduino UNO R3ESP32 DevKit (WROOM-32)Raspberry Pi PicoArduino UNO R4 WiFiArduino UNO QArduino NanoArduino Nano ESP32Arduino Mega 2560Arduino Leonardo