Onboard LEDs? NodeMCU's got two!


Blinking a LED is the “Hello, world” of embedded programming and most development board have an integrated LED. This makes it easier to run a basic piece of code, without having to hookup any external components.

The NodeMCU ESP8266 board has two of those LEDs! One on the NodeMCU PCB and another on the ESP-12 module’s PCB: NodeMCU Two LEDs

Comparison Table

  NodeMCU LED ESP-12 LED
Color Blue Blue
SMD Footprint 0603 0603
Pin GPIO16 GPIO2
Pin Functions USER, WAKE U1TXD
Pin Silkscreen “D0” “D4”
Current-limiting Resistor 470 ohm 470 ohm
Sketch Pin Numbers 16, D0, LED_BUILTIN, BUILTIN_LED 2, D4
Schematic
     

Notes

Both LEDs operate in “inverted” mode, with regard to the pin levels - when the pin is HIGH, the LED is off; when the pin is LOW, the LED is on. The LED on GPIO2 flashes during ESP programming, as it is connected to the U1TXD pin.

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);     // Initialize the LED_BUILTIN pin as an output
}

void loop() {
  digitalWrite(LED_BUILTIN, LOW);   // Turn the LED on by making the voltage LOW
  delay(1000);                      // Wait for a second
  digitalWrite(LED_BUILTIN, HIGH);  // Turn the LED off by making the voltage HIGH
  delay(2000);                      // Wait for two seconds
}

void setup() {
  pinMode(2, OUTPUT);     // Initialize GPIO2 pin as an output
}

void loop() {
  digitalWrite(2, LOW);   // Turn the LED on by making the voltage LOW
  delay(1000);            // Wait for a second
  digitalWrite(2, HIGH);  // Turn the LED off by making the voltage HIGH
  delay(2000);            // Wait for two seconds
}