

The NodeMCU-32S ESP32 DEVKIT WROOM, manufactured by Wishiot (Part ID: CP2102), is a low-cost, open-source IoT development platform based on the powerful ESP32 chip. It features integrated Wi-Fi and Bluetooth capabilities, making it ideal for a wide range of applications, including home automation, sensor networks, and IoT prototyping. Its compact design and rich feature set make it a popular choice among developers and hobbyists.








The NodeMCU-32S ESP32 DEVKIT WROOM is built around the ESP32-WROOM-32 module, which integrates a dual-core processor, wireless connectivity, and a variety of peripherals.
| Parameter | Specification |
|---|---|
| Microcontroller | ESP32 (Xtensa® dual-core 32-bit LX6) |
| Clock Speed | Up to 240 MHz |
| Flash Memory | 4 MB (SPI Flash) |
| SRAM | 520 KB |
| Wi-Fi | 802.11 b/g/n (2.4 GHz) |
| Bluetooth | v4.2 BR/EDR and BLE |
| Operating Voltage | 3.3 V |
| Input Voltage (VIN) | 5 V (via USB or external power) |
| GPIO Pins | 30 |
| ADC Channels | 18 (12-bit resolution) |
| DAC Channels | 2 |
| Communication Interfaces | UART, SPI, I2C, I2S, CAN, PWM |
| USB-to-Serial Chip | CP2102 |
| Dimensions | 58 mm x 25.5 mm |
The NodeMCU-32S ESP32 DEVKIT WROOM has a total of 38 pins. Below is a summary of the key pins:
| Pin Name | Pin Number | Description |
|---|---|---|
| VIN | 1 | Input voltage (5 V) |
| GND | 2, 38 | Ground |
| 3V3 | 3 | 3.3 V output |
| EN | 4 | Enable pin (active high) |
| IO0 | 5 | GPIO0, used for boot mode selection |
| IO2 | 6 | GPIO2, supports PWM, ADC, etc. |
| IO4 | 7 | GPIO4, supports PWM, ADC, etc. |
| IO5 | 8 | GPIO5, supports PWM, ADC, etc. |
| IO12 | 9 | GPIO12, supports PWM, ADC, etc. |
| IO13 | 10 | GPIO13, supports PWM, ADC, etc. |
| IO14 | 11 | GPIO14, supports PWM, ADC, etc. |
| IO15 | 12 | GPIO15, supports PWM, ADC, etc. |
| IO16 | 13 | GPIO16, supports UART, ADC, etc. |
| IO17 | 14 | GPIO17, supports UART, ADC, etc. |
| IO18 | 15 | GPIO18, supports SPI, PWM, etc. |
| IO19 | 16 | GPIO19, supports SPI, PWM, etc. |
| IO21 | 17 | GPIO21, supports I2C, PWM, etc. |
| IO22 | 18 | GPIO22, supports I2C, PWM, etc. |
| IO23 | 19 | GPIO23, supports SPI, PWM, etc. |
| IO25 | 20 | GPIO25, supports DAC, ADC, etc. |
| IO26 | 21 | GPIO26, supports DAC, ADC, etc. |
| IO27 | 22 | GPIO27, supports ADC, PWM, etc. |
| IO32 | 23 | GPIO32, supports ADC, PWM, etc. |
| IO33 | 24 | GPIO33, supports ADC, PWM, etc. |
| IO34 | 25 | GPIO34, input-only ADC |
| IO35 | 26 | GPIO35, input-only ADC |
| IO36 | 27 | GPIO36, input-only ADC |
| IO39 | 28 | GPIO39, input-only ADC |
Powering the Board:
Programming the Board:
NodeMCU-32S) and port in the IDE.Connecting Peripherals:
Flashing Code:
BOOT button while pressing the EN button to enter flashing mode. BOOT button and upload the code from the IDE.The following example demonstrates how to blink an LED connected to GPIO2:
// Define the GPIO pin for the LED
#define LED_PIN 2
void setup() {
pinMode(LED_PIN, OUTPUT); // Set GPIO2 as an output pin
}
void loop() {
digitalWrite(LED_PIN, HIGH); // Turn the LED on
delay(1000); // Wait for 1 second
digitalWrite(LED_PIN, LOW); // Turn the LED off
delay(1000); // Wait for 1 second
}
Board Not Detected by Computer:
Code Upload Fails:
BOOT button while uploading the code.Wi-Fi Connection Issues:
GPIO Pin Not Working: