ESP32 Explained: Introduction for Beginners and IoT Developers
The ESP32 is a powerful, low-cost microcontroller board built around the ESP32 series SoC from Espressif Systems. It is known for combining high-performance processing with built-in wireless capabilities, making it a popular choice for IoT, automation, wearables, and embedded AI applications. The ESP32 is widely used in both educational environments and professional product development due to its versatility and rich feature set.
The board comes in several module variants—such as the ESP32-WROOM-32, ESP32-WROVER, and other footprint-compatible modules. All variants are based on the same core SoC but differ in features like RAM size, flash size, and antenna configuration. Despite these differences, they maintain the same fundamental architecture and functionality.
Key Features
- Microcontroller: ESP32-D0WDQ6 (dual-core Xtensa LX6)
- Operating Voltage: 3.3V
- Input Voltage (recommended): 5V via USB / 5–12V via VIN (depends on development board)
- Input Voltage (limits): 3.3V direct to module, 5–12V only through onboard regulators (DevKit)
- Digital I/O Pins: 34 GPIOs (multiplexed with peripherals; not all available on DevKit)
- Analog Input Pins: 18 × ADC channels (12-bit)
- Analog Output Pins: 2 × DAC channels (8-bit)
- PWM Channels: 16 (configurable LEDC PWM)
- Communication: UART × 3, SPI × 3, I2C × 2, I2S × 2, CAN × 1
- Wi-Fi: 802.11 b/g/n
- Bluetooth: v4.2 BR/EDR + BLE
- Flash Memory: 4 MB (typical for WROOM-32 module)
- SRAM: 520 KB
- External PSRAM: Not available on WROOM (available on WROVER)
- Clock Speed: Up to 240 MHz
- Operating Temperature: –40°C to +125°C (chip), module rated up to +85°C
- DC Current Consumption: 80–260 mA (active), <10 µA (deep sleep)
Pin-Diagram

Pin Description
- GPIO Pins: 34 total GPIOs (usable count depends on board)
- Analog Inputs (ADC): 18 channels on GPIO 0, 2, 4, 12–15, 25–27, 32–39
- Analog Outputs (DAC): 2 channels on GPIO 25 and GPIO 26
- PWM: 16 channels (available on most GPIOs via LEDC)
- UART: UART0 (GPIO 1 TX, 3 RX), UART1 (GPIO 9, 10), UART2 (GPIO 16 RX, 17 TX)
- SPI: VSPI (GPIO 5 CS, 18 CLK, 19 MISO, 23 MOSI), HSPI (GPIO 15 CS, 14 CLK, 12 MISO, 13 MOSI)
- I2C: Default pins GPIO 21 (SDA) and GPIO 22 (SCL)
- I2S: Available on GPIO 25, 26, 27, 14, 15 (configurable)
- Touch Sensors: GPIO 0, 2, 4, 12–15, 27, 32, 33
- Boot/Strapping Pins: GPIO 0, 2, 4, 5, 12, 15
- Power Pins: 3V3, 5V, GND, EN