The search for an 'ESP32 DevKit V1 pinout' usually hits a wall of conflicting diagrams because the market is flooded with two distinct boards sharing the same name: the original 38-pin Espressif ESP32-DevKitC-V1 and the ubiquitous 30-pin DOIT/generic clones. This reference assumes the 30-pin variant (15 pins per side), which accounts for over 90% of hobbyist and prototyping benches in 2026. If your board has 38 pins, you are holding a DevKitC, and the extra pins are primarily duplicates of GND and 3V3.
The table below is your bench-side master reference. Read the left column for the physical silk-screen label, the middle for the internal ESP32-WROOM-32 GPIO number, and the right for the hard electrical limits of that specific pad.
The Complete ESP32 DevKit V1 Pinout Reference Table
| Silk Screen Label | GPIO Number | Function, Limits & Practice Notes |
|---|---|---|
| 3V3 | N/A | 3.3V Regulated Output. Max draw ~800mA (depends on onboard AMS1117). Do not feed 5V into this pin. |
| EN | GPIO 0 (Chip EN) | Enable pin. Active HIGH. Pulled up internally. Pull to GND to reset the chip. |
| VP | GPIO 36 | ADC1_CH0, RTC. Input ONLY. No internal pull-up. High impedance. |
| VN | GPIO 39 | ADC1_CH3, RTC. Input ONLY. No internal pull-up. High impedance. |
| IO34 | GPIO 34 | ADC1_CH6. Input ONLY. No internal pull-up. |
| IO35 | GPIO 35 | ADC1_CH7. Input ONLY. No internal pull-up. |
| IO32 | GPIO 32 | ADC1_CH4, Touch9, XTAL. Safe for general I/O, PWM, and I2C. |
| IO33 | GPIO 33 | ADC1_CH5, Touch8. Safe for general I/O, PWM, and I2C. |
| IO25 | GPIO 25 | ADC2_CH8, DAC1. Safe for general I/O, PWM, and audio out. |
| IO26 | GPIO 26 | ADC2_CH9, DAC2. Safe for general I/O, PWM, and audio out. |
| IO27 | GPIO 27 | ADC2_CH7, Touch7. Safe for general I/O and PWM. |
| IO14 | GPIO 14 | ADC2_CH6, Touch6, MTMS. Emits PWM noise at boot. Safe post-boot. |
| IO12 | GPIO 12 | ADC2_CH5, Touch5, MTDI. Strapping Pin. Must be LOW at boot. |
| GND | N/A | Common Ground. Tied to the USB shield and module ground plane. |
| IO13 | GPIO 13 | ADC2_CH4, Touch4, MTCK. Safe for general I/O. |
| IO9 | GPIO 9 | Tied to internal SPI flash. Do not use. |
| IO10 | GPIO 10 | Tied to internal SPI flash. Do not use. |
| IO11 | GPIO 11 | Tied to internal SPI flash. Do not use. |
| VIN / 5V | N/A | 5V Input/Output. Connects to USB 5V and AMS1117 input. Max 5.5V. |
| GND | N/A | Common Ground. |
| IO6 | GPIO 6 | Tied to internal SPI flash. Do not use. |
| IO7 | GPIO 7 | Tied to internal SPI flash. Do not use. |
| IO8 | GPIO 8 | Tied to internal SPI flash. Do not use. |
| IO15 | GPIO 15 | ADC2_CH3, Touch3, MTDO. Strapping Pin. Emits debug noise at boot. |
| IO2 | GPIO 2 | ADC2_CH2, Touch2. Strapping Pin. Must be LOW or floating at boot. Tied to onboard LED. |
| IO4 | GPIO 4 | ADC2_CH0, Touch0. Safe for general I/O. |
| RX0 | GPIO 3 | U0RXD. Default Serial RX. Avoid if using Serial Monitor. |
| TX0 | GPIO 1 | U0TXD. Default Serial TX. Avoid if using Serial Monitor. |
| IO22 | GPIO 22 | Safe for general I/O. Default hardware I2C SCL. |
| IO21 | GPIO 21 | Safe for general I/O. Default hardware I2C SDA. |
Rows People Get Wrong (And How to Avoid Bricking Your Boot)
Beginners frequently wire peripherals to pins that look available on the silk screen but are internally hardwired to the ESP32-WROOM-32's SPI flash memory or act as boot-strapping pins. Here is where designs fail:
GPIO 12 (MTDI): This is a strapping pin that dictates the flash voltage regulator mode. If GPIO 12 is pulled HIGH during power-on or reset, the ESP32 assumes you are using 1.8V flash and will brownout or fail to boot on standard 3.3V modules. Rule: Never wire a sensor with an internal pull-up (like some DHT22 breakout boards) to GPIO 12.
GPIO 34, 35, 36 (VP), and 39 (VN): These are strictly input-only. They lack internal pull-up and pull-down resistors in silicon. If you wire a simple push-button to GPIO 34 without an external 10kΩ pull-down resistor, the pin will float, triggering phantom interrupts and erratic logic.
GPIO 2: Tied to the onboard blue LED. More importantly, it is a strapping pin that must be LOW (or floating) to enter UART download mode. If you tie it to a 3.3V relay driver, you will be unable to flash new code over USB without physically desoldering the relay connection.
External Wiring Standards: IEC vs NEC Color Codes
When your ESP32 project leaves the breadboard and enters a custom enclosure—especially when interfacing with external 24V industrial sensors, solid-state relays (SSRs), or AC mains via optocouplers—you must follow regional wire color standards for the external terminal blocks. Mixing low-voltage logic colors with high-voltage colors is a severe fire and shock hazard.
| Function | IEC 60446 (EU / UK / AU) | NEC / NFPA 70 (US / CA) |
|---|---|---|
| ESP32 GND (Logic 0V) | Light Blue (or Black for DC) | Black (or Blue for DC negative) |
| ESP32 3.3V / 5V (Logic VCC) | Brown (DC+) or Red | Red (DC+) or Orange |
| External 24V DC (Sensors/Relays) | Brown (+) / Blue (-) | Red (+) / Black (-) |
| AC Mains Line (to SSR input) | Brown | Black (or Red for 2nd phase) |
| AC Mains Neutral (to SSR input) | Blue | White (or Grey) |
| Earth Ground (Chassis/Shield) | Green/Yellow Stripe | Green (or Green/Yellow) |
Which standard applies to you? If you are building for a commercial enclosure in North America, follow NEC Article 310.12 and NFPA 79 for industrial control panels. If you are in Europe or the UK, IEC 60446 (now superseded by IEC 60445 but colloquially still referenced) dictates the brown/blue/green-yellow scheme. Never use Green or Green/Yellow for any logic-level signal or DC voltage return under any standard.
Peripheral Decision Tree: Pick Your Pins
Stop guessing which pins to use for your sensors. Use this decision matrix to select the optimal, conflict-free GPIO numbers for your next build. This path terminates in exact, tested pin assignments for the ESP32-WROOM-32 module.
| Peripheral Type | If you need... | Concrete Pin Pick (Default) | Alternative / Fallback |
|---|---|---|---|
| I2C (OLED, BME280, MPU6050) | SDA & SCL with hardware support | SDA: GPIO 21 SCL: GPIO 22 | GPIO 16 (SDA) / GPIO 17 (SCL) - requires software remapping in Wire library. |
| SPI (SD Card, TFT Display) | Hardware VSPI bus for max speed | MOSI: 23, MISO: 19 SCK: 18, CS: 5 | HSPI bus: MOSI 13, MISO 12, SCK 14, CS 15 (Avoid 12/15 if boot strapping is an issue). |
| Analog Sensors (Pot, LDR) | 12-bit ADC reading (0-4095) | GPIO 32, 33, 34, 35 | GPIO 36 (VP), 39 (VN). Avoid ADC2 (GPIO 4, 12-15, 25-27) if using WiFi. |
| PWM / LED Dimming | LEDC hardware PWM channels | GPIO 4, 16, 17, 18, 19, 21, 22, 23 | Almost any pin except 34-39 and 6-11. Avoid 2 (onboard LED). |
| UART (GPS, Nextion HMI) | Hardware UART1 or UART2 | UART1: TX 17, RX 16 UART2: TX 25, RX 26 | UART0 (TX 1, RX 3) is reserved for USB serial debugging. |
Faded Silk Screen? Safe Interpretation & Verification
Cheap clone boards from overseas marketplaces frequently suffer from misaligned, faded, or entirely missing silk screen labels. Guessing a pin's identity and wiring it to a 5V sensor can fry the ESP32-WROOM-32's 3.3V logic pads instantly. When the text is unreadable, use this physical verification protocol.
- Anchor to the USB Shield: Set your multimeter to continuity mode (beep). Place the black probe on the metal outer shell of the micro-USB or USB-C port. This is your guaranteed GND reference.
- Map the Ground Pins: Probe the pins on the headers. The ones that beep continuously against the USB shield are your GND pins. On a standard 30-pin board, these are typically the 6th pin from the top on the left side, and the 2nd pin from the top on the right side (near the VIN/5V pin).
- Trace the AMS1117 Regulator: Locate the small 3-legged SMD voltage regulator near the USB port. The output pad of this regulator traces directly to the 3V3 header pin. The input pad traces to the VIN/5V header pin.
- Count from the Boot Button: The 'BOOT' tactile switch is physically wired to GPIO 0. The 'EN' (Reset) switch is wired to the EN pin. These are usually clustered near the USB port and serve as reliable physical landmarks to count outward from.
For authoritative electrical characteristics, timing diagrams, and absolute maximum ratings (like the 12mA per pin limit), always cross-reference your physical board with the official Espressif ESP32 Datasheet and the ESP-IDF Hardware Reference. Never rely solely on third-party pinout graphics, as they frequently omit the strapping pin warnings that separate a successful boot from a bricked module.






