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).
| Pin | Capabilities | Watch out |
|---|---|---|
| GPIO0 | DigitalADC2Touch | Strapping pin — boot mode; must be HIGH at boot |
| GPIO2 | DigitalADC2Built-in LED (many boards) | Strapping pin — keep floating/LOW at boot |
| GPIO4 | DigitalADC2Touch | |
| GPIO5 | DigitalVSPI SS | Strapping-adjacent: outputs PWM at boot on some boards |
| GPIO12 | DigitalADC2Touch | Strapping pin — must be LOW at boot (flash voltage) |
| GPIO13 | DigitalADC2Touch | |
| GPIO14 | DigitalADC2Touch | Outputs PWM briefly at boot |
| GPIO15 | DigitalADC2Touch | Strapping pin — silences boot log if LOW |
| GPIO16 | DigitalUART2 RX | |
| GPIO17 | DigitalUART2 TX | |
| GPIO18 | DigitalVSPI SCK | |
| GPIO19 | DigitalVSPI MISO | |
| GPIO21 | DigitalI2C SDA | |
| GPIO22 | DigitalI2C SCL | |
| GPIO23 | DigitalVSPI MOSI | |
| GPIO25 | DigitalADC2DAC1 | |
| GPIO26 | DigitalADC2DAC2 | |
| GPIO27 | DigitalADC2Touch | |
| GPIO32 | DigitalADC1Touch | |
| GPIO33 | DigitalADC1Touch | |
| 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) |
Get this pinout — plus 55+ sensor wiring diagrams, shield maps and maker calculators — offline on your phone.
Get it onGoogle Play