ESP32 Pinout Explorer
Select an ESP32 board to explore GPIO functions, ADC pins, PWM capability, I2C, SPI, UART, boot strapping pins, input-only pins and common wiring warnings.
Board Summary
Quick Warnings
GPIO Pin Table
| GPIO | Status | Digital | ADC | PWM | I2C | SPI | UART | Notes |
|---|
Arduino GPIO Starter Code
MicroPython GPIO Starter Code
ESP32 Pinout Guidance
- For LEDs, relays and simple outputs: use ordinary GPIO pins marked as generally safe.
- For analogue sensors: choose ADC-capable pins. Classic ESP32 boards often use GPIO32–39 for ADC1.
- For I2C: GPIO21 and GPIO22 are common defaults on classic ESP32 boards, but many ESP32 chips allow remapping.
- For SPI: GPIO18, GPIO19, GPIO23 and GPIO5 are common VSPI defaults on many ESP32 DevKit boards.
- For boot reliability: avoid pulling strapping pins high or low unless you understand the boot requirements.
- For ESP32-C3/S3 USB boards: USB Serial/JTAG pins may be shared with normal GPIO functions depending on configuration.
ESP32 Pinout Explorer.
It supports:
ESP32 DevKit V1 / WROOM
ESP32-WROVER
ESP32-S2
ESP32-S3
ESP32-C3
ESP32-C6
ESP32-H2
ESP32-PICO-D4
ESP32-CAM
Generic ESP32 module
It includes GPIO search, board filtering, ADC/PWM/I2C/SPI/UART support, boot strap warnings, input-only warnings, flash pin warnings, USB/JTAG notes, safe-pin ratings and starter code snippets.
Espressif documents confirm that ESP32 pins are routed through GPIO matrix / IO MUX, and that strapping pins need correct logic levels at boot. ESP-IDF also lists ESP32 strapping pins as GPIO0, GPIO2, GPIO5, GPIO12 and GPIO15, while ESP32-C3 strapping pins include GPIO2, GPIO8 and GPIO9.
