ESP32 DevKit (WROOM-32) pinout
Every ESP32 DevKit (WROOM-32) pin with its capabilities (digital, PWM, ADC, I2C, SPI, UART) and the wiring gotchas that bite. WiFi/Bluetooth workhorse. 3.3 V logic — 5 V on a GPIO can kill it. Several pins have boot-time roles (strapping pins).
ESP32 dual-core @ 240 MHz, WiFi + BT Logic: 3.3 V Pro in app
ESP32 DevKit (WROOM-32) pinout diagram ESP32 DevKit (WROOM-32, 30-pin) pinout diagram USB ESP32 DevKit (WROOM-32) EN: Reset (active LOW) EN Reset (active LOW) VP = GPIO36 (VP): ADC1. Watch out: INPUT-ONLY, no pull-ups VP ADC1 ⚠ VN = GPIO39 (VN): ADC1. Watch out: INPUT-ONLY, no pull-ups VN ADC1 ⚠ D34 = GPIO34: ADC1. Watch out: INPUT-ONLY, no pull-ups D34 ADC1 ⚠ D35 = GPIO35: ADC1. Watch out: INPUT-ONLY, no pull-ups D35 ADC1 ⚠ D32 = GPIO32: ADC1 · Touch D32 ADC1 · Touch D33 = GPIO33: ADC1 · Touch D33 ADC1 · Touch D25 = GPIO25: ADC2 · DAC1 D25 ADC2 · DAC1 D26 = GPIO26: ADC2 · DAC2 D26 ADC2 · DAC2 D27 = GPIO27: ADC2 · Touch D27 ADC2 · Touch D14 = GPIO14: ADC2 · Touch. Watch out: Outputs PWM briefly at boot D14 ADC2 · Touch ⚠ D12 = GPIO12: ADC2 · Touch. Watch out: Strapping pin — must be LOW at boot (flash voltage) D12 ADC2 · Touch ⚠ D13 = GPIO13: ADC2 · Touch D13 ADC2 · Touch GND: Ground GND Ground VIN = 5V/VIN: Power in/out 5V (USB) VIN Power in/out 5V (USB) D23 = GPIO23: VSPI MOSI D23 VSPI MOSI D22 = GPIO22: I2C SCL D22 I2C SCL TX0 (GPIO1) (not detailed in the catalog yet) TX0 (GPIO1) RX0 (GPIO3) (not detailed in the catalog yet) RX0 (GPIO3) D21 = GPIO21: I2C SDA D21 I2C SDA D19 = GPIO19: VSPI MISO D19 VSPI MISO D18 = GPIO18: VSPI SCK D18 VSPI SCK D5 = GPIO5: VSPI SS. Watch out: Strapping-adjacent: outputs PWM at boot on some boards D5 VSPI SS ⚠ TX2 = GPIO17: UART2 TX TX2 UART2 TX RX2 = GPIO16: UART2 RX RX2 UART2 RX D4 = GPIO4: ADC2 · Touch D4 ADC2 · Touch D2 = GPIO2: ADC2 · Built-in LED (many boards). Watch out: Strapping pin — keep floating/LOW at boot D2 ADC2 · Built-in LED (many boards) ⚠ D15 = GPIO15: ADC2 · Touch. Watch out: Strapping pin — silences boot log if LOW D15 ADC2 · Touch ⚠ GND: Ground GND Ground 3V3: Power out 3.3V 3V3 Power out 3.3V Power GND I2C SPI UART Analog PWM Digital Other / not in catalog yet ⚠ has a watch-out in the table below · hover a pin for details
Pin Capabilities Watch out GPIO0 Digital ADC2 Touch Strapping pin — boot mode; must be HIGH at boot
GPIO2 Digital ADC2 Built-in LED (many boards) Strapping pin — keep floating/LOW at boot
GPIO4 Digital ADC2 Touch
GPIO5 Digital VSPI SS Strapping-adjacent: outputs PWM at boot on some boards
GPIO12 Digital ADC2 Touch Strapping pin — must be LOW at boot (flash voltage)
GPIO13 Digital ADC2 Touch
GPIO14 Digital ADC2 Touch Outputs PWM briefly at boot
GPIO15 Digital ADC2 Touch Strapping pin — silences boot log if LOW
GPIO16 Digital UART2 RX
GPIO17 Digital UART2 TX
GPIO18 Digital VSPI SCK
GPIO19 Digital VSPI MISO
GPIO21 Digital I2C SDA
GPIO22 Digital I2C SCL
GPIO23 Digital VSPI MOSI
GPIO25 Digital ADC2 DAC1
GPIO26 Digital ADC2 DAC2
GPIO27 Digital ADC2 Touch
GPIO32 Digital ADC1 Touch
GPIO33 Digital ADC1 Touch
GPIO34 ADC1 INPUT-ONLY, no pull-ups
GPIO35 ADC1 INPUT-ONLY, no pull-ups
GPIO36 (VP) ADC1 INPUT-ONLY, no pull-ups
GPIO39 (VN) ADC1 INPUT-ONLY, no pull-ups
3V3 Power out 3.3V
5V/VIN Power in/out 5V (USB)
GND Ground
EN Reset (active LOW)
ESP32 DevKit (WROOM-32) gotchas & notes Strapping pins (GPIO0, 2, 12, 15) affect boot mode — avoid pulling them at power-up. GPIO34, 35, 36, 39 are INPUT-ONLY and have no internal pull-ups. ADC2 pins are unusable while WiFi is on — prefer ADC1 (GPIO32–39) for analog reads. Default I2C: SDA=21, SCL=22. Default VSPI: SCK=18, MISO=19, MOSI=23, SS=5. Almost any output-capable GPIO supports PWM (LEDC).
Get this pinout — plus 55+ sensor wiring diagrams, shield maps and maker calculators — offline on your phone.
Get it on Google Play
Other board pinouts