NodeMCU ESP8266 (CP2102): specs and pinout
A 30-pin ESP8266 development board with a USB-to-serial chip, following the NodeMCU DevKit V1.0 layout built around an ESP-12E module.
Specs
| Spec | Value | Source |
|---|---|---|
| Supply voltage (ESP8266EX chip) | 2.5 V to 3.6 V (3.3 V typical) | source Table 5-1 Electrical Characteristics (p.24) |
| Supply voltage (ESP-12E module) | 3.0 V to 3.6 V | source Table 1 Parameters (p.6); Table 8 (p.14) |
| Module average operating current | 80 mA average (ESP-12E) | source Table 1 Parameters (p.6) |
| On-board regulator (V1.0 reference design) | NCP1117ST33T3G, 3.3 V output, 800 mA working output, max supply voltage 20 V | source Sheet 'POWER' (page 4) |
| ADC | 10-bit; chip TOUT input range 0 to 1.0 V; the V1.0 reference design adds a 220 k / 100 k divider (ADC_EX pin A0) | source Section 4.9 ADC (p.22); NodeMCU V1.0 schematic sheet 'ADC' (page 7) |
| GPIO count (chip) | 17 GPIO pins | source Section 4.1 (p.18) |
| Input high level VIH max | 3.6 V (TAMB = 25 C) | source Table 5-1 (p.24) |
| Flash (ESP-12E module) | 4 MB SPI flash | source Section 3 (p.9); 4.2.2 (p.11) |
Power
| Value | Source | |
|---|---|---|
| Supply | USB 5 V or VDD5V pin into the on-board 3.3 V regulator (V1.0 reference design) | source Table 11 Power Consumption (p.16) |
| Current | Module Wi-Fi TX 170 mA (802.11b, +17 dBm), 140 mA (11g), 120 mA (11n); RX 50 to 56 mA | source Table 11 Power Consumption (p.16) |
Pinout
The pin table below is the NodeMCU team DevKit V1.0 reference schematic (J1/J2, with D0-D10 names). The listed board is a CP2102 clone of that layout, not the original: check the silkscreen on your board. Ai-Thinker also lists a V1.2 (CH340) board, which is a different revision.
| Pin | Function | Voltage | Notes | Source |
|---|---|---|---|---|
| A0 / ADC_EX | ADC (external, via on-board divider) | J1 pin 1 | source Sheet 'IO CONN' (J1, J2 1x15 headers) | |
| ADC | ADC | J1 pin 2 | source Sheet 'IO CONN' (J1, J2 1x15 headers) | |
| RESV | Reserved | J1 pin 3 | source Sheet 'IO CONN' (J1, J2 1x15 headers) | |
| SD_D3 / GPIO10 | GPIO10, SD_D3 | J1 pin 4 | source Sheet 'IO CONN' (J1, J2 1x15 headers) | |
| SD_D2 / GPIO9 | GPIO9, SD_D2 | J1 pin 5 | source Sheet 'IO CONN' (J1, J2 1x15 headers) | |
| SPI_INT | SD_D1 | J1 pin 6 | source Sheet 'IO CONN' (J1, J2 1x15 headers) | |
| SPI_MOSI | SD_CMD | J1 pin 7 | source Sheet 'IO CONN' (J1, J2 1x15 headers) | |
| SPI_MISO | SD_D0 | J1 pin 8 | source Sheet 'IO CONN' (J1, J2 1x15 headers) | |
| SPI_CLK | SD_CLK | J1 pin 9 | source Sheet 'IO CONN' (J1, J2 1x15 headers) | |
| GND | GND | J1 pin 10 | source Sheet 'IO CONN' (J1, J2 1x15 headers) | |
| VDD3V3 | 3.3 V | 3.3 V | J1 pin 11 | source Sheet 'IO CONN' (J1, J2 1x15 headers) |
| EN | Chip enable | J1 pin 12 | source Sheet 'IO CONN' (J1, J2 1x15 headers) | |
| nRST | Reset | J1 pin 13 | source Sheet 'IO CONN' (J1, J2 1x15 headers) | |
| GND | GND | J1 pin 14 | source Sheet 'IO CONN' (J1, J2 1x15 headers) | |
| VDD5V | 5 V | 5 V | J1 pin 15 | source Sheet 'IO CONN' (J1, J2 1x15 headers) |
| D0 | GPIO16 | J2 pin 1 | source Sheet 'IO CONN' (J1, J2 1x15 headers) | |
| D1 | GPIO5 | J2 pin 2 | source Sheet 'IO CONN' (J1, J2 1x15 headers) | |
| D2 | GPIO4 | J2 pin 3 | source Sheet 'IO CONN' (J1, J2 1x15 headers) | |
| D3 | GPIO0 | J2 pin 4 | source Sheet 'IO CONN' (J1, J2 1x15 headers) | |
| D4 | GPIO2, TXD1 | J2 pin 5 | source Sheet 'IO CONN' (J1, J2 1x15 headers) | |
| VDD3V3 | 3.3 V | 3.3 V | J2 pin 6 | source Sheet 'IO CONN' (J1, J2 1x15 headers) |
| GND | GND | J2 pin 7 | source Sheet 'IO CONN' (J1, J2 1x15 headers) | |
| D5 | GPIO14, HSPICLK | J2 pin 8 | source Sheet 'IO CONN' (J1, J2 1x15 headers) | |
| D6 | GPIO12, HSPIQ | J2 pin 9 | source Sheet 'IO CONN' (J1, J2 1x15 headers) | |
| D7 | GPIO13, RXD2, HSPID | J2 pin 10 | source Sheet 'IO CONN' (J1, J2 1x15 headers) | |
| D8 | GPIO15, TXD2, HSPICS | J2 pin 11 | source Sheet 'IO CONN' (J1, J2 1x15 headers) | |
| D9 | RXD0, GPIO3 | J2 pin 12 | source Sheet 'IO CONN' (J1, J2 1x15 headers) | |
| D10 | TXD0, GPIO1 | J2 pin 13 | source Sheet 'IO CONN' (J1, J2 1x15 headers) | |
| GND | GND | J2 pin 14 | source Sheet 'IO CONN' (J1, J2 1x15 headers) | |
| VDD3V3 | 3.3 V | 3.3 V | J2 pin 15 | source Sheet 'IO CONN' (J1, J2 1x15 headers) |
Build with it
Project ideas for the NodeMCU ESP8266 (CP2102). Each link opens Soldr with the prompt filled in; Soldr assigns the pins, checks power and shows how to wire every part.
- Wi-Fi plant moisture monitor: The single ADC pin reads the sensor; the V1.0 design has a divider for 3.3 V input, so confirm your board has it. A learning project.
- Weather display: DHT22 on one GPIO and the OLED on I2C (D1 and D2 are GPIO5 and GPIO4).
- Probe temperature logger: One GPIO carries the one-wire probe data; avoid GPIO0, 2 and 15 for it because of their boot roles.
Common mistakes
- Boot pins: GPIO0 low at reset enters UART download mode and GPIO0 high boots from flash; GPIO15 must be low and GPIO2 high. A sensor that pulls these the wrong way stops the board booting (source: link, Table 4 Pin Mode, p.8).
- Pins are 3.3 V only: the chip input high level maximum is 3.6 V, so 5 V logic needs a level shifter (source: link, Table 5-1, p.24).
- The bare ESP8266 ADC accepts 0 to 1.0 V; check whether your board has the on-board divider before connecting a 3.3 V sensor (source: link, section 4.9, p.22; link, sheet ADC).
Not covered by the official source
- Listed board is a clone; its exact revision and regulator are not documented.
- Module current in deep sleep is for the ESP-12E, not the whole board (USB serial chip and regulator add to it).