ESP8266 NodeMCU V2¶
The legacy WiFi microcontroller — 80 MHz Tensilica L106, 11 usable GPIO, 2.4 GHz WiFi only. Still the cheapest way to put something on the network.
In stock
Espressif
1 files · 1.2 MB
Specs¶
| Spec | Value |
|---|---|
| SoC | ESP8266 (Tensilica L106, 80 MHz) |
| Flash | 4 MB |
| SRAM | 80 KB |
| WiFi | 802.11 b/g/n (2.4 GHz, station + AP) |
| GPIO | 11 usable (D0–D10 NodeMCU labels) |
| ADC | 1 × 10-bit (A0, 0–1 V range!) |
| Operating voltage | 3.3 V (5 V tolerant only on USB) |
| USB-serial | CP2102 or CH340 (V2 typically CP2102) |
NodeMCU pin map (Lua label → GPIO)¶
| NodeMCU | GPIO | Notes |
|---|---|---|
| D0 | 16 | Wake from deep sleep; no interrupt/PWM |
| D1 | 5 | I²C SCL (default) |
| D2 | 4 | I²C SDA (default) |
| D3 | 0 | Flash button; pull HIGH to boot |
| D4 | 2 | Onboard blue LED (active LOW); pull HIGH at boot |
| D5 | 14 | SPI SCK |
| D6 | 12 | SPI MISO |
| D7 | 13 | SPI MOSI |
| D8 | 15 | SPI CS; pull LOW at boot |
| D9 (RX) | 3 | UART RX |
| D10 (TX) | 1 | UART TX |
| A0 | — | 10-bit ADC, max 1.0 V (board divides 0–3.3 V) |
Wiring example — connect to WiFi¶
#include <ESP8266WiFi.h>
const char* SSID = "your-ssid";
const char* PASS = "your-password";
void setup() {
Serial.begin(115200);
WiFi.begin(SSID, PASS);
while (WiFi.status() != WL_CONNECTED) { delay(250); Serial.print('.'); }
Serial.println(); Serial.print("IP: "); Serial.println(WiFi.localIP());
}
void loop() {}
Arduino IDE board: NodeMCU 1.0 (ESP-12E Module).
Schematic¶
Open NodeMCU schematic on GitHub
NodeMCU is fully open-hardware — Eagle, schematic PDF, and BOM all on GitHub.
Last updated: 2026-05-13 · Source on GitHub