In-Package 4 MB Flash (ESP32-U4WDH)
QSPI
Chip Pad: GPIO16
Bonded internally to GPIO6/7/8/11 and GPIO16/17 (IO9 and IO10 remain free!)
Internal 3.3V flash inside ESP32-U4WDH.
Built around the single-core/dual-core ESP32-U4WDH SiP with 4 MB in-package flash, ESP32-MINI-1 (13.2×19.0 mm PCB antenna) and ESP32-MINI-1U (13.2×13.5 mm U.FL) deliver classic ESP32 Wi-Fi 4 + Classic BT / BLE 4.2 in a 55-pad 0.8 mm LGA package. Because U4WDH bonds internal flash to GPIO16/17, both IO9 and IO10 (Pins 25–26) AND input-only I37/I38 (Pins 5–6) are freely available alongside 2× DACs.
Internal 3.3V flash inside ESP32-U4WDH.
Add the peripherals you need and plan the pin assignments
| Pin # | Label | Type | Functions | Warnings & Notes |
|---|---|---|---|---|
| 1 | GND | ground | GND |
Module system ground (0V)
|
| 2 | GND | ground | GND |
Module system ground (0V)
|
| 3 | 3V3 | power | 3V3 |
[CAUTION] 3.0V–3.6V supply only (>=500 mA current capability + 10 µF & 0.1 µF decoupling)
Wi-Fi TX bursts draw high peak current. Exceeding 3.6V permanently damages the SoC and onboard flash.
Main 3.3V module power supply input (3.0V–3.6V; >=500 mA regulator recommended)
|
| 4 | I36 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)
|
| 5 | I37 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)
|
| 6 | I38 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)
|
| 7 | I39 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)
|
| 8 | EN 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)
|
| 9 | I34 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)
|
| 10 | I35 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)
|
| 11 | IO32 GPIO32 | mixed | GPIO32 ADC1_CH4 TOUCH9 XTAL_32K_P |
General-purpose 3.3V GPIO32 (NOT 5V tolerant)
|
| 12 | IO33 GPIO33 | mixed | GPIO33 ADC1_CH5 TOUCH8 XTAL_32K_N |
General-purpose 3.3V GPIO33 (NOT 5V tolerant)
|
| 13 | IO25 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)
|
| 14 | IO26 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)
|
| 15 | IO27 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)
|
| 16 | IO14 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)
|
| 17 | IO12 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)
|
| 18 | IO13 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)
|
| 19 | IO15 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)
|
| 20 | IO2 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)
|
| 21 | IO0 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)
|
| 22 | IO4 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)
|
| 23 | NC | nc | — |
No internal connection — leave floating on host PCB
|
| 24 | NC | nc | — |
No internal connection — leave floating on host PCB
|
| 25 | IO9 GPIO9 | digital | GPIO9 SPIHD |
General-purpose 3.3V GPIO9 (NOT 5V tolerant)
|
| 26 | IO10 GPIO10 | digital | GPIO10 SPIWP |
General-purpose 3.3V GPIO10 (NOT 5V tolerant)
|
| 27 | GND | ground | GND |
Module system ground (0V)
|
| 28 | NC | nc | — |
No internal connection — leave floating on host PCB
|
| 29 | IO5 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)
|
| 30 | IO18 GPIO18 | digital | GPIO18 VSPICLK |
General-purpose 3.3V GPIO18 (NOT 5V tolerant)
|
| 31 | IO23 GPIO23 | digital | GPIO23 VSPID |
General-purpose 3.3V GPIO23 (NOT 5V tolerant)
|
| 32 | IO19 GPIO19 | digital | GPIO19 VSPIQ U0CTS |
General-purpose 3.3V GPIO19 (NOT 5V tolerant)
|
| 33 | IO22 GPIO22 | digital | GPIO22 I2C0_SCL U0RTS |
General-purpose 3.3V GPIO22 (NOT 5V tolerant)
|
| 34 | IO21 GPIO21 | digital | GPIO21 I2C0_SDA |
General-purpose 3.3V GPIO21 (NOT 5V tolerant)
|
| 35 | RXD0 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)
|
| 36 | TXD0 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)
|
| 37 | NC | nc | — |
No internal connection — leave floating on host PCB
|
| 38-55 | GND | ground | GND |
Underside 18-pad thermal & RF ground array (Pads 38–55; connect to host GND)
|