Espressif ESP32
ESP32 DevKit V1 Pinout
The ESP32 DevKit V1 is the most common 30-pin ESP32 dev board. It exposes 25 usable GPIOs across two rows, with built-in Wi-Fi, Bluetooth, ADC, DAC, touch, PWM, I2C, SPI, and UART. Below is the complete pinout with every pin's primary function and the gotchas that catch beginners.
Specifications
- MCU
- ESP32-WROOM-32 (Xtensa LX6 dual-core, 240 MHz)
- Flash
- 4 MB
- SRAM
- 520 KB
- GPIO
- 25 usable (of 39 total)
- ADC
- 18 channels, 12-bit
- Operating voltage
- 3.3V (5V tolerant on VIN only)
Pin reference
| Pin | Name | Type / functions | Notes |
|---|---|---|---|
| EN | Reset | Power | Pull LOW to reset the chip. |
| GPIO36 | VP / SENSOR_VP | Input only, ADC1_0 | Input only — cannot drive output. |
| GPIO39 | VN / SENSOR_VN | Input only, ADC1_3 | Input only. |
| GPIO34 | GPIO34 | Input only, ADC1_6 | No internal pull-up/down. |
| GPIO35 | GPIO35 | Input only, ADC1_7 | No internal pull-up/down. |
| GPIO32 | GPIO32 | Digital I/O, ADC1_4, Touch9 | — |
| GPIO33 | GPIO33 | Digital I/O, ADC1_5, Touch8 | — |
| GPIO25 | GPIO25 | Digital I/O, DAC1, ADC2_8 | — |
| GPIO26 | GPIO26 | Digital I/O, DAC2, ADC2_9 | — |
| GPIO27 | GPIO27 | Digital I/O, ADC2_7, Touch7 | — |
| GPIO14 | GPIO14 | Digital I/O, ADC2_6, Touch6, HSPI_CLK | Outputs PWM at boot. |
| GPIO12 | GPIO12 | Digital I/O, ADC2_5, Touch5, HSPI_MISO | Boot fails if pulled HIGH. |
| GND | Ground | Power | — |
| GPIO13 | GPIO13 | Digital I/O, ADC2_4, Touch4, HSPI_MOSI | — |
| GPIO9 | SD2 | Connected to flash | Do not use unless flash is in QIO mode. |
| GPIO10 | SD3 | Connected to flash | Do not use. |
| GPIO11 | CMD | Connected to flash | Do not use. |
| 5V / VIN | 5V input | Power | Feed 5V here when not using USB. |
| 3V3 | 3.3V output | Power | From onboard regulator, ~600 mA max. |
| GND | Ground | Power | — |
| GPIO15 | GPIO15 | Digital I/O, ADC2_3, Touch3, HSPI_CS0 | Outputs PWM at boot; pull LOW to silence. |
| GPIO2 | GPIO2 | Digital I/O, ADC2_2, Touch2, onboard LED | Must be floating or LOW during boot. |
| GPIO4 | GPIO4 | Digital I/O, ADC2_0, Touch0 | — |
| GPIO16 | RX2 | Digital I/O, UART2 RX | — |
| GPIO17 | TX2 | Digital I/O, UART2 TX | — |
| GPIO5 | GPIO5 | Digital I/O, VSPI_CS0 | Outputs PWM at boot. |
| GPIO18 | GPIO18 | Digital I/O, VSPI_CLK | — |
| GPIO19 | GPIO19 | Digital I/O, VSPI_MISO | — |
| GPIO21 | SDA | Digital I/O, default I2C SDA | — |
| GPIO3 | RX0 | UART0 RX | Used for USB serial — sharing breaks uploads. |
| GPIO1 | TX0 | UART0 TX | Used for USB serial. |
| GPIO22 | SCL | Digital I/O, default I2C SCL | — |
| GPIO23 | GPIO23 | Digital I/O, VSPI_MOSI | — |
Gotchas
- 01GPIO 6–11 are wired to the onboard SPI flash. Using them will brick uploads.
- 02GPIO 34, 35, 36, 39 are input-only and have no internal pull-up/pull-down.
- 03ADC2 pins (GPIO 0, 2, 4, 12–15, 25–27) cannot be read while Wi-Fi is active. Use ADC1 (GPIO 32–39) for analog reads if Wi-Fi is on.
- 04GPIO 12 must be LOW at boot, GPIO 0 must be HIGH (after boot button release), GPIO 2 must be floating or LOW.
Generate a wiring diagram
Describe your circuit and get a Mermaid diagram you can share.
Open diagram generator