Espressif's classic ESP32 integrates dual 240 MHz 32-bit Xtensa LX6 cores, an ultra-low-power coprocessor, 520 KB SRAM, 448 KB ROM, 2.4 GHz Wi-Fi 4, and dual-mode Bluetooth (Classic BR/EDR + BLE 4.2) in a 5×5 mm (or 6×6 mm) QFN-48 package. Thirty-four GPIOs (GPIO0–19, 21–23, 25–27, 32–39) support flexible GPIO Matrix routing for 3× UART, HSPI/VSPI, 2× I2C, 2× I2S, TWAI (CAN 2.0B), 16-channel LEDC, and 2× MCPWM units, plus 18× 12-bit SAR ADC inputs, 2× 8-bit DAC outputs (GPIO25/26), and 10 capacitive touch inputs. Note that GPIO34–GPIO39 are strictly input-only without internal pull resistors, ADC2 conflicts with Wi-Fi, and GPIO12 selects 3.3 V vs 1.8 V flash power at reset.

ESP32 D0WD-V3 1 VDDA VDDA VDDA 2 LNA_IN ! LNA_IN LNA_IN 3 VDD3P3 VDD3P3 VDD3P3 4 VDD3P3 VDD3P3 VDD3P3 5 SENSOR_VP ! GPIO36 ADC1_CH0 GPIO36 ADC1_CH0 6 SENSOR_CAPP ! GPIO37 ADC1_CH1 GPIO37 ADC1_CH1 7 SENSOR_CAPN ! GPIO38 ADC1_CH2 GPIO38 ADC1_CH2 8 SENSOR_VN ! GPIO39 ADC1_CH3 GPIO39 ADC1_CH3 9 CHIP_PU ! CHIP_PU CHIP_PU 10 VDET_1 ! GPIO34 ADC1_CH6 GPIO34 ADC1_CH6 11 VDET_2 ! GPIO35 ADC1_CH7 GPIO35 ADC1_CH7 12 32K_XP GPIO32 ADC1_CH4 System Clock +2 GPIO32 ADC1_CH4 TOUCH9 XTAL_32K_P 13 32K_XN GPIO33 ADC1_CH5 System Clock +2 GPIO33 ADC1_CH5 TOUCH8 XTAL_32K_N 14 GPIO25 ! GPIO25 ADC2_CH8 DAC_1 GPIO25 ADC2_CH8 DAC_1 15 GPIO26 ! GPIO26 ADC2_CH9 DAC_2 GPIO26 ADC2_CH9 DAC_2 16 GPIO27 ! GPIO27 ADC2_CH7 TOUCH7 GPIO27 ADC2_CH7 TOUCH7 17 MTMS ! GPIO14 HSPICLK ADC System Debug +3 GPIO14 ADC2_CH6 TOUCH6 HSPICLK MTMS 18 MTDI ! GPIO12 HSPIQ ADC System Debug +3 GPIO12 ADC2_CH5 TOUCH5 HSPIQ MTDI 19 VDD3P3_RTC VDD3P3_RTC VDD3P3_RTC 20 MTCK ! GPIO13 HSPID ADC System Debug +3 GPIO13 ADC2_CH4 TOUCH4 HSPID MTCK 21 MTDO ! GPIO15 HSPICS0 ADC System Debug +3 GPIO15 ADC2_CH3 TOUCH3 HSPICS0 MTDO 22 GPIO2 ! GPIO2 ADC2_CH2 TOUCH2 GPIO2 ADC2_CH2 TOUCH2 23 GPIO0 ! GPIO0 ADC2_CH1 TOUCH1 GPIO0 ADC2_CH1 TOUCH1 24 GPIO4 ! GPIO4 ADC2_CH0 TOUCH0 GPIO4 ADC2_CH0 TOUCH0 25 GPIO16 GPIO16 U2RXD GPIO16 U2RXD 26 VDD_SDIO ! VDD_SDIO VDD_SDIO 27 GPIO17 GPIO17 U2TXD GPIO17 U2TXD 28 SD_DATA_2 ! GPIO9 SPIHD GPIO9 SPIHD 29 SD_DATA_3 ! GPIO10 SPIWP GPIO10 SPIWP 30 SD_CMD ! GPIO11 SPICS0 GPIO11 SPICS0 31 SD_CLK ! GPIO6 SPICLK GPIO6 SPICLK 32 SD_DATA_0 ! GPIO7 SPIQ GPIO7 SPIQ 33 SD_DATA_1 ! GPIO8 SPID GPIO8 SPID 34 GPIO5 ! GPIO5 VSPICS0 GPIO5 VSPICS0 35 GPIO18 GPIO18 VSPICLK GPIO18 VSPICLK 36 GPIO23 GPIO23 VSPID GPIO23 VSPID 37 VDD3P3_CPU VDD3P3_CPU VDD3P3_CPU 38 GPIO19 GPIO19 VSPIQ U0CTS GPIO19 VSPIQ U0CTS 39 GPIO22 GPIO22 I2C0_SCL U0RTS GPIO22 I2C0_SCL U0RTS 40 U0RXD ! GPIO3 U0RXD GPIO3 U0RXD 41 U0TXD ! GPIO1 U0TXD GPIO1 U0TXD 42 GPIO21 GPIO21 I2C0_SDA GPIO21 I2C0_SDA 43 VDDA VDDA VDDA 44 XTAL_N ! XTAL_N XTAL_N 45 XTAL_P ! XTAL_P XTAL_P 46 VDDA VDDA VDDA 47 CAP2 ! CAP2 CAP2 48 CAP1 ! CAP1 CAP1 49 GND GND GND

