ESP32 Pinout Reference
A mobile-friendly ESP32 DevKit / WROOM-32 reference for GPIO, ADC, DAC, PWM, touch sensors, I2C, SPI, UART, power pins, input-only pins and boot strapping pins.
⚠️ Key Safety Note: ESP32 GPIO pins are 3.3 V logic only. They are not 5 V tolerant. GPIO6 to GPIO11 are normally connected to flash memory and should not be used on common ESP32-WROOM boards.
🧭 Visual ESP32 DevKit pinout diagram
ESP32 DevKit / WROOM-32 pinout Common development-board reference · always confirm with your board silkscreen ESP32 WROOM-32 USB / POWER ADC2 pins may conflict when Wi‑Fi is active · strapping pins need care during boot 1ENRESET2GPIO36VP · ADC1 input3GPIO39VN · ADC1 input4GPIO34ADC1 input only5GPIO35ADC1 input only6GPIO32ADC1 · Touch · PWM7GPIO33ADC1 · Touch · PWM8GPIO25DAC1 · ADC2 · PWM9GPIO26DAC2 · ADC2 · PWM10GPIO27ADC2 · Touch · PWM11GPIO14SPI SCK · PWM12GPIO12Strap · ADC213GNDGround14GPIO13ADC2 · Touch · PWM1VIN5V input2GNDGround3GPIO23VSPI MOSI4GPIO22I2C SCL5GPIO1TX0 / USB serial6GPIO3RX0 / USB serial7GPIO21I2C SDA8GNDGround9GPIO19VSPI MISO10GPIO18VSPI SCK11GPIO5VSPI CS · Strap12GPIO17UART2 TX · PWM13GPIO16UART2 RX · PWM14GPIO4Strap · Touch15GPIO0BOOT strap16GPIO2Strap · LED often17GPIO15Strap · SPI CSPOWERGNDGPIOADC/DACTOUCHSPII2CUARTBOOT
📌 ESP32 GPIO quick list
Search Pin / Function
Filter Group
Quick filters:
📋 Searchable ESP32 pin table
GPIO / PinMain functionsGroupImportant note

📋 Common ESP32 Interfaces

🔁 Default I2C
SDAGPIO21
SCLGPIO22
Noteremappable
🟣 VSPI
MOSIGPIO23
MISOGPIO19
SCKGPIO18
CSGPIO5
🎛️ ADC / DAC
ADC132–39
Input only34–39
DAC25 / 26

📚 Engineering Notes

3.3 V logic only ESP32 GPIOs are not 5 V tolerant. Use a level shifter or divider for 5 V sensors and Arduino boards.
Boot strapping pins need care GPIO0, GPIO2, GPIO4, GPIO5, GPIO12 and GPIO15 can affect boot mode if pulled incorrectly during reset.
ADC2 and Wi‑Fi ADC2 pins may be unavailable or unreliable while Wi‑Fi is active. Prefer ADC1 pins GPIO32–GPIO39 for analog readings with Wi‑Fi.
Input-only pins GPIO34, GPIO35, GPIO36 and GPIO39 are input-only. They cannot drive LEDs, relays or output signals.

ESP32 Pinout Reference

This ESP32 pinout reference helps makers quickly identify safe pins for sensors, displays, relay boards, I2C modules, SPI screens, UART devices, PWM outputs, touch buttons and analog inputs.

Best ESP32 pins to use

For general projects, GPIO16, GPIO17, GPIO18, GPIO19, GPIO21, GPIO22, GPIO23, GPIO25, GPIO26, GPIO27, GPIO32 and GPIO33 are commonly useful. Always check your exact board because ESP32 development-board pin layouts vary.

❓ Frequently Asked Questions

No. ESP32 GPIO pins are 3.3 V logic only. Do not connect a 5 V signal directly to an ESP32 input.
The common Arduino ESP32 defaults are GPIO21 for SDA and GPIO22 for SCL. ESP32 I2C can usually be assigned to other pins in software.
GPIO34, GPIO35, GPIO36 and GPIO39 are input-only pins. They are useful for ADC input but cannot output HIGH/LOW or PWM.
ADC1 pins include GPIO32, GPIO33, GPIO34, GPIO35, GPIO36 and GPIO39. ADC2 pins include GPIO0, GPIO2, GPIO4, GPIO12–15 and GPIO25–27, but ADC2 can conflict with Wi‑Fi.
Classic ESP32 chips have DAC output on GPIO25 and GPIO26.
Avoid GPIO6 to GPIO11 because they are usually connected to onboard flash. Be careful with strapping pins GPIO0, GPIO2, GPIO4, GPIO5, GPIO12 and GPIO15.
Most output-capable ESP32 GPIO pins can generate PWM using the LEDC peripheral, but input-only pins GPIO34 to GPIO39 cannot output PWM.
Common VSPI defaults are GPIO23 for MOSI, GPIO19 for MISO, GPIO18 for SCK and GPIO5 for CS.