

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 designed for a wide range of applications, including Internet of Things (IoT) devices, smart home systems, wearable electronics, and industrial automation. The ESP32 is highly versatile, offering dual-core processing, multiple GPIO pins, and support for various communication protocols, making it a popular choice for embedded systems development.








| Parameter | Specification |
|---|---|
| Manufacturer | Espressif Systems |
| Part ID | Wi-Fi+BT+BLE MCU |
| Processor | Dual-core Xtensa® 32-bit LX6 microprocessor |
| Clock Speed | Up to 240 MHz |
| Flash Memory | 4 MB (varies by module) |
| SRAM | 520 KB |
| Wireless Connectivity | Wi-Fi 802.11 b/g/n, Bluetooth v4.2 (Classic + BLE) |
| Operating Voltage | 3.0V to 3.6V |
| GPIO Pins | Up to 34 (varies by module) |
| ADC Channels | 18 |
| 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 |
The ESP32 has multiple variants, but the following table outlines the general pin configuration for the ESP32-WROOM-32 module:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | EN | Enable pin (active high, resets the chip) |
| 2 | GPIO0 | General-purpose I/O, boot mode selection |
| 3 | GPIO1 (TX0) | UART0 transmit pin |
| 4 | GPIO3 (RX0) | UART0 receive pin |
| 5 | GPIO4 | General-purpose I/O, supports PWM, ADC, etc. |
| 6 | GPIO5 | General-purpose I/O, supports PWM, ADC, etc. |
| 7 | 3V3 | 3.3V power supply |
| 8 | GND | Ground |
| 9 | GPIO12 | General-purpose I/O, supports ADC, touch input |
| 10 | GPIO13 | General-purpose I/O, supports ADC, touch input |
| 11 | GPIO14 | General-purpose I/O, supports ADC, touch input |
| 12 | GPIO15 | General-purpose I/O, supports ADC, touch input |
| 13 | GPIO16 | General-purpose I/O |
| 14 | GPIO17 | General-purpose I/O |
Note: The exact pinout may vary depending on the ESP32 module variant. Always refer to the datasheet for your specific module.
The ESP32 can communicate with an Arduino UNO via UART. Below is an example of how to blink an LED connected to the ESP32 using the Arduino IDE:
// Example: Blink an LED on GPIO2 of the ESP32
// Ensure the LED is connected to GPIO2 with a current-limiting resistor.
#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
}
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.
ESP32 Not Detected by Computer
Failed to Upload Code
Wi-Fi Connection Issues
Random Resets or Instability
Q: Can the ESP32 operate on 5V?
A: No, the ESP32 operates on 3.3V. Applying 5V to its pins can damage the chip. Use level shifters for 5V devices.
Q: How do I enable Bluetooth on the ESP32?
A: The ESP32 supports both Bluetooth Classic and BLE. Use the BluetoothSerial or BLE libraries in the Arduino IDE to enable Bluetooth functionality.
Q: Can I use the ESP32 for battery-powered applications?
A: Yes, the ESP32 is designed for low-power applications. Use deep sleep mode to minimize power consumption.
Q: What is the maximum range of the ESP32's Wi-Fi?
A: The range depends on environmental factors but typically extends up to 100 meters in open spaces.
By following this documentation, you can effectively integrate the ESP32 into your projects and troubleshoot common issues.