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 LabelGPIO NumberFunction, Limits & Practice Notes
3V3N/A3.3V Regulated Output. Max draw ~800mA (depends on onboard AMS1117). Do not feed 5V into this pin.
ENGPIO 0 (Chip EN)Enable pin. Active HIGH. Pulled up internally. Pull to GND to reset the chip.
VPGPIO 36ADC1_CH0, RTC. Input ONLY. No internal pull-up. High impedance.
VNGPIO 39ADC1_CH3, RTC. Input ONLY. No internal pull-up. High impedance.
IO34GPIO 34ADC1_CH6. Input ONLY. No internal pull-up.
IO35GPIO 35ADC1_CH7. Input ONLY. No internal pull-up.
IO32GPIO 32ADC1_CH4, Touch9, XTAL. Safe for general I/O, PWM, and I2C.
IO33GPIO 33ADC1_CH5, Touch8. Safe for general I/O, PWM, and I2C.
IO25GPIO 25ADC2_CH8, DAC1. Safe for general I/O, PWM, and audio out.
IO26GPIO 26ADC2_CH9, DAC2. Safe for general I/O, PWM, and audio out.
IO27GPIO 27ADC2_CH7, Touch7. Safe for general I/O and PWM.
IO14GPIO 14ADC2_CH6, Touch6, MTMS. Emits PWM noise at boot. Safe post-boot.
IO12GPIO 12ADC2_CH5, Touch5, MTDI. Strapping Pin. Must be LOW at boot.
GNDN/ACommon Ground. Tied to the USB shield and module ground plane.
IO13GPIO 13ADC2_CH4, Touch4, MTCK. Safe for general I/O.
IO9GPIO 9Tied to internal SPI flash. Do not use.
IO10GPIO 10Tied to internal SPI flash. Do not use.
IO11GPIO 11Tied to internal SPI flash. Do not use.
VIN / 5VN/A5V Input/Output. Connects to USB 5V and AMS1117 input. Max 5.5V.
GNDN/ACommon Ground.
IO6GPIO 6Tied to internal SPI flash. Do not use.
IO7GPIO 7Tied to internal SPI flash. Do not use.
IO8GPIO 8Tied to internal SPI flash. Do not use.
IO15GPIO 15ADC2_CH3, Touch3, MTDO. Strapping Pin. Emits debug noise at boot.
IO2GPIO 2ADC2_CH2, Touch2. Strapping Pin. Must be LOW or floating at boot. Tied to onboard LED.
IO4GPIO 4ADC2_CH0, Touch0. Safe for general I/O.
RX0GPIO 3U0RXD. Default Serial RX. Avoid if using Serial Monitor.
TX0GPIO 1U0TXD. Default Serial TX. Avoid if using Serial Monitor.
IO22GPIO 22Safe for general I/O. Default hardware I2C SCL.
IO21GPIO 21Safe 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 6, 7, 8, 9, 10, and 11: These are physically broken out on some 38-pin boards and occasionally routed on 30-pin clones. They are permanently connected to the internal SPI flash chip. Driving these pins high or low will corrupt your firmware or instantly brick the module.

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.

FunctionIEC 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 RedRed (DC+) or Orange
External 24V DC (Sensors/Relays)Brown (+) / Blue (-)Red (+) / Black (-)
AC Mains Line (to SSR input)BrownBlack (or Red for 2nd phase)
AC Mains Neutral (to SSR input)BlueWhite (or Grey)
Earth Ground (Chassis/Shield)Green/Yellow StripeGreen (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 TypeIf you need...Concrete Pin Pick (Default)Alternative / Fallback
I2C (OLED, BME280, MPU6050)SDA & SCL with hardware supportSDA: 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 speedMOSI: 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, 35GPIO 36 (VP), 39 (VN). Avoid ADC2 (GPIO 4, 12-15, 25-27) if using WiFi.
PWM / LED DimmingLEDC hardware PWM channelsGPIO 4, 16, 17, 18, 19, 21, 22, 23Almost any pin except 34-39 and 6-11. Avoid 2 (onboard LED).
UART (GPS, Nextion HMI)Hardware UART1 or UART2UART1: TX 17, RX 16
UART2: TX 25, RX 26
UART0 (TX 1, RX 3) is reserved for USB serial debugging.
The WiFi / ADC2 Conflict: The ESP32's WiFi driver monopolizes the ADC2 peripheral. If your project uses WiFi (or BLE in some configurations), ADC2 pins (GPIO 4, 12, 13, 14, 15, 25, 26, 27) will return garbage analog readings. Always default to ADC1 pins (GPIO 32-39) for analog sensors on IoT nodes.

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.

  1. 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.
  2. 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).
  3. 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.
  4. 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.