ESP32 C3 Zero

Minimalist ESP32-C3 board with Wi-Fi & BLE - ideal for simple, budget-friendly IoT builds in tight spaces.

Popular USB-C Native USB
ESP32 C3 Zero board
23.5 × 18 mm
ESP32-C3
RISC-V MCU
160MHz
clock
4MB
flash
400KB
SRAM
15· 5 ADC
GPIO
BLE 5.0+ WiFi
radio
On this page

Pinout

18 pins · 2.54 mm pitch
View:
ESP32 C3 Zero pinout diagram
PinGPIOLabelsStatusCapabilitiesNotes
1-5Vpower-5V power input for the board
2-GNDground-Ground connection
3-3V33.3Vpower-3.3V power output
40IO0safeadcGPIO, ADC
51IO1safeadcGPIO, ADC
62IO2strappingadcGPIO, ADC
73IO3safeadcGPIO, ADC
84IO4strappingadcGPIO, ADC
95IO5strapping-GPIO
106IO6strapping-GPIO
117IO7strapping-GPIO
128IO8SDAstrappingi2cGPIO
139IO9SCLstrappingi2cGPIO
1410IO10RXuartuartGPIO, LED
1518IO18RXuartuartUSB DM
1619IO19RXuartuartUSB DP
1720IO20RXuartuartGPIO, UART Receive (secondary)
1821IO21TXuartuartGPIO, UART Transmit

Start with these

4 pins with no boot or system involvement
IO0IO1IO3IO10RX

Freely assignable - no strapping, flash, USB or JTAG duties. Ideal first picks for buttons, sensors and LEDs.

Fine - with a little care

sampled at boot or shared with debug/serial
PinLabelWhat to knowRole
IO2GPIO2Must be held high during boot (if low on reset, normal flash boot may fail)Strapping
IO4MTMSUsed during boot; JTAG TMS for debugging; acts as Quad-SPI flash IO (hold data line) in internal-flash variantsJTAG
IO5MTDIUsed during boot; JTAG TDI for debugging; acts as Quad-SPI flash IO (write-protect data line) in internal-flash variantsJTAG
IO6MTCKUsed during boot; JTAG TCK for debugging; provides flash clock in internal-flash variantsJTAG
IO7MTDOUsed during boot; JTAG TDO for debugging; acts as Quad-SPI flash IO (data line) in internal-flash variantsJTAG
IO8GPIO8Must be held high during reset (if low, UART flashing/boot may not work)Strapping
IO9GPIO9Controls boot mode on reset (HIGH for normal flash boot, LOW enters serial download mode)Strapping
IO20U0RXDUsed as UART0 receive (console/bootloader); repurposing may disable serial programming and debug logsUART
IO21U0TXDUsed as UART0 transmit (console/bootloader); repurposing may disable serial console output and printingUART

Only if you know the tricks

wired to flash or USB - expect a fight
PinLabelWhat to knowRole
IO18USB_D-By default connected to on-chip USB Serial/JTAG controller; to use as GPIO it must be reconfigured from its USB functionUSB
IO19USB_D+By default connected to on-chip USB Serial/JTAG controller; not available for GPIO use unless USB functionality is disabled or remappedUSB
These are recommendations, not hard rules - with the right pull-ups, timing and boot-state awareness most pins can be made to work. When in doubt, start green.
Pinout notes The ESP32 C3 Zero pinout brings out 18 pins at a 2.54 mm pitch - 15 usable GPIO alongside the 5V , GND and 3V3 power rails. Peripheral wiring is…

The ESP32 C3 Zero pinout brings out 18 pins at a 2.54 mm pitch - 15 usable GPIO alongside the 5V, GND and 3V3 power rails.

Peripheral wiring is straightforward: I²C is mapped to SDA on GPIO8 and SCL on GPIO9, while TX/RX on GPIO21 and GPIO10 cover serial logging and flashing.

Beyond plain digital I/O you get 5 ADC-capable pins for sensors and battery monitoring.

9 of the exposed pins carry boot-time or system duties on the ESP32-C3 (IO2, IO4, IO5 and 6 more) - check the guidance above before wiring anything to them. IO0, IO1, IO3 and IO10 are free of any such role - the safest first picks.

Getting started

flash your first firmware in ~2 minutes
Tool:
1
Connect over USB
Native USB - no driver, no serial chip. Not detected? Hold BOOT while plugging in.
2
Flash with your tool
Arduino IDE, PlatformIO, ESPHome or esptool - copy the settings on the right.
3
Verify it runs
The blink example uses GPIO0 - swap for your board's LED pin if different.
Tools → Board settings Copy
Board:            Esp32c3 Dev
USB CDC On Boot:  Enabled
Flash Size:       4MB · QIO
Upload Speed:     921600

// blink
pinMode(0, OUTPUT);
digitalWrite(0, LOW);   // on (often inverted)
platformio.ini Copy
[env:esp32-c3-zero]
platform = espressif32
board = esp32-c3-devkitm-1
framework = arduino
monitor_speed = 115200
upload_speed = 921600
device.yaml Copy
esp32:
  board: esp32-c3-devkitm-1
  variant: esp32c3
  framework:
    type: esp-idf

# blink - GPIO0
output:
  - platform: gpio
    pin: 0
    id: led_out
light:
  - platform: binary
    name: "LED"
    output: led_out
shell Copy
esptool.py --chip esp32c3 --port /dev/ttyACM0 \
  write_flash 0x0 firmware.bin
Build details: sketch space 1310720 B · data 327680 B · QIO

Good to know

board-specific quirks worth 60 seconds
ESP32 C3 Zero illustration

Specifications

ESP32-C3 · 23.5 × 18 mm
Compute
MCU
ESP32-C3 · RISC-V
Clock
160 MHz
SRAM · Flash
400 KB · 4MB
Radio
Wi-Fi
802.11 b/g/n
Bluetooth
5.0 LE
Antenna
Ceramic
I/O
GPIO · ADC
15 · 5
UART · I²C · SPI
2 · 1 · 3
PWM
6 channels
Power
USB
USB-C
Serial
Native (CDC)
Boot address
0x0
Flashing
Upload · OTA
esptool_py · esp_ota
Flash · Boot mode
QIO · QIO
Sketch · Data
1.25 MB · 320 KB
23.5 × 18 mm · pin pitch 2.54 mm
The ESP32 C3 Zero uses esptool_py for firmware uploads, esp_ota for over-the-air (OTA) updates. Flash mode is QIO with QIO boot mode. The maximum sketch size is 1.25 MB with 320 KB available for data.

About this board

At 23.5 × 18 mm it's among the smallest boards in the whole ESP32 family.

Inside sits the ESP32-C3 - a single-core RISC-V and the budget low-power pick. Sibling Zero-format boards cover the ESP32-C6 and ESP32-S3, so you can change radios or horsepower without changing the footprint.

At $4.90 it's cheaper than most Zero-format boards, which usually run around $6.27.

Around the module: an addressable RGB LED (GPIO10) and Reset/Boot buttons.

It flashes over native USB - no serial-converter driver needed.

  • Ultra-compact size: 23.5 × 18 mm
  • Low power consumption: deep sleep current ~43μA
  • Onboard WS2812 RGB LED (GPIO10)

Where to buy

prices are typical street prices
ESP32 C3 Zero
ESP32 C3 Zero
$4.90per unit, typical
As an Amazon Associate, ESPboards earns from qualifying purchases.

Resources

Similar boards

All Zero boards →
Morty Proxy This is a proxified and sanitized view of the page, visit original site.