Robot Maker Toolkit › Pinouts › ESP32 DevKit (WROOM-32)

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 + BTLogic: 3.3 VPro in app

ESP32 DevKit (WROOM-32) pinout diagram

ESP32 DevKit (WROOM-32, 30-pin) pinout diagramUSBESP32 DevKit(WROOM-32)EN: Reset (active LOW)ENReset (active LOW)VP = GPIO36 (VP): ADC1. Watch out: INPUT-ONLY, no pull-upsVPADC1⚠VN = GPIO39 (VN): ADC1. Watch out: INPUT-ONLY, no pull-upsVNADC1⚠D34 = GPIO34: ADC1. Watch out: INPUT-ONLY, no pull-upsD34ADC1⚠D35 = GPIO35: ADC1. Watch out: INPUT-ONLY, no pull-upsD35ADC1⚠D32 = GPIO32: ADC1 · TouchD32ADC1 · TouchD33 = GPIO33: ADC1 · TouchD33ADC1 · TouchD25 = GPIO25: ADC2 · DAC1D25ADC2 · DAC1D26 = GPIO26: ADC2 · DAC2D26ADC2 · DAC2D27 = GPIO27: ADC2 · TouchD27ADC2 · TouchD14 = GPIO14: ADC2 · Touch. Watch out: Outputs PWM briefly at bootD14ADC2 · Touch⚠D12 = GPIO12: ADC2 · Touch. Watch out: Strapping pin — must be LOW at boot (flash voltage)D12ADC2 · Touch⚠D13 = GPIO13: ADC2 · TouchD13ADC2 · TouchGND: GroundGNDGroundVIN = 5V/VIN: Power in/out 5V (USB)VINPower in/out 5V (USB)D23 = GPIO23: VSPI MOSID23VSPI MOSID22 = GPIO22: I2C SCLD22I2C SCLTX0 (GPIO1) (not detailed in the catalog yet)TX0 (GPIO1)RX0 (GPIO3) (not detailed in the catalog yet)RX0 (GPIO3)D21 = GPIO21: I2C SDAD21I2C SDAD19 = GPIO19: VSPI MISOD19VSPI MISOD18 = GPIO18: VSPI SCKD18VSPI SCKD5 = GPIO5: VSPI SS. Watch out: Strapping-adjacent: outputs PWM at boot on some boardsD5VSPI SS⚠TX2 = GPIO17: UART2 TXTX2UART2 TXRX2 = GPIO16: UART2 RXRX2UART2 RXD4 = GPIO4: ADC2 · TouchD4ADC2 · TouchD2 = GPIO2: ADC2 · Built-in LED (many boards). Watch out: Strapping pin — keep floating/LOW at bootD2ADC2 · Built-in LED (many boards)⚠D15 = GPIO15: ADC2 · Touch. Watch out: Strapping pin — silences boot log if LOWD15ADC2 · Touch⚠GND: GroundGNDGround3V3: Power out 3.3V3V3Power out 3.3VPowerGNDI2CSPIUARTAnalogPWMDigitalOther / not in catalog yet⚠has a watch-out in the table below · hover a pin for details

30-pin DOIT DevKit V1 layout. GPIO0 is the BOOT button, not a header pin. Download SVG

PinCapabilitiesWatch out
GPIO0DigitalADC2Touch
Strapping pin — boot mode; must be HIGH at boot
GPIO2DigitalADC2Built-in LED (many boards)
Strapping pin — keep floating/LOW at boot
GPIO4DigitalADC2Touch
GPIO5DigitalVSPI SS
Strapping-adjacent: outputs PWM at boot on some boards
GPIO12DigitalADC2Touch
Strapping pin — must be LOW at boot (flash voltage)
GPIO13DigitalADC2Touch
GPIO14DigitalADC2Touch
Outputs PWM briefly at boot
GPIO15DigitalADC2Touch
Strapping pin — silences boot log if LOW
GPIO16DigitalUART2 RX
GPIO17DigitalUART2 TX
GPIO18DigitalVSPI SCK
GPIO19DigitalVSPI MISO
GPIO21DigitalI2C SDA
GPIO22DigitalI2C SCL
GPIO23DigitalVSPI MOSI
GPIO25DigitalADC2DAC1
GPIO26DigitalADC2DAC2
GPIO27DigitalADC2Touch
GPIO32DigitalADC1Touch
GPIO33DigitalADC1Touch
GPIO34ADC1
INPUT-ONLY, no pull-ups
GPIO35ADC1
INPUT-ONLY, no pull-ups
GPIO36 (VP)ADC1
INPUT-ONLY, no pull-ups
GPIO39 (VN)ADC1
INPUT-ONLY, no pull-ups
3V3Power out 3.3V
5V/VINPower in/out 5V (USB)
GNDGround
ENReset (active LOW)

ESP32 DevKit (WROOM-32) gotchas & notes

Get this pinout — plus 55+ sensor wiring diagrams, shield maps and maker calculators — offline on your phone.

Get it onGoogle Play

Other board pinouts

Arduino UNO R3Raspberry Pi PicoArduino UNO R4 WiFiArduino UNO QArduino NanoArduino Nano ESP32Arduino Mega 2560Arduino LeonardoESP8266 NodeMCU