ESP32 DevKit V1 Pinout (38-pin)
The 38-pin ESP32 DevKit V1 (WROOM) pinout, with a deep link for every pin so you can point a forum answer at exactly the right one, the ADC, touch and PWM capabilities, and the strapping and safe-GPIO warnings the datasheet buries.
Safe pinsStrapping warningsPin referenceFAQ
Three rules before you wire anything.
1. Never use GPIO 6–11. They connect the ESP32 to its flash chip, and using them crashes the board.
2. Strapping pins (0, 2, 5, 12, 15) are read at reset: they set the boot mode and flash voltage. External pulls on these can stop the board booting.
3. GPIO 12 pulled high at boot means 3.3V flash modules may not start. Leave it floating unless you know your flash voltage.
Safe general-purpose pins: GPIO 4, 16, 17, 18, 19, 21, 22, 23, 25, 26, 27, 32, 33.
Need analog with WiFi on? Use ADC1 (GPIO 32–39); ADC2 conflicts with WiFi.
Pin reference
3V3LeftPower
3.3V regulated output from the AMS1117. Power small sensors with it; never back-feed it.
ENLeftStrapping
Chip enable / reset. Floating means running. Pull low to reset; a 10kΩ pull-up and a button to GND is the classic reset circuit.
VP / GPIO36LeftADCInput-only
Input-only. ADC1_CH0 (SVP). No internal pull resistors. Great for battery sensing.
VN / GPIO39LeftADCInput-onlyTouch
Input-only. ADC1_CH3 (SVN). Touch channel 9.
GPIO34LeftADCInput-only
Input-only. ADC1_CH6. No internal pulls.
GPIO35LeftADCInput-only
Input-only. ADC1_CH7. No internal pulls.
GPIO32LeftADCTouchPWM
ADC1_CH4, touch 9. Safe everyday pin.
GPIO33LeftADCTouchPWM
ADC1_CH5, touch 8. Safe everyday pin.
GPIO25LeftADCPWMDAC
DAC1. Safe. Often used for audio-out PWM.
GPIO26LeftADCPWMDAC
DAC2. Safe.
GPIO27LeftADCTouchPWM
Touch 7. Safe.
GPIO14LeftPWMTouchStrapping
MTMS, strapping-adjacent (JTAG). Touch 6. Safe in practice for outputs.
GPIO12LeftADCTouchStrappingFlash ⛔
⚠ MTDI: sets the flash voltage at boot. Pulled high, 3.3V flash modules may not start. Avoid unless certain.
GPIO13LeftADCTouchPWM
MTCK. Touch 4. Safe.
GNDLeftPower
Ground (two pins on this board; use both for tidy wiring).
VINLeftPower
5V input (USB voltage). Powers the regulator. 4.5–5.5V typical.
GPIO23RightPWM
VSPI MOSI. Safe everyday pin.
GPIO22RightPWM
I²C SCL default. Safe everyday pin.
TX / GPIO1RightUART
UART0 TX. Free after boot and fine for general use, but bootloader logs use it.
RX / GPIO3RightUART
UART0 RX. Same caveat as TX.
GPIO21RightPWM
I²C SDA default. Safe everyday pin.
GNDRightPower
Ground.
GPIO19RightPWM
VSPI MISO. Safe everyday pin.
GPIO18RightPWM
VSPI SCK. Safe everyday pin.
GPIO5RightPWMStrapping
VSPI SS. Strapping pin (must be HIGH at boot for a normal flash boot). Fine as a chip select.
GPIO17RightPWM
HSPI CLK. Safe everyday pin.
GPIO16RightPWM
HSPI CS, often PSRAM CS on WROVER. Safe on WROOM boards.
GPIO4RightADCTouchPWM
ADC2_CH0, touch 0. Safe everyday pin.
GPIO0RightADCTouchStrapping
⚠ Boot-mode strapping: LOW at reset means download mode. LEDs here will blink during boot.
GPIO2RightADCTouchStrapping
⚠ Must be floating or LOW at reset to boot. Often the on-board LED.
GPIO15RightADCTouchStrapping
⚠ MTDO strapping (boot log). LOW at reset silences boot messages but can block boot.
SD2 / GPIO9RightFlash ⛔
⛔ Flash. Never wire.
SD3 / GPIO10RightFlash ⛔
⛔ Flash. Never wire.
CMD / GPIO11RightFlash ⛔
⛔ Flash. Never wire.
5VRightPower
Tied to the VIN / USB 5V rail.
GNDRightPower
Ground.
CLK / GPIO6RightFlash ⛔
⛔ Flash. Never wire.
SD0 / GPIO7RightFlash ⛔
⛔ Flash. Never wire.
SD1 / GPIO8RightFlash ⛔
⛔ Flash. Never wire.
Quick matrices
| Function | Pins |
|---|---|
| ADC1 (WiFi-safe) | GPIO 32 (VP), 33 (VN), 34, 35, 36 (SVP), 39 (SVN) |
| ADC2 (conflicts with WiFi) | GPIO 0, 2, 4, 12, 13, 14, 15, 25, 26, 27 |
| Touch | GPIO 4, 0, 2, 15, 13, 12, 14, 27, 33, 32 |
| PWM (LEDC, all outputs) | GPIO 0–23, 25–27, 32–33 (not 34–39: input-only) |
| Input-only pins | GPIO 34, 35, 36, 39 (no pull-ups, no output) |
| I²C defaults (Wire) | SDA = GPIO 21, SCL = GPIO 22 (any output pin can be remapped) |
| Hardware SPI (VSPI) | SCK = 18, MISO = 19, MOSI = 23, SS = 5 |
| UART0 (USB serial) | TX = GPIO 1, RX = GPIO 3 |
| Output drive | GPIO 34–39 are input-only; all others drive up to about 12mA safely |
FAQ
Which pins are safe at boot?
GPIO 0, 2, 5, 12, 15 are strapping pins read during reset. GPIO 6–11 belong to the flash. The safe everyday set: 4, 16, 17, 18, 19, 21, 22, 23, 25, 26, 27, 32, 33.
Why does ADC2 stop working with WiFi?
The WiFi radio shares the ADC2 SAR. Use ADC1 (GPIO 32–39) for analog reads on connected projects.
Can GPIO 34–39 use internal pull-ups?
No. The input-only pins lack internal pull resistors. Add external ones (10kΩ typical).
Data follows the Espressif ESP32 datasheet. Always confirm against your board's schematic. Found a mistake? Reply to any issue and it gets fixed.
A free tool from TinkerNews, the free weekly email of DIY electronics builds — ESP32, Arduino, Raspberry Pi and more.
More tools: LED resistor calculator · Voltage divider calculator · ESP32-C3 SuperMini pinout · Resistor color code · IoT battery life calculator · WS2812B power calculator · Voltage drop and wire gauge · all tools