

The ESP-WROOM-32 is a powerful microcontroller module designed for IoT (Internet of Things) applications. It features built-in Wi-Fi and Bluetooth capabilities, making it ideal for wireless communication and control. With 30 GPIO (General Purpose Input/Output) pins, the ESP-WROOM-32 offers versatile connectivity options for sensors, actuators, and other peripherals. Its compact size and robust performance make it a popular choice for smart home devices, industrial automation, and wearable technology.








The ESP-WROOM-32 module has 30 pins, each with specific functions. Below is the pinout description:
| Pin Number | Pin Name | Function |
|---|---|---|
| 1 | EN | Enable pin (active high, resets the chip when pulled low) |
| 2 | IO0 | GPIO0, used for boot mode selection (must be low for flashing) |
| 3 | IO1 (TX0) | GPIO1, UART0 TX (serial communication) |
| 4 | IO3 (RX0) | GPIO3, UART0 RX (serial communication) |
| 5 | IO4 | GPIO4, general-purpose I/O |
| 6 | IO5 | GPIO5, general-purpose I/O |
| 7 | IO12 | GPIO12, ADC2 channel 5, HSPI MISO |
| 8 | IO13 | GPIO13, ADC2 channel 4, HSPI MOSI |
| 9 | IO14 | GPIO14, ADC2 channel 6, HSPI CLK |
| 10 | IO15 | GPIO15, ADC2 channel 3, HSPI CS |
| 11 | IO16 | GPIO16, general-purpose I/O, RTC GPIO |
| 12 | IO17 | GPIO17, general-purpose I/O, RTC GPIO |
| 13 | IO18 | GPIO18, VSPI CLK |
| 14 | IO19 | GPIO19, VSPI MISO |
| 15 | IO21 | GPIO21, I2C SDA |
| 16 | IO22 | GPIO22, I2C SCL |
| 17 | IO23 | GPIO23, VSPI MOSI |
| 18 | IO25 | GPIO25, DAC1, ADC2 channel 8 |
| 19 | IO26 | GPIO26, DAC2, ADC2 channel 9 |
| 20 | IO27 | GPIO27, ADC2 channel 7 |
| 21 | IO32 | GPIO32, ADC1 channel 4, touch sensor T9 |
| 22 | IO33 | GPIO33, ADC1 channel 5, touch sensor T8 |
| 23 | IO34 | GPIO34, ADC1 channel 6 (input only) |
| 24 | IO35 | GPIO35, ADC1 channel 7 (input only) |
| 25 | GND | Ground |
| 26 | 3V3 | 3.3V power supply |
| 27 | VIN | Input voltage (5V recommended for onboard regulator) |
| 28 | IO36 | GPIO36, ADC1 channel 0, touch sensor T0 (input only) |
| 29 | IO39 | GPIO39, ADC1 channel 3, touch sensor T3 (input only) |
| 30 | RST | Reset pin (active low) |
Powering the Module:
3V3 pin to a 3.3V power source. Alternatively, you can use the VIN pin with a 5V input.GND pin is connected to the ground of your circuit.Programming the Module:
TX and RX pins of the adapter to the RX0 and TX0 pins of the ESP-WROOM-32, respectively.IO0 pin low (connect to GND) to enter bootloader mode for flashing firmware.Connecting Peripherals:
IO21 (SDA) and IO22 (SCL).IO18 (CLK), IO19 (MISO), and IO23 (MOSI).Uploading Code:
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() {
// Set the LED pin as an output
pinMode(LED_PIN, OUTPUT);
}
void loop() {
// Turn the LED on
digitalWrite(LED_PIN, HIGH);
delay(1000); // Wait for 1 second
// Turn the LED off
digitalWrite(LED_PIN, LOW);
delay(1000); // Wait for 1 second
}
IO0 pin is pulled low during programming and released afterward.Module Not Detected by Computer:
Failed to Upload Code:
IO0 pin is pulled low during programming.TX and RX pins.Wi-Fi Connection Issues:
Module Overheating:
By following this documentation, you can effectively integrate the ESP-WROOM-32 into your projects and troubleshoot common issues.