ESP32-D0WD (dual-core Xtensa LX6)
ESP32 DevKit V1
A 3.3 V dual-core board with Wi-Fi and Bluetooth (Classic + BLE). Many GPIOs, 12-bit ADC, touch sensing and two DAC outputs — but watch out for input-only and boot-strapping pins.
GPIO ADC PWM I2C Power GND
ID: ENreset
EN
Functions
Chip enable — pull LOW to reset
Notes
- Same as the EN button.
Operating voltage: 3.3 V logic
Hardware Specifications
Module
ESP32-WROOM-32 (ESP32-D0WD)
CPU
Dual-core Xtensa LX6, up to 240 MHz
SRAM
520 KB
Flash
4 MB (on the module)
Wireless
Wi-Fi 802.11 b/g/n (2.4 GHz), Bluetooth 4.2 Classic + BLE
Logic level
3.3 V — GPIOs are not 5 V tolerant
ADC
12-bit (0–4095), ADC1: GPIO32–39, ADC2: shared with Wi-Fi
DAC
2 × 8-bit on GPIO25 and GPIO26
PWM
LEDC peripheral on any output GPIO (16 channels)
Touch
9 capacitive touch pins on this 30-pin board
USB
Micro-USB via USB-to-UART bridge (CP2102 or CH340)
Complete Pinout Table
30| Pin | Label | Type | Functions | Warnings & Notes |
|---|---|---|---|---|
| EN | EN | reset | Chip enable — pull LOW to reset | Same as the EN button. |
| GPIO36 | VP | input-only | ADC1_CH0, Sensor VP | Input only: no output and no internal pull-up/down. |
| GPIO39 | VN | input-only | ADC1_CH3, Sensor VN | Input only: no output and no internal pull-up/down. |
| GPIO34 | 34 | input-only | ADC1_CH6 | Input only: no output and no internal pull-up/down. |
| GPIO35 | 35 | input-only | ADC1_CH7 | Input only: no output and no internal pull-up/down. |
| GPIO32 | 32 | analog | ADC1_CH4, Touch T9, 32 kHz crystal (optional) | — |
| GPIO33 | 33 | analog | ADC1_CH5, Touch T8 | — |
| GPIO25 | 25 | dac | ADC2_CH8, DAC1 (8-bit) | ADC2: no analogRead() while Wi-Fi is on. |
| GPIO26 | 26 | dac | ADC2_CH9, DAC2 (8-bit) | ADC2: no analogRead() while Wi-Fi is on. |
| GPIO27 | 27 | analog | ADC2_CH7, Touch T7 | ADC2: no analogRead() while Wi-Fi is on. |
| GPIO14 | 14 | analog | ADC2_CH6, Touch T6, HSPI CLK | Outputs a PWM signal briefly at boot. |
| GPIO12 | 12 | analog | ADC2_CH5, Touch T5, HSPI MISO, Strapping (MTDI: flash voltage) | Strapping pin: if it is HIGH at power-on the board may fail to boot. |
| GPIO13 | 13 | analog | ADC2_CH4, Touch T4, HSPI MOSI | ADC2: no analogRead() while Wi-Fi is on. |
| GND1 | GND | ground | Ground (0 V) | All GND pins are connected together. |
| VIN | VIN | power | 5 V input/output (USB 5 V) | Use 5 V here, not 7–12 V. |
| GPIO23 | 23 | pwm | VSPI MOSI | — |
| GPIO22 | 22 | pwm | I2C SCL (Arduino default) | — |
| GPIO1 | TX0 | uart | UART0 TX (USB serial) | Used by USB serial: avoid for other things. |
| GPIO3 | RX0 | uart | UART0 RX (USB serial) | Used by USB serial: avoid for other things. |
| GPIO21 | 21 | pwm | I2C SDA (Arduino default) | — |
| GPIO19 | 19 | pwm | VSPI MISO | — |
| GPIO18 | 18 | pwm | VSPI SCK | — |
| GPIO5 | 5 | pwm | VSPI SS, Strapping (SDIO timing) | Strapping pin: outputs PWM at boot and must not be pulled LOW at power-on. |
| GPIO17 | TX2 | pwm | UART2 TX | — |
| GPIO16 | RX2 | pwm | UART2 RX | — |
| GPIO4 | 4 | analog | ADC2_CH0, Touch T0 | ADC2: no analogRead() while Wi-Fi is on. |
| GPIO2 | 2 | analog | ADC2_CH2, Touch T2, Built-in LED (most boards), Strapping (boot mode) | Strapping pin: must be LOW or floating to enter upload mode. |
| GPIO15 | 15 | analog | ADC2_CH3, Touch T3, HSPI SS, Strapping (boot log) | Strapping pin: outputs PWM at boot. |
| GND2 | GND | ground | Ground (0 V) | All GND pins are connected together. |
| V3_3 | 3V3 | power | 3.3 V output from the regulator | Use this (not 5 V) for 3.3 V sensors. |