ESP32 Pinout Reference
Interactive ESP32 GPIO pinout guide. Click any pin to see its full capabilities including ADC, DAC, touch, SPI, I2C, and UART functions. Switch between ESP32, ESP32-S3, ESP32-C3, and ESP32-C6 variants. Search pins by function. Free, private, and works offline.
Pin Details
How to Use the ESP32 Pinout Reference
The ESP32 Pinout Reference is a free, interactive tool that helps makers, students, and engineers quickly identify the functions of every GPIO pin on ESP32 development boards. Select your board variant from the dropdown to see the correct pin layout for ESP32 (30-pin DevKit V1), ESP32-S3, ESP32-C3, or ESP32-C6. Click or tap any pin on the visual board diagram to see its full capabilities including analog-to-digital converter (ADC) channel, digital-to-analog converter (DAC) output, capacitive touch sensor number, SPI bus assignment, I2C compatibility, UART mapping, and any boot-related strapping behavior. Use the search box to instantly find pins by function name or GPIO number. Filter tags let you highlight all ADC, touch, SPI, I2C, or UART pins at once, making it easy to plan your wiring before writing a single line of code.
ESP32 GPIO Pin Functions Explained
The ESP32 provides up to 34 GPIO pins, each capable of multiple functions through a flexible multiplexing system. ADC (Analog-to-Digital Converter) pins convert analog voltages (0-3.3V) to 12-bit digital values (0-4095). ADC1 has 8 channels and works alongside WiFi, while ADC2 has 10 channels but cannot be used when WiFi is active. DAC (Digital-to-Analog Converter) provides true analog output on GPIO25 (DAC1) and GPIO26 (DAC2), generating voltages between 0-3.3V with 8-bit resolution. Capacitive Touch sensing is available on 10 pins (Touch0-Touch9), enabling button-free touch interfaces. SPI communication uses HSPI (GPIO12-15) and VSPI (GPIO18-23) buses for high-speed peripheral communication with displays, SD cards, and sensors. I2C default pins are GPIO21 (SDA) and GPIO22 (SCL) for connecting sensors, OLEDs, and other I2C devices. UART provides three serial ports: UART0 (GPIO1/GPIO3, used by USB), UART1, and UART2 (GPIO16/GPIO17) for serial communication with GPS modules, Bluetooth adapters, and other microcontrollers.
ESP32 Strapping Pins and Boot Behavior
Five GPIO pins on the ESP32 are designated as strapping pins that determine the boot mode of the chip when it powers on or resets. GPIO0 selects between normal boot (HIGH) and download/flash mode (LOW) and is connected to the BOOT button on most development boards. GPIO2 must be LOW or floating during boot for proper startup and also controls the onboard LED on many boards. GPIO5 controls the timing of the SDIO slave during boot. GPIO12 (MTDI) sets the flash voltage: HIGH selects 1.8V flash, LOW selects 3.3V flash. Setting GPIO12 HIGH accidentally on a 3.3V flash board causes a boot failure, which is one of the most common ESP32 troubleshooting issues. GPIO15 (MTDO) controls whether the chip outputs debug logs on UART0 during boot. You can use strapping pins in your projects, but you must ensure they are in the correct state during the boot sequence to prevent startup failures.
ESP32 vs ESP32-S3 vs ESP32-C3 Pin Differences
Espressif offers several ESP32 variants optimized for different use cases. The original ESP32 has a dual-core Xtensa LX6 processor, 34 GPIOs, 18 ADC channels, 2 DAC channels, and 10 touch pins. It remains the most widely used variant for general IoT projects. The ESP32-S3 upgrades to a dual-core Xtensa LX7 with up to 45 GPIOs, USB OTG support, and improved AI acceleration for edge ML applications. It adds more ADC channels and touch pins but removes DAC. The ESP32-C3 is a cost-optimized single-core RISC-V chip with 22 GPIOs, WiFi, and Bluetooth 5 LE. It has fewer peripherals but offers excellent value for simple IoT sensors and actuators. The ESP32-C6 adds WiFi 6, Zigbee, and Thread protocol support to the RISC-V architecture with 30 GPIOs, making it ideal for smart home applications that need Matter protocol compatibility. Choose your variant based on required GPIO count, processing power, wireless protocols, and peripheral needs. Based on Espressif official datasheets, last updated April 2026.