Tools

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

FunctionPins
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
TouchGPIO 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 pinsGPIO 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 driveGPIO 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