# 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.

[HTML version](https://soldr.ai/docs/boards/nodemcu-esp8266)

[Docs](https://soldr.ai/docs) / [Boards](https://soldr.ai/docs/boards)

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.

Every value cites its sourceOfficial pinout

[Buy on Compoden](https://compoden.com/products/nodemcu-esp8266-cp2102-wifi-development-board)

## 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 &#x27;POWER&#x27; (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 &#x27;ADC&#x27; (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 &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| ADC | ADC | | J1 pin 2 | source Sheet &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| RESV | Reserved | | J1 pin 3 | source Sheet &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| SD_D3 / GPIO10 | GPIO10, SD_D3 | | J1 pin 4 | source Sheet &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| SD_D2 / GPIO9 | GPIO9, SD_D2 | | J1 pin 5 | source Sheet &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| SPI_INT | SD_D1 | | J1 pin 6 | source Sheet &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| SPI_MOSI | SD_CMD | | J1 pin 7 | source Sheet &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| SPI_MISO | SD_D0 | | J1 pin 8 | source Sheet &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| SPI_CLK | SD_CLK | | J1 pin 9 | source Sheet &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| GND | GND | | J1 pin 10 | source Sheet &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| VDD3V3 | 3.3 V | 3.3 V | J1 pin 11 | source Sheet &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| EN | Chip enable | | J1 pin 12 | source Sheet &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| nRST | Reset | | J1 pin 13 | source Sheet &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| GND | GND | | J1 pin 14 | source Sheet &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| VDD5V | 5 V | 5 V | J1 pin 15 | source Sheet &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| D0 | GPIO16 | | J2 pin 1 | source Sheet &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| D1 | GPIO5 | | J2 pin 2 | source Sheet &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| D2 | GPIO4 | | J2 pin 3 | source Sheet &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| D3 | GPIO0 | | J2 pin 4 | source Sheet &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| D4 | GPIO2, TXD1 | | J2 pin 5 | source Sheet &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| VDD3V3 | 3.3 V | 3.3 V | J2 pin 6 | source Sheet &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| GND | GND | | J2 pin 7 | source Sheet &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| D5 | GPIO14, HSPICLK | | J2 pin 8 | source Sheet &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| D6 | GPIO12, HSPIQ | | J2 pin 9 | source Sheet &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| D7 | GPIO13, RXD2, HSPID | | J2 pin 10 | source Sheet &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| D8 | GPIO15, TXD2, HSPICS | | J2 pin 11 | source Sheet &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| D9 | RXD0, GPIO3 | | J2 pin 12 | source Sheet &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| D10 | TXD0, GPIO1 | | J2 pin 13 | source Sheet &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| GND | GND | | J2 pin 14 | source Sheet &#x27;IO CONN&#x27; (J1, J2 1x15 headers) |
| VDD3V3 | 3.3 V | 3.3 V | J2 pin 15 | source Sheet &#x27;IO CONN&#x27; (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](https://app.soldr.ai/?prompt=I%20want%20to%20build%20a%20plant%20moisture%20monitor%20with%20a%20NodeMCU%20ESP8266%20and%20a%20capacitive%20soil%20moisture%20sensor): 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](https://app.soldr.ai/?prompt=I%20want%20to%20build%20a%20Wi-Fi%20temperature%20and%20humidity%20display%20with%20a%20NodeMCU%20ESP8266%2C%20a%20DHT22%20and%20a%200.96%20inch%20OLED): DHT22 on one GPIO and the OLED on I2C (D1 and D2 are GPIO5 and GPIO4).
- [Probe temperature logger](https://app.soldr.ai/?prompt=I%20want%20to%20build%20a%20Wi-Fi%20temperature%20logger%20with%20a%20NodeMCU%20ESP8266%20and%20a%20DS18B20%20waterproof%20probe): 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](https://aithinker-static.oss-cn-shenzhen.aliyuncs.com/docs/Public%20Document%20Center/WiFi/esp8266/Specification/ESP-12E%20Specification-20220807.pdf), 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](https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf), 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](https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf), section 4.9, p.22; [link](https://aithinker-static.oss-cn-shenzhen.aliyuncs.com/docs/Public%20Document%20Center/WiFi/esp8266/SchematicDiagram/NodeMCU8266_V1.0%E5%8E%9F%E7%90%86%E5%9B%BE20150303.pdf), 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).

## Sources

- [link](https://aithinker-static.oss-cn-shenzhen.aliyuncs.com/docs/Public%20Document%20Center/WiFi/esp8266/SchematicDiagram/NodeMCU8266_V1.0%E5%8E%9F%E7%90%86%E5%9B%BE20150303.pdf) (NodeMCU DevKit V1.0 schematic, NodeMCU team, hosted by Ai-Thinker)
- [link](https://aithinker-static.oss-cn-shenzhen.aliyuncs.com/docs/Public%20Document%20Center/WiFi/esp8266/Specification/ESP-12E%20Specification-20220807.pdf) (ESP-12E Specification v1.0, Ai-Thinker)
- [link](https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf) (ESP8266EX Datasheet v7.1, Espressif)
