

The ESP32, manufactured by Espressif, is a powerful microcontroller that integrates Wi-Fi and Bluetooth capabilities, making it an ideal choice for Internet of Things (IoT) applications. With its 30-pin configuration, the ESP32 offers versatile connectivity options, enabling developers to create a wide range of projects, from smart home devices to industrial automation systems.








The ESP32 (30-pin version) is designed to deliver high performance while maintaining low power consumption. Below are its key technical details:
| Parameter | Specification |
|---|---|
| Manufacturer | Espressif |
| Microcontroller | Tensilica Xtensa LX6 Dual-Core |
| Clock Speed | Up to 240 MHz |
| Flash Memory | 4 MB (varies by model) |
| SRAM | 520 KB |
| Wi-Fi Standard | 802.11 b/g/n (2.4 GHz) |
| Bluetooth Standard | Bluetooth 4.2 + BLE |
| Operating Voltage | 3.3V |
| Input Voltage Range | 5V (via USB) or 3.3V (via VIN pin) |
| GPIO Pins | 30 (multipurpose, including ADC, DAC, PWM, etc.) |
| ADC Resolution | 12-bit |
| DAC Resolution | 8-bit |
| Power Consumption | Ultra-low power modes available |
| Operating Temperature | -40°C to 85°C |
The ESP32 (30-pin version) features a variety of pins for different functionalities. Below is the pinout description:
| Pin Number | Pin Name | Function |
|---|---|---|
| 1 | EN | Enable pin (active high) |
| 2 | IO1 | GPIO1, UART TX |
| 3 | IO3 | GPIO3, UART RX |
| 4 | IO4 | GPIO4, PWM, ADC |
| 5 | IO5 | GPIO5, PWM, ADC |
| 6 | GND | Ground |
| 7 | IO6 | GPIO6, SPI Flash (internal use) |
| 8 | IO7 | GPIO7, SPI Flash (internal use) |
| 9 | IO8 | GPIO8, SPI Flash (internal use) |
| 10 | IO9 | GPIO9, SPI Flash (internal use) |
| ... | ... | ... |
| 30 | IO30 | GPIO30, ADC, PWM |
Note: Some pins are reserved for internal use (e.g., SPI Flash). Refer to the official datasheet for detailed pin functionality.
The ESP32 is versatile and can be used in a variety of circuits. Below are the steps to get started:
Powering the ESP32:
Connecting to Peripherals:
Programming the ESP32:
The following example demonstrates how to blink an LED connected to GPIO2:
// Example: Blink an LED connected to GPIO2 on the ESP32
// Define the GPIO pin where the LED is connected
const int ledPin = 2;
void setup() {
// Set the LED pin as an output
pinMode(ledPin, OUTPUT);
}
void loop() {
// Turn the LED on
digitalWrite(ledPin, HIGH);
delay(1000); // Wait for 1 second
// Turn the LED off
digitalWrite(ledPin, LOW);
delay(1000); // Wait for 1 second
}
ESP32 Not Detected by Computer:
Program Upload Fails:
Wi-Fi Connection Issues:
Random Resets:
Q: Can the ESP32 operate on battery power?
A: Yes, the ESP32 can be powered by a LiPo battery via the VIN pin. Ensure the battery voltage is within the acceptable range.
Q: How do I reset the ESP32?
A: Press the "EN" button on the board to reset the ESP32.
Q: Can I use the ESP32 with other IDEs?
A: Yes, the ESP32 is compatible with other IDEs such as PlatformIO and Espressif's own ESP-IDF.
Q: What is the maximum number of GPIO pins I can use?
A: The ESP32 (30-pin version) provides up to 22 usable GPIO pins, depending on your configuration.
By following this documentation, you can effectively utilize the ESP32 for your projects and troubleshoot common issues with ease.