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.
| Pin | Capabilities | Watch 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 |
| 3V3 | Power out 3.3V | |
| Vin / 5V | Power in 5V | Feeds the onboard regulator; board logic is still 3.3 V |
| EN (CH_PD) | Enable | Must be HIGH to run (pulled up) |
| RST | Reset | |
| GND | Ground |
Get this pinout — plus 55+ sensor wiring diagrams, shield maps and maker calculators — offline on your phone.
Get it onGoogle Play