Pin Assignment Planner

Add the peripherals you need and plan the pin assignments

Full Pin Reference (49 Pins)

Pin # Label Type Functions Warnings & Notes
1 VDDA power VDDA
Analog, RF, and PLL power supply (2.3V–3.6V, 3.3V nominal)
2 LNA_IN special LNA_IN
[INFO] 2.4 GHz RF LNA antenna input/output
Dedicated 2.4 GHz RF port for Wi-Fi 4 and Classic BT / BLE. Requires an external impedance-matching network.
2.4 GHz RF low-noise amplifier input/output
3 VDD3P3 power VDD3P3
Analog PA power supply (2.3V–3.6V, 3.3V nominal)
4 VDD3P3 power VDD3P3
Analog PA power supply (2.3V–3.6V, 3.3V nominal)
5 SENSOR_VP GPIO36 mixed GPIO36 ADC1_CH0
[CAUTION] Input-only pin — NO output driver and NO internal pull-up/pull-down resistors
GPIO36 (RTC/ADC1 domain) can only be used as a digital or analog input. Provide an external pull-up or pull-down resistor if driven by an open-drain or mechanical switch.
Input-only RTC/ADC1 GPIO36 (no output driver, no internal pull resistors, 3.3V max)
6 SENSOR_CAPP GPIO37 mixed GPIO37 ADC1_CH1
[CAUTION] Input-only pin — NO output driver and NO internal pull-up/pull-down resistors
GPIO37 (RTC/ADC1 domain) can only be used as a digital or analog input. Provide an external pull-up or pull-down resistor if driven by an open-drain or mechanical switch.
Input-only RTC/ADC1 GPIO37 (no output driver, no internal pull resistors, 3.3V max)
7 SENSOR_CAPN GPIO38 mixed GPIO38 ADC1_CH2
[CAUTION] Input-only pin — NO output driver and NO internal pull-up/pull-down resistors
GPIO38 (RTC/ADC1 domain) can only be used as a digital or analog input. Provide an external pull-up or pull-down resistor if driven by an open-drain or mechanical switch.
Input-only RTC/ADC1 GPIO38 (no output driver, no internal pull resistors, 3.3V max)
8 SENSOR_VN GPIO39 mixed GPIO39 ADC1_CH3
[CAUTION] Input-only pin — NO output driver and NO internal pull-up/pull-down resistors
GPIO39 (RTC/ADC1 domain) can only be used as a digital or analog input. Provide an external pull-up or pull-down resistor if driven by an open-drain or mechanical switch.
Input-only RTC/ADC1 GPIO39 (no output driver, no internal pull resistors, 3.3V max)
9 CHIP_PU reset CHIP_PU
[CAUTION] Active-HIGH chip enable / reset — never leave floating
High enables ESP32; Low powers off the chip. Connect an external 10 kΩ pull-up to 3.3V and 1 µF delay capacitor to GND.
Active-HIGH chip enable / reset input (EN / CHIP_PU)
10 VDET_1 GPIO34 mixed GPIO34 ADC1_CH6
[CAUTION] Input-only pin — NO output driver and NO internal pull-up/pull-down resistors
GPIO34 (RTC/ADC1 domain) can only be used as a digital or analog input. Provide an external pull-up or pull-down resistor if driven by an open-drain or mechanical switch.
Input-only RTC/ADC1 GPIO34 (no output driver, no internal pull resistors, 3.3V max)
11 VDET_2 GPIO35 mixed GPIO35 ADC1_CH7
[CAUTION] Input-only pin — NO output driver and NO internal pull-up/pull-down resistors
GPIO35 (RTC/ADC1 domain) can only be used as a digital or analog input. Provide an external pull-up or pull-down resistor if driven by an open-drain or mechanical switch.
Input-only RTC/ADC1 GPIO35 (no output driver, no internal pull resistors, 3.3V max)
12 32K_XP GPIO32 mixed GPIO32 ADC1_CH4 TOUCH9 XTAL_32K_P
General-purpose 3.3V GPIO32 (NOT 5V tolerant)
13 32K_XN GPIO33 mixed GPIO33 ADC1_CH5 TOUCH8 XTAL_32K_N
General-purpose 3.3V GPIO33 (NOT 5V tolerant)
14 GPIO25 mixed GPIO25 ADC2_CH8 DAC_1
[CAUTION] ADC2 channel unavailable while Wi-Fi radio is active
The Wi-Fi transceiver shares the SAR ADC2 controller. Use ADC1 (GPIO32–GPIO39) whenever Wi-Fi and analog reads run concurrently.
General-purpose 3.3V GPIO25 (NOT 5V tolerant)
15 GPIO26 mixed GPIO26 ADC2_CH9 DAC_2
[CAUTION] ADC2 channel unavailable while Wi-Fi radio is active
The Wi-Fi transceiver shares the SAR ADC2 controller. Use ADC1 (GPIO32–GPIO39) whenever Wi-Fi and analog reads run concurrently.
General-purpose 3.3V GPIO26 (NOT 5V tolerant)
16 GPIO27 mixed GPIO27 ADC2_CH7 TOUCH7
[CAUTION] ADC2 channel unavailable while Wi-Fi radio is active
The Wi-Fi transceiver shares the SAR ADC2 controller. Use ADC1 (GPIO32–GPIO39) whenever Wi-Fi and analog reads run concurrently.
General-purpose 3.3V GPIO27 (NOT 5V tolerant)
17 MTMS GPIO14 mixed GPIO14 ADC2_CH6 TOUCH6 HSPICLK MTMS
[CAUTION] ADC2 channel unavailable while Wi-Fi radio is active
The Wi-Fi transceiver shares the SAR ADC2 controller. Use ADC1 (GPIO32–GPIO39) whenever Wi-Fi and analog reads run concurrently.
General-purpose 3.3V GPIO14 (NOT 5V tolerant)
18 MTDI GPIO12 mixed GPIO12 ADC2_CH5 TOUCH5 HSPIQ MTDI
[CAUTION] ADC2 channel unavailable while Wi-Fi radio is active
The Wi-Fi transceiver shares the SAR ADC2 controller. Use ADC1 (GPIO32–GPIO39) whenever Wi-Fi and analog reads run concurrently.
[DANGER] VDD_SDIO flash voltage strap (weak pull-down: LOW=3.3V, HIGH=1.8V — boot failure risk!)
Pulling GPIO12 (MTDI) HIGH during reset switches internal flash power VDD_SDIO to 1.8V, causing boot brownout/loops on 3.3V flash modules (WROOM-32E, WROVER-E) unless overridden via eFuse.
General-purpose 3.3V GPIO12 (NOT 5V tolerant)
19 VDD3P3_RTC power VDD3P3_RTC
RTC and low-power analog/I/O domain power supply (2.3V–3.6V)
20 MTCK GPIO13 mixed GPIO13 ADC2_CH4 TOUCH4 HSPID MTCK
[CAUTION] ADC2 channel unavailable while Wi-Fi radio is active
The Wi-Fi transceiver shares the SAR ADC2 controller. Use ADC1 (GPIO32–GPIO39) whenever Wi-Fi and analog reads run concurrently.
General-purpose 3.3V GPIO13 (NOT 5V tolerant)
21 MTDO GPIO15 mixed GPIO15 ADC2_CH3 TOUCH3 HSPICS0 MTDO
[CAUTION] ADC2 channel unavailable while Wi-Fi radio is active
The Wi-Fi transceiver shares the SAR ADC2 controller. Use ADC1 (GPIO32–GPIO39) whenever Wi-Fi and analog reads run concurrently.
[INFO] ROM boot log strapping pin (weak pull-up: HIGH=U0TXD boot log enabled, LOW=silent)
Controls early ROM bootloader messages on U0TXD (GPIO1) during reset.
General-purpose 3.3V GPIO15 (NOT 5V tolerant)
22 GPIO2 mixed GPIO2 ADC2_CH2 TOUCH2
[CAUTION] ADC2 channel unavailable while Wi-Fi radio is active
The Wi-Fi transceiver shares the SAR ADC2 controller. Use ADC1 (GPIO32–GPIO39) whenever Wi-Fi and analog reads run concurrently.
[CAUTION] Download boot strapping pin (weak pull-down: must be LOW or floating to flash)
Must be LOW or left floating when GPIO0 is pulled LOW to enter UART Download Boot.
General-purpose 3.3V GPIO2 (NOT 5V tolerant)
23 GPIO0 mixed GPIO0 ADC2_CH1 TOUCH1
[CAUTION] ADC2 channel unavailable while Wi-Fi radio is active
The Wi-Fi transceiver shares the SAR ADC2 controller. Use ADC1 (GPIO32–GPIO39) whenever Wi-Fi and analog reads run concurrently.
[CAUTION] Boot mode strapping pin (weak pull-up: HIGH=SPI Flash Boot, LOW=Download Boot)
Sampled at reset. Holding GPIO0 LOW with GPIO2 LOW enters UART0 Download Boot.
General-purpose 3.3V GPIO0 (NOT 5V tolerant)
24 GPIO4 mixed GPIO4 ADC2_CH0 TOUCH0
[CAUTION] ADC2 channel unavailable while Wi-Fi radio is active
The Wi-Fi transceiver shares the SAR ADC2 controller. Use ADC1 (GPIO32–GPIO39) whenever Wi-Fi and analog reads run concurrently.
General-purpose 3.3V GPIO4 (NOT 5V tolerant)
25 GPIO16 digital GPIO16 U2RXD
General-purpose 3.3V GPIO16 (NOT 5V tolerant)
26 VDD_SDIO power VDD_SDIO
[CAUTION] SPI flash LDO output (1.8V or 3.3V controlled by GPIO12 MTDI strap)
Outputs 3.3V (via internal switch from VDD3P3_RTC) when GPIO12=LOW at boot, or 1.8V (internal LDO) when GPIO12=HIGH.
Configurable 1.8V / 3.3V power output for external SPI flash/PSRAM
27 GPIO17 digital GPIO17 U2TXD
General-purpose 3.3V GPIO17 (NOT 5V tolerant)
28 SD_DATA_2 GPIO9 digital GPIO9 SPIHD
[DANGER] Connected to external Quad SPI Flash (SPIHD/SPIWP) on standard QIO/QOUT designs
Occupied by external Quad SPI flash WP#/HOLD# lines unless flash is configured solely in DIO/DOUT mode.
General-purpose 3.3V GPIO9 (NOT 5V tolerant)
29 SD_DATA_3 GPIO10 digital GPIO10 SPIWP
[DANGER] Connected to external Quad SPI Flash (SPIHD/SPIWP) on standard QIO/QOUT designs
Occupied by external Quad SPI flash WP#/HOLD# lines unless flash is configured solely in DIO/DOUT mode.
General-purpose 3.3V GPIO10 (NOT 5V tolerant)
30 SD_CMD GPIO11 digital GPIO11 SPICS0
[DANGER] Dedicated SPI0/1 XIP Flash bus — do not use for general I/O
Connected to the primary SPI boot flash memory. Driving or loading this pin crashes XIP instruction fetches.
General-purpose 3.3V GPIO11 (NOT 5V tolerant)
31 SD_CLK GPIO6 digital GPIO6 SPICLK
[DANGER] Dedicated SPI0/1 XIP Flash bus — do not use for general I/O
Connected to the primary SPI boot flash memory. Driving or loading this pin crashes XIP instruction fetches.
General-purpose 3.3V GPIO6 (NOT 5V tolerant)
32 SD_DATA_0 GPIO7 digital GPIO7 SPIQ
[DANGER] Dedicated SPI0/1 XIP Flash bus — do not use for general I/O
Connected to the primary SPI boot flash memory. Driving or loading this pin crashes XIP instruction fetches.
General-purpose 3.3V GPIO7 (NOT 5V tolerant)
33 SD_DATA_1 GPIO8 digital GPIO8 SPID
[DANGER] Dedicated SPI0/1 XIP Flash bus — do not use for general I/O
Connected to the primary SPI boot flash memory. Driving or loading this pin crashes XIP instruction fetches.
General-purpose 3.3V GPIO8 (NOT 5V tolerant)
34 GPIO5 digital GPIO5 VSPICS0
[INFO] SDIO Slave timing strapping pin (internal weak pull-up)
Sampled at reset only if SDIO Slave mode is used; safe for normal general-purpose output.
General-purpose 3.3V GPIO5 (NOT 5V tolerant)
35 GPIO18 digital GPIO18 VSPICLK
General-purpose 3.3V GPIO18 (NOT 5V tolerant)
36 GPIO23 digital GPIO23 VSPID
General-purpose 3.3V GPIO23 (NOT 5V tolerant)
37 VDD3P3_CPU power VDD3P3_CPU
CPU and digital I/O domain power supply (1.8V–3.6V, 3.3V nominal)
38 GPIO19 digital GPIO19 VSPIQ U0CTS
General-purpose 3.3V GPIO19 (NOT 5V tolerant)
39 GPIO22 digital GPIO22 I2C0_SCL U0RTS
General-purpose 3.3V GPIO22 (NOT 5V tolerant)
40 U0RXD GPIO3 digital GPIO3 U0RXD
[INFO] Default UART0 console & bootloader RX pin
Outputs/receives ROM bootloader traffic at reset unless silenced via GPIO15.
General-purpose 3.3V GPIO3 (NOT 5V tolerant)
41 U0TXD GPIO1 digital GPIO1 U0TXD
[INFO] Default UART0 console & bootloader TX pin
Outputs/receives ROM bootloader traffic at reset unless silenced via GPIO15.
General-purpose 3.3V GPIO1 (NOT 5V tolerant)
42 GPIO21 digital GPIO21 I2C0_SDA
General-purpose 3.3V GPIO21 (NOT 5V tolerant)
43 VDDA power VDDA
Analog, RF, and PLL power supply (2.3V–3.6V, 3.3V nominal)
44 XTAL_N clock XTAL_N
[INFO] 40 MHz RF reference crystal negative terminal
Dedicated 40 MHz ±10 ppm reference crystal oscillator pin.
External 40 MHz crystal oscillator negative pin
45 XTAL_P clock XTAL_P
[INFO] 40 MHz RF reference crystal positive terminal
Dedicated 40 MHz ±10 ppm reference crystal oscillator pin.
External 40 MHz crystal oscillator positive pin
46 VDDA power VDDA
Analog, RF, and PLL power supply (2.3V–3.6V, 3.3V nominal)
47 CAP2 special CAP2
[INFO] Internal PLL filter capacitor network node 2
Connect per Espressif reference schematic RC network between CAP1, CAP2, and GND.
Analog PLL loop filter capacitor pin 2
48 CAP1 special CAP1
[INFO] Internal PLL filter capacitor network node 1
Connect per Espressif reference schematic RC network between CAP1, CAP2, and GND.
Analog PLL loop filter capacitor pin 1
49 GND ground GND
Exposed central thermal and RF ground pad (0V)