

The ESP32-WROOM, manufactured by Espressif Systems, is a versatile and powerful microcontroller module designed for Internet of Things (IoT) applications. It features integrated Wi-Fi and Bluetooth capabilities, a dual-core processor, and a wide range of GPIO pins, making it suitable for a variety of embedded systems. The module is compact, energy-efficient, and supports multiple communication protocols, making it a popular choice for developers and hobbyists alike.








| Parameter | Value |
|---|---|
| Manufacturer | Espressif Systems |
| Part ID | ESP32-WROOM |
| Processor | Dual-core Xtensa® 32-bit LX6 CPU |
| Clock Speed | Up to 240 MHz |
| Flash Memory | 4 MB (default, expandable in variants) |
| SRAM | 520 KB |
| Wireless Connectivity | Wi-Fi 802.11 b/g/n, Bluetooth v4.2 BR/EDR |
| Operating Voltage | 3.0V to 3.6V |
| GPIO Pins | 34 (multipurpose) |
| Communication Protocols | UART, SPI, I2C, I2S, PWM, ADC, DAC |
| ADC Channels | 18 (12-bit resolution) |
| Operating Temperature | -40°C to +85°C |
| Dimensions | 18 mm x 25.5 mm x 3.1 mm |
The ESP32-WROOM module has 38 pins. Below is a summary of the key pins and their functions:
| Pin Number | Pin Name | Function Description |
|---|---|---|
| 1 | EN | Enable pin (active high) |
| 2 | IO0 | GPIO0, used for boot mode selection |
| 3 | IO1 (TX0) | GPIO1, UART0 TX |
| 4 | IO3 (RX0) | GPIO3, UART0 RX |
| 5 | IO4 | GPIO4, general-purpose I/O |
| 6 | IO5 | GPIO5, general-purpose I/O |
| 7 | IO12 | GPIO12, ADC2 channel 5 |
| 8 | IO13 | GPIO13, ADC2 channel 4 |
| 9 | IO14 | GPIO14, ADC2 channel 6 |
| 10 | IO15 | GPIO15, ADC2 channel 3 |
| 11 | IO16 | GPIO16, general-purpose I/O |
| 12 | IO17 | GPIO17, general-purpose I/O |
| 13 | GND | Ground |
| 14 | 3V3 | 3.3V power supply |
Note: Not all GPIO pins support all functions simultaneously. Refer to the ESP32 datasheet for detailed pin multiplexing information.
Below is an example of using the ESP32-WROOM with the Arduino IDE to blink an LED connected to GPIO2:
// Example: Blink an LED using ESP32-WROOM
// Connect an LED to GPIO2 with a current-limiting resistor
#define LED_PIN 2 // GPIO2 is connected to the LED
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
}
Tip: 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.
ESP32-WROOM Not Detected by PC:
Wi-Fi Connection Fails:
Module Overheats:
Boot Mode Issues:
Q: Can the ESP32-WROOM operate on 5V?
A: No, the ESP32-WROOM 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 Bluetooth and Wi-Fi simultaneously?
A: Yes, the ESP32 supports simultaneous use of Bluetooth and Wi-Fi, but performance may vary depending on the application.
Q: What is the maximum range of the Wi-Fi?
A: The Wi-Fi range is approximately 50 meters indoors and 200 meters outdoors, depending on environmental factors.
For more detailed information, refer to the official ESP32-WROOM datasheet and Espressif's documentation.