

The ESP32-WROOM-32 is a powerful Wi-Fi and Bluetooth microcontroller module designed for IoT applications and embedded systems. It features dual-core processing, making it suitable for tasks requiring high performance and multitasking capabilities. With integrated Wi-Fi and Bluetooth (Classic and BLE), the ESP32-WROOM-32 is ideal for smart home devices, wearables, industrial automation, and other connected applications.








The ESP32-WROOM-32 module has 38 pins. Below is a table of the most commonly used pins and their functions:
| Pin | Name | Function |
|---|---|---|
| 1 | EN | Enable pin. Pull high to enable the module. |
| 2 | GPIO0 | General-purpose I/O, boot mode selection during startup. |
| 3 | GPIO2 | General-purpose I/O, often used for bootstrapping. |
| 4 | GPIO4 | General-purpose I/O, supports PWM, ADC, etc. |
| 5 | GPIO5 | General-purpose I/O, supports PWM, ADC, etc. |
| 6-11 | Flash Pins | Internal SPI flash memory connections (not for user access). |
| 12 | GPIO12 | General-purpose I/O, supports ADC, PWM, etc. |
| 13 | GPIO13 | General-purpose I/O, supports ADC, PWM, etc. |
| 14 | GPIO14 | General-purpose I/O, supports ADC, PWM, etc. |
| 15 | GPIO15 | General-purpose I/O, supports ADC, PWM, etc. |
| 16 | GPIO16 | General-purpose I/O, supports ADC, PWM, etc. |
| 17 | GPIO17 | General-purpose I/O, supports ADC, PWM, etc. |
| 18 | GPIO18 | SPI clock pin (SCK) for hardware SPI. |
| 19 | GPIO19 | SPI master-out/slave-in (MOSI) for hardware SPI. |
| 21 | GPIO21 | I2C data (SDA) pin. |
| 22 | GPIO22 | I2C clock (SCL) pin. |
| 23 | GPIO23 | SPI master-in/slave-out (MISO) for hardware SPI. |
| 25 | GPIO25 | DAC output channel 1. |
| 26 | GPIO26 | DAC output channel 2. |
| 27 | GPIO27 | General-purpose I/O, supports ADC, PWM, etc. |
| 32 | GPIO32 | ADC input channel 4. |
| 33 | GPIO33 | ADC input channel 5. |
| 34 | GPIO34 | ADC input channel 6 (input only). |
| 35 | GPIO35 | ADC input channel 7 (input only). |
| 36 | GPIO36 (VP) | ADC input channel 0 (input only). |
| 39 | GPIO39 (VN) | ADC input channel 3 (input only). |
Note: Some GPIO pins have specific bootstrapping functions and should not be pulled high or low during startup.
Below is an example of how to blink an LED connected to GPIO2 using the Arduino IDE:
// Include the ESP32 library
#include <Arduino.h>
// 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
}
Note: Install the ESP32 board package in the Arduino IDE before uploading the code. Go to
File > Preferences, add the ESP32 board URL, and install the package via the Board Manager.
Module Not Detected by PC:
Wi-Fi Connection Fails:
GPIO Pin Not Working:
High Power Consumption:
Q: Can the ESP32-WROOM-32 operate on 5V?
A: No, the module operates at 3.3V. Use a voltage regulator or level shifter for 5V systems.
Q: How do I reset the module?
A: Pull the EN pin low momentarily to reset the module.
Q: Can I use the ESP32-WROOM-32 with a breadboard?
A: Yes, but ensure the module's pins are properly aligned and connected to avoid shorts.
Q: What is the maximum Wi-Fi range?
A: The range depends on the environment but typically extends up to 100 meters in open spaces.
By following this documentation, you can effectively integrate the ESP32-WROOM-32 into your projects and troubleshoot common issues.