

The ESP32, manufactured by Espressif Systems, is a low-cost, low-power system on a chip (SoC) with integrated Wi-Fi and Bluetooth capabilities. It is widely used in Internet of Things (IoT) applications, embedded systems, and smart devices. The ESP32 is known for its versatility, high performance, and ease of use, making it a popular choice for both hobbyists and professionals.








The ESP32 (WROOM-32) module is built around the ESP32-D0WDQ6 chip and includes a variety of features to support a wide range of applications.
| Parameter | Value |
|---|---|
| Manufacturer | Espressif Systems |
| Part Number | WROOM-32 |
| Processor | Dual-core Xtensa® 32-bit LX6 |
| Clock Speed | Up to 240 MHz |
| Flash Memory | 4 MB (external 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.0V to 3.6V |
| GPIO Pins | 34 (multiplexed for various functions) |
| ADC Channels | 18 (12-bit resolution) |
| DAC Channels | 2 |
| Communication Interfaces | UART, SPI, I2C, I2S, CAN, PWM |
| Power Consumption | Ultra-low power (varies by mode) |
| Operating Temperature | -40°C to +85°C |
| Dimensions | 18 mm x 25.5 mm x 3.1 mm |
The ESP32 WROOM-32 module has 38 pins. Below is a table of the most commonly used 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 |
For a complete pinout, refer to the official Espressif datasheet.
3V3 pin. Ensure the current rating of the power source is sufficient (at least 500 mA).Below is an example of how to blink an LED connected to GPIO2 of the ESP32 using the Arduino IDE:
// Blink an LED connected to GPIO2 on the ESP32
// Ensure the LED's anode is connected to GPIO2 and cathode to GND
#define LED_PIN 2 // Define the GPIO pin for 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
}
ESP32 Not Detected by Computer
Code Upload Fails
Wi-Fi Connection Issues
Overheating
Q: Can the ESP32 operate on 5V?
A: No, the ESP32 operates at 3.3V. Applying 5V to its pins can damage the module.
Q: How do I reset the ESP32?
A: Press the EN (enable) button on the module to reset it.
Q: Can I use the ESP32 with a 5V Arduino?
A: Yes, but you must use level shifters to convert 5V signals to 3.3V.
Q: How do I use Bluetooth on the ESP32?
A: The ESP32 supports both Bluetooth Classic and BLE. Use the Arduino IDE or ESP-IDF to configure and program Bluetooth functionality.
For more detailed information, refer to the official Espressif documentation.