ESP32-C3-WROOM-02

module
Espressif Systems Datasheet ↗

Built around Espressif's 160 MHz 32-bit RISC-V ESP32-C3 SoC, 40 MHz crystal, and 4 MB of onboard Quad SPI flash, the ESP32-C3-WROOM-02 uses a clean 2-sided 1.5 mm-pitch castellated footprint in 18.0×20.0 mm PCB-antenna and 18.0×14.3 mm U.FL (WROOM-02U) sizes. Fifteen exposed 3.3 V GPIOs (IO0–IO10, IO18–IO21) support full GPIO Matrix routing for 2× UART, SPI2, I2C0, I2S0, TWAI (CAN), 6× LEDC PWM, and native USB Serial/JTAG on IO18/IO19. Five 12-bit SAR ADC1 channels cover IO0–IO4 across a 3.0 V–3.6 V supply (>=500 mA recommended; IO5 ADC2 is affected by silicon errata [ADC-183]). All pads are strictly non-5V-tolerant, and IO8/IO2 must stay HIGH when pulling IO9 LOW for Download Boot.

ESPRESSIF ESP32-C3-WROOM-02 1 3V3 ! 3V3 3V3 2 EN ! CHIP_EN CHIP_EN 3 IO4 ! GPIO4 ADC1_CH4 SPI Debug PWM +3 GPIO4 ADC1_CH4 FSPIHD MTMS LEDC_CH4 4 IO5 ! GPIO5 ADC2_CH0 SPI Debug PWM +3 GPIO5 ADC2_CH0 FSPIWP MTDI LEDC_CH5 5 IO6 ! GPIO6 FSPICLK Debug PWM +2 GPIO6 FSPICLK MTCK LEDC_CH0 6 IO7 ! GPIO7 FSPID Debug PWM +2 GPIO7 FSPID MTDO LEDC_CH1 7 IO8 ! GPIO8 LEDC_CH2 GPIO8 LEDC_CH2 8 IO9 ! GPIO9 LEDC_CH3 GPIO9 LEDC_CH3 9 GND GND GND 10 IO10 GPIO10 FSPICS0 LEDC_CH4 GPIO10 FSPICS0 LEDC_CH4 11 RXD ! GPIO20 U0RXD LEDC_CH0 GPIO20 U0RXD LEDC_CH0 12 TXD ! GPIO21 U0TXD LEDC_CH1 GPIO21 U0TXD LEDC_CH1 13 IO18 ! GPIO18 USB_D- UART PWM +2 GPIO18 USB_D- U0RTS LEDC_CH4 14 IO19 ! GPIO19 USB_D+ UART PWM +2 GPIO19 USB_D+ U0CTS LEDC_CH5 15 IO3 GPIO3 ADC1_CH3 LEDC_CH3 GPIO3 ADC1_CH3 LEDC_CH3 16 IO2 ! GPIO2 ADC1_CH2 SPI PWM +2 GPIO2 ADC1_CH2 FSPIQ LEDC_CH2 17 IO1 GPIO1 ADC1_CH1 Clock PWM +2 GPIO1 ADC1_CH1 XTAL_32K_N LEDC_CH1 18 IO0 GPIO0 ADC1_CH0 Clock PWM +2 GPIO0 ADC1_CH0 XTAL_32K_P LEDC_CH0 19 EPAD GND GND

Onboard Peripherals & Internal Signals

Internal Quad SPI Flash (4 MB) QSPI
Chip Pad: GPIO14
Inside RF shield on VDD_SPI (GPIO11) and GPIO12–GPIO17 (SPIHD, SPIWP, SPICS0, SPICLK, SPID, SPIQ)

Integrated 3.3V Quad SPI XIP flash memory inside the RF shield can; flash bus pins are not routed to module perimeter pads.

40 MHz RF Crystal Oscillator Clock
Chip Pad: XTAL_P
Precision 40 MHz ±10 ppm reference crystal inside RF shield

Drives Wi-Fi 4 and Bluetooth 5 LE transceivers.

Pin Assignment Planner

Add the peripherals you need and plan the pin assignments

Full Pin Reference (19 Pins)

Pin # Label Type Functions Warnings & Notes
1 3V3 power 3V3
[CAUTION] 3.0V–3.6V supply only (provide >=500 mA regulator & local 10 µF + 0.1 µF decoupling)
Wi-Fi TX bursts require clean 3.3V delivery capable of at least 500 mA. Exceeding 3.6V permanently damages the ESP32-C3 and onboard flash.
Main 3.3V module power supply input (3.0V–3.6V; >=500 mA output capability recommended)
2 EN CHIP_PU reset CHIP_EN
[CAUTION] Active-HIGH chip enable/reset — never leave floating
High enables chip; Low powers off chip. Add an external RC delay circuit (10 kΩ pull-up to 3.3V and 1 µF capacitor to GND) to meet power-on reset timing.
High-enable / active-low chip reset input (CHIP_EN / EN)
3 IO4 GPIO4 mixed GPIO4 ADC1_CH4 FSPIHD MTMS LEDC_CH4
[INFO] Dedicated JTAG MTMS pin if external JTAG probe is enabled
Free for ADC1_CH4, SPI2, or general GPIO when debugging over native USB Serial/JTAG (GPIO18/GPIO19).
RTC/Digital GPIO4, 12-bit ADC1_CH4, FSPIHD, and JTAG MTMS (3.3V max, NOT 5V tolerant)
4 IO5 GPIO5 mixed GPIO5 ADC2_CH0 FSPIWP MTDI LEDC_CH5
[CAUTION] ADC2_CH0 affected by silicon errata [ADC-183] & Wi-Fi arbitration — prefer GPIO0–GPIO4 for analog
Hardware errata [ADC-183] disables continuous/DMA ADC2 operation on ESP32-C3, and ADC2 is shared with the Wi-Fi radio. Safe as a standard digital GPIO; use GPIO0–GPIO4 (ADC1) for reliable analog reads.
RTC/Digital GPIO5, ADC2_CH0 (see errata), FSPIWP, and JTAG MTDI
5 IO6 GPIO6 digital GPIO6 FSPICLK MTCK LEDC_CH0
[INFO] Dedicated JTAG MTCK pin if external JTAG probe is enabled
Completely free for high-speed IO_MUX SPI2 SCK, I2C, or GPIO when using native USB Serial/JTAG.
Digital GPIO6, direct IO_MUX SPI2 SCK (FSPICLK), and JTAG MTCK (3.3V max, NOT 5V tolerant)
6 IO7 GPIO7 digital GPIO7 FSPID MTDO LEDC_CH1
[INFO] Dedicated JTAG MTDO pin if external JTAG probe is enabled
Completely free for high-speed IO_MUX SPI2 MOSI, I2C, or GPIO when using native USB Serial/JTAG.
Digital GPIO7, direct IO_MUX SPI2 MOSI (FSPID), and JTAG MTDO (3.3V max, NOT 5V tolerant)
7 IO8 GPIO8 digital GPIO8 LEDC_CH2
[CAUTION] Boot mode & ROM log strapping pin (floating at reset — MUST be HIGH for Download Boot)
Sampled at reset with no internal pull-up. Entering Joint Download Boot (GPIO9=LOW) strictly requires GPIO8=HIGH (GPIO8=0 & GPIO9=0 is an invalid boot state!). Add an external 10 kΩ pull-up if external circuitry could pull GPIO8 low at reset.
Digital GPIO8 (Download Boot gate & ROM UART0 print strapping pin)
8 IO9 GPIO9 digital GPIO9 LEDC_CH3
[CAUTION] Boot mode strapping pin (weak internal pull-up: HIGH=SPI Boot, LOW=Download Boot)
Sampled at reset with internal ~45 kΩ pull-up enabled. Pulling GPIO9 LOW during reset while GPIO8=HIGH enters Joint Download Boot (USB Serial/JTAG + UART0). Avoid external loads that pull GPIO9 low at power-on.
Digital GPIO9 (BOOT button strapping pin with internal weak pull-up)
9 GND ground GND
Module system ground (0V)
10 IO10 GPIO10 digital GPIO10 FSPICS0 LEDC_CH4
Digital GPIO10 and direct IO_MUX SPI2 CS0 (FSPICS0) (3.3V max, NOT 5V tolerant)
11 RXD GPIO20 digital GPIO20 U0RXD LEDC_CH0
[INFO] Default ROM bootloader UART0 RX input (internal pull-up active during boot)
Used by the ROM serial bootloader alongside USB Serial/JTAG in Download Boot mode. Freely usable for UART0 RX or general GPIO after boot.
Digital GPIO20 and default UART0 RX (U0RXD) (3.3V max, NOT 5V tolerant)
12 TXD GPIO21 digital GPIO21 U0TXD LEDC_CH1
[INFO] Default ROM bootloader UART0 TX output (emits 115200 baud boot log at reset)
Outputs ROM boot diagnostic messages on reset unless suppressed by GPIO8 / EFUSE_UART_PRINT_CONTROL. Freely usable for UART0 TX or general GPIO after boot.
Digital GPIO21 and default UART0 TX (U0TXD) (3.3V max, NOT 5V tolerant)
13 IO18 GPIO18 special GPIO18 USB_D- U0RTS LEDC_CH4
[CAUTION] Native Full-Speed USB Serial/JTAG D− differential line
Enabled by default as USB D− for flashing, CDC console, and JTAG debugging. Reconfiguring GPIO18 as digital I/O disconnects native USB until reset.
Native USB 2.0 Full-Speed Serial/JTAG D− pad / Digital GPIO18
14 IO19 GPIO19 special GPIO19 USB_D+ U0CTS LEDC_CH5
[CAUTION] Native Full-Speed USB Serial/JTAG D+ line (internal 1.5 kΩ USB pull-up active at reset)
Enabled by default with an internal USB D+ pull-up to 3.3V at reset. Reconfiguring GPIO19 as digital I/O disconnects native USB Serial/JTAG.
Native USB 2.0 Full-Speed Serial/JTAG D+ pad / Digital GPIO19
15 IO3 GPIO3 mixed GPIO3 ADC1_CH3 LEDC_CH3
RTC/Digital GPIO3 and 12-bit ADC1_CH3 (3.3V max, NOT 5V tolerant)
16 IO2 GPIO2 mixed GPIO2 ADC1_CH2 FSPIQ LEDC_CH2
[CAUTION] Boot strapping pin (must be HIGH during Download Boot)
Sampled at reset with no internal pull-up enabled. Keep GPIO2 HIGH (or add a 10 kΩ pull-up) when entering Joint Download Boot via GPIO9=LOW to prevent unintended glitch modes.
RTC/Digital GPIO2, 12-bit ADC1_CH2, direct IO_MUX SPI2 MISO (FSPIQ), and boot strapping pin
17 IO1 GPIO1 mixed GPIO1 ADC1_CH1 XTAL_32K_N LEDC_CH1
RTC/Digital GPIO1, 12-bit ADC1_CH1, and 32.768 kHz crystal N (3.3V max, NOT 5V tolerant)
18 IO0 GPIO0 mixed GPIO0 ADC1_CH0 XTAL_32K_P LEDC_CH0
RTC/Digital GPIO0, 12-bit ADC1_CH0, and 32.768 kHz crystal P (3.3V max, NOT 5V tolerant)
19 EPAD ground GND
Underside 3×3 exposed thermal & RF ground pad (connect to host ground plane via thermal vias)