

The NODEMCU-32S is a low-cost, open-source IoT platform built around the powerful ESP32 microcontroller. It is designed for developing connected devices and features integrated Wi-Fi and Bluetooth capabilities, making it an excellent choice for IoT applications. The board includes a USB interface for programming and power, a variety of GPIO pins for interfacing with sensors and actuators, and supports programming in both Lua script and the Arduino IDE.








The NODEMCU-32S has a total of 30 GPIO pins, each with multiple functions. Below is a summary of the pin configuration:
| Pin | Function | Description |
|---|---|---|
| VIN | Power Input | Input voltage (5V) when powering the board externally. |
| GND | Ground | Ground connection. |
| 3V3 | Power Output | 3.3V output for powering external components. |
| EN | Enable | Enables or disables the board (active high). |
| IO0 | GPIO0, Boot Mode | General-purpose I/O, also used for boot mode selection. |
| IO2 | GPIO2, ADC, PWM | General-purpose I/O, analog input, or PWM output. |
| IO4 | GPIO4, ADC, PWM | General-purpose I/O, analog input, or PWM output. |
| IO5 | GPIO5, ADC, PWM | General-purpose I/O, analog input, or PWM output. |
| IO12 | GPIO12, ADC, PWM | General-purpose I/O, analog input, or PWM output. |
| IO13 | GPIO13, ADC, PWM | General-purpose I/O, analog input, or PWM output. |
| IO14 | GPIO14, ADC, PWM | General-purpose I/O, analog input, or PWM output. |
| IO15 | GPIO15, ADC, PWM | General-purpose I/O, analog input, or PWM output. |
| IO16 | GPIO16, ADC, PWM | General-purpose I/O, analog input, or PWM output. |
| IO17 | GPIO17, ADC, PWM | General-purpose I/O, analog input, or PWM output. |
| IO18 | GPIO18, SPI, PWM | General-purpose I/O, SPI interface, or PWM output. |
| IO19 | GPIO19, SPI, PWM | General-purpose I/O, SPI interface, or PWM output. |
| IO21 | GPIO21, I2C SDA | General-purpose I/O or I2C data line. |
| IO22 | GPIO22, I2C SCL | General-purpose I/O or I2C clock line. |
| IO23 | GPIO23, SPI, PWM | General-purpose I/O, SPI interface, or PWM output. |
| IO25 | GPIO25, DAC1, PWM | General-purpose I/O, DAC output, or PWM output. |
| IO26 | GPIO26, DAC2, PWM | General-purpose I/O, DAC output, or PWM output. |
| IO27 | GPIO27, ADC, PWM | General-purpose I/O, analog input, or PWM output. |
| IO32 | GPIO32, ADC, PWM | General-purpose I/O, analog input, or PWM output. |
| IO33 | GPIO33, ADC, PWM | General-purpose I/O, analog input, or PWM output. |
| IO34 | GPIO34, ADC | General-purpose I/O or analog input (input-only pin). |
| IO35 | GPIO35, ADC | General-purpose I/O or analog input (input-only pin). |
| IO36 | GPIO36, ADC | General-purpose I/O or analog input (input-only pin). |
| IO39 | GPIO39, ADC | General-purpose I/O or analog input (input-only pin). |
Powering the Board:
Programming the Board:
Connecting Peripherals:
The following example demonstrates how to blink an LED connected to GPIO2:
// Define the GPIO pin where the LED is connected
const int ledPin = 2;
void setup() {
// Set the LED pin as an output
pinMode(ledPin, OUTPUT);
}
void loop() {
// Turn the LED on
digitalWrite(ledPin, HIGH);
delay(1000); // Wait for 1 second
// Turn the LED off
digitalWrite(ledPin, LOW);
delay(1000); // Wait for 1 second
}
The board is not detected by the computer:
Code upload fails:
Wi-Fi connection issues:
GPIO pins not working as expected:
Can I power the NODEMCU-32S with a battery?
Yes, you can use a 3.7V LiPo battery connected to the VIN and GND pins.
What is the maximum current the GPIO pins can source/sink?
Each GPIO pin can source/sink up to 12mA safely.
Can I use the NODEMCU-32S with MicroPython?
Yes, the NODEMCU-32S supports MicroPython, but you need to flash the MicroPython firmware first.