

The ESP32 is a powerful microcontroller developed by Arduino, with the manufacturer part ID "UNO." It features built-in Wi-Fi and Bluetooth capabilities, making it an excellent choice for Internet of Things (IoT) applications, smart devices, and embedded systems. With its 30-pin configuration, the ESP32 offers a wide range of input/output (I/O) options, enabling seamless integration with sensors, actuators, and other peripherals.








The ESP32 (30 pin) microcontroller is designed to deliver high performance and versatility. Below are its key technical specifications:
| Specification | Details |
|---|---|
| Microcontroller | Dual-core Xtensa® 32-bit LX6 processor |
| Clock Speed | Up to 240 MHz |
| Flash Memory | 4 MB (varies by model) |
| SRAM | 520 KB |
| Wi-Fi | 802.11 b/g/n |
| Bluetooth | Bluetooth 4.2 and BLE (Bluetooth Low Energy) |
| Operating Voltage | 3.3V |
| Input Voltage Range | 5V (via USB) or 7-12V (via VIN pin) |
| GPIO Pins | 30 pins (including digital, analog, PWM, I2C, SPI, UART, and more) |
| ADC Channels | 18 (12-bit resolution) |
| DAC Channels | 2 |
| PWM Channels | 16 |
| Communication Protocols | UART, SPI, I2C, I2S, CAN, Ethernet |
| Power Consumption | Ultra-low power consumption in deep sleep mode (as low as 10 µA) |
| Operating Temperature | -40°C to +85°C |
The ESP32 (30 pin) has a versatile pinout. Below is a table summarizing the key pins and their functions:
| Pin Name | Function |
|---|---|
| VIN | Input voltage (7-12V) |
| GND | Ground |
| 3V3 | 3.3V output |
| EN | Enable pin (active high) |
| IO0 | GPIO0, used for boot mode selection |
| IO2 | GPIO2, supports PWM, ADC, and more |
| IO4 | GPIO4, supports PWM, ADC, and more |
| IO5 | GPIO5, supports PWM, ADC, and more |
| IO12 | GPIO12, supports PWM, ADC, and more |
| IO13 | GPIO13, supports PWM, ADC, and more |
| IO14 | GPIO14, supports PWM, ADC, and more |
| IO15 | GPIO15, supports PWM, ADC, and more |
| IO16 | GPIO16, supports UART, I2C, and more |
| IO17 | GPIO17, supports UART, I2C, and more |
| IO18 | GPIO18, supports SPI, PWM, and more |
| IO19 | GPIO19, supports SPI, PWM, and more |
| IO21 | GPIO21, supports I2C, PWM, and more |
| IO22 | GPIO22, supports I2C, PWM, and more |
| IO23 | GPIO23, supports SPI, PWM, and more |
| IO25 | GPIO25, supports DAC, ADC, and more |
| IO26 | GPIO26, supports DAC, ADC, and more |
| IO27 | GPIO27, supports ADC, PWM, and more |
| IO32 | GPIO32, supports ADC, PWM, and more |
| IO33 | GPIO33, supports ADC, PWM, and more |
| IO34 | GPIO34, input-only ADC pin |
| IO35 | GPIO35, input-only ADC pin |
| RX0 | UART0 RX (serial communication) |
| TX0 | UART0 TX (serial communication) |
The ESP32 (30 pin) is easy to use in a variety of projects. Below are step-by-step instructions for using it in a circuit:
Powering the ESP32:
Connecting Peripherals:
Programming the ESP32:
Here is an example of how to blink an LED connected to GPIO2:
// Define the GPIO pin where the LED is connected
#define LED_PIN 2
void setup() {
pinMode(LED_PIN, OUTPUT); // Set the LED pin as an output
}
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 Arduino IDE:
Upload Fails with "Failed to Connect" Error:
Wi-Fi Connection Issues:
Random Resets or Instability:
Q: Can the ESP32 operate on 5V logic?
A: No, the ESP32 operates on 3.3V logic. Using 5V logic can damage the board.
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 an external antenna?
A: Yes, some ESP32 models support external antennas. Check the specific model for details.
Q: How do I enable deep sleep mode?
A: Use the esp_deep_sleep_start() function in your code to enable deep sleep mode.
This documentation provides a comprehensive guide to using the ESP32 (30 pin) microcontroller. For further assistance, refer to the official Arduino documentation or community forums.