XIAO ESP32C3

Tiny ESP32-C3 board with USB-C and rich I/O - great for wearable tech, embedded controllers, and rapid prototyping.

USB-C Native USB
XIAO ESP32C3 board
21 × 17.8 mm
ESP32-C3
RISC-V MCU
160MHz
clock
4MB
flash
400KB
SRAM
11· 4 ADC
GPIO
BLE 5.0+ WiFi
radio
On this page

Pinout

14 pins · 2.54 mm pitch
View:
XIAO ESP32C3 pinout diagram
PinGPIOLabelsStatusCapabilitiesNotes
12D0A0GPIO2strappingadc · pwm
23D1A1GPIO3safeadc · pwm
34D2A2GPIO4strappingadc · pwm
45D3A3GPIO5strappingadc · pwmADC2_CH0; Seeed warns ADC2 readings may be unreliable - use D0-D2 (ADC1) for analog
56D4SDAGPIO6strappingi2c · pwm
67D5SCLGPIO7strappingi2c · pwm
721D6TXGPIO21uartuart · pwm
8-5Vpower-5V power input/output
9-GNDground-
10-3V3power-3.3V power
1110D10MOSIGPIO10safespi · pwm
129D9MISOGPIO9strappingspi · pwm
138D8SCKGPIO8strappingspi · pwm
1420D7RXGPIO20uartuart · pwm

Start with these

2 pins with no boot or system involvement
D1A1D10MOSI

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
D0GPIO2Must be held high during boot (if low on reset, normal flash boot may fail)Strapping
D2MTMSUsed during boot; JTAG TMS for debugging; acts as Quad-SPI flash IO (hold data line) in internal-flash variantsJTAG
D3MTDIUsed during boot; JTAG TDI for debugging; acts as Quad-SPI flash IO (write-protect data line) in internal-flash variantsJTAG
D4MTCKUsed during boot; JTAG TCK for debugging; provides flash clock in internal-flash variantsJTAG
D5MTDOUsed during boot; JTAG TDO for debugging; acts as Quad-SPI flash IO (data line) in internal-flash variantsJTAG
D6U0TXDUsed as UART0 transmit (console/bootloader); repurposing may disable serial console output and printingUART
D9GPIO9Controls boot mode on reset (HIGH for normal flash boot, LOW enters serial download mode)Strapping
D8GPIO8Must be held high during reset (if low, UART flashing/boot may not work)Strapping
D7U0RXDUsed as UART0 receive (console/bootloader); repurposing may disable serial programming and debug logsUART
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 XIAO ESP32C3 pinout brings out 14 pins at a 2.54 mm pitch - 11 usable GPIO alongside the 5V, GND and 3V3 power rails. Peripheral wiring is straightforward:…

The XIAO ESP32C3 pinout brings out 14 pins at a 2.54 mm pitch - 11 usable GPIO alongside the 5V, GND and 3V3 power rails.

Peripheral wiring is straightforward: I²C is mapped to SDA on GPIO6 and SCL on GPIO7; the SPI bus (MOSI, MISO, SCK) is broken out in full; TX/RX on GPIO21 and GPIO20 cover serial logging and flashing.

Beyond plain digital I/O you get 4 ADC-capable pins for sensors and battery monitoring and PWM on every GPIO.

9 of the exposed pins carry boot-time or system duties on the ESP32-C3 (D0, D2, D3 and 6 more) - check the guidance above before wiring anything to them. D1 and D10 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 - shows up as a port right away, no driver needed. Not detected? Hold BOOT while plugging in.
2
Match & flash
Set the Tools options shown, then click Upload.
3
Verify it runs
GPIO3 toggles - wire an LED and resistor to it, or change the pin to your board's own LED.
Set these in Tools · leave everything else at default
Arduino IDE 2.x - Tools Copy
Board: "XIAO_ESP32C3"
USB CDC On Boot: "Enabled"
Flash Size: "4MB (32Mb)"
Flash Mode: "QIO"
Partition Scheme: "Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)" (default)
Upload Speed: "921600"
▸ every other Tools option - leave at default
Board: XIAO_ESP32C3
USB CDC On Boot: Enabled
Flash Size: 4MB (32Mb)
Flash Mode: QIO
Partition Scheme: Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
Upload Speed: 921600
Find it: Tools ▸ Board ▸ ESP32 Arduino ▸ XIAO_ESP32C3
blink.ino Copy
// toggle GPIO3 - wire an LED and resistor to it
void setup() {
  pinMode(3, OUTPUT);
}
void loop() {
  digitalWrite(3, HIGH); delay(500);
  digitalWrite(3, LOW);  delay(500);
}
board to selectseeed_xiao_esp32c3⧉ copy
platformio.ini Copy
[env:XIAO_ESP32C3]
platform = espressif32
board = seeed_xiao_esp32c3
framework = arduino
monitor_speed = 115200
upload_speed = 921600
Find it: PlatformIO Home ▸ Boards, search seeed_xiao_esp32c3 - or type it after board =.
board to selectseeed_xiao_esp32c3⧉ copy
device.yaml Copy
esp32:
  board: seeed_xiao_esp32c3
  variant: esp32c3
  framework:
    type: esp-idf

# blink - GPIO3
output:
  - platform: gpio
    pin: 3
    id: led_out
light:
  - platform: binary
    name: "LED"
    output: led_out
Find it: search ESPHome's board list for seeed_xiao_esp32c3 (same ids as PlatformIO).
esptool doesn't pick board settings - a prebuilt .bin already has them baked in. This is just the raw flash command.
terminal Copy
esptool.py --chip esp32c3 --port /dev/ttyACM0 \
  --baud 921600 write_flash 0x0 firmware.bin
--port = your /dev/tty* (macOS/Linux) or COMx (Windows).
Build details: sketch space 1310720 B · data 327680 B · QIO

Good to know

board-specific quirks worth 60 seconds
Antenna - you must attach one illustration
Antenna - you must attach one
Unlike the XIAO ESP32C6, the C3 has no onboard antenna. Seeed's pin map and schematic show one RF path off the chip, into a U.FL-R-SMT1 socket, and nothing else. The antenna for it is in the box - the part list is the board x1 plus an antenna x1 - and Seeed rates the pair for "communication over 100m", so fit it before judging the board's range. Seeed sells a 2.4 GHz rod antenna for it. Seeed's own warning…

Unlike the XIAO ESP32C6, the C3 has no onboard antenna. Seeed's pin map and schematic show one RF path off the chip, into a U.FL-R-SMT1 socket, and nothing else. The antenna for it is in the box - the part list is the board x1 plus an antenna x1 - and Seeed rates the pair for "communication over 100m", so fit it before judging the board's range.

Seeed sells a 2.4 GHz rod antenna for it.

Seeed's own warning about the connector: "It will be a little hard to connect the antenna at the first time using the board. Please connect the antenna at the vertical direction and do not drag at the horizontal direction."

No USB-serial chip - Serial rides on USB CDC illustration
No USB-serial chip - Serial rides on USB CDC
USB-C goes straight into the ESP32-C3's native USB; there is no USB-serial bridge on the board. arduino-esp32 already ships this board with Tools → USB CDC On Boot set to Enabled, so Serial.print() reaches the serial monitor out of the box. Switch that menu to Disabled and Serial goes to the UART pins D6/D7 (GPIO21/GPIO20) instead. If the port never shows up, Seeed's troubleshooting order is: click RESET once while…

USB-C goes straight into the ESP32-C3's native USB; there is no USB-serial bridge on the board. arduino-esp32 already ships this board with Tools → USB CDC On Boot set to Enabled, so Serial.print() reaches the serial monitor out of the box. Switch that menu to Disabled and Serial goes to the UART pins D6/D7 (GPIO21/GPIO20) instead.

If the port never shows up, Seeed's troubleshooting order is: click RESET once while the board is plugged in; if that does not help, hold BOOT, connect the board to USB while holding it, then release it to enter bootloader mode.

D3 (GPIO5) is the one analog pin on ADC2. Seeed warns it "may become inoperative due to false sampling signals" and points you at ADC1 instead, so use D0-D2 (GPIO2-4) for analog readings.

Specifications

ESP32-C3 · 21 × 17.8 mm · vs other ESP32 chips →
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
u.FL
I/O
GPIO · ADC
11 · 4
UART · I²C · SPI
2 · 1 · 1
PWM
6 channels
Power
USB
USB-C
Serial
Native (CDC)
Boot address
0x0
Electrical
Input
5V USB-C · 3.7V LiPo
Consumption
75mA active · 44µA sleep
Regulator
TLV75733P
Flashing
Upload · OTA
esptool_py · esp_ota
Flash · Boot mode
QIO · QIO
Sketch · Data
1.25 MB · 320 KB
17.8 mm21 mm
21 × 17.8 mm · pin pitch 2.54 mm
The XIAO ESP32C3 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 21 × 17.8 mm it's the smallest ESP32-C3 board we've measured.

Inside sits the ESP32-C3 - a single-core RISC-V and the budget low-power pick.

At $4.90 it's cheaper than most ESP32-C3 boards, which usually run around $10.

Around the module: battery charging via Solder pads, status LEDs (Charge) and Reset/Boot buttons.

It flashes over native USB - no serial-converter driver needed, which isn't a given among ESP32-C3 boards.


The XIAO ESP32C3 is Seeed Studio's ESP32-C3 entry in the XIAO family: a 21 x 17.8 mm board with USB-C, Wi-Fi 4 (802.11 b/g/n) and Bluetooth 5 LE, and a u.FL connector for an external antenna instead of an onboard one - Seeed ships that antenna in the box. The single RISC-V core runs at 160 MHz with 400 KB SRAM and 4 MB flash, and there is no PSRAM, so it fits sensors, buttons and small web services rather than camera or audio buffers.

Two extras lift it above a bare module. Solder pads take a 3.7 V lithium cell with onboard charging (380 mA fast, 40 mA trickle) and a charge LED, and deep sleep drops to about 44 µA. There is no user LED, only that charge indicator, so a first blink needs an LED and a series resistor wired to a free pin (Seeed's own example uses D10 with a 150 ohm resistor).

Programming runs over the C3's native USB (no serial chip), and arduino-esp32 lists the board as XIAO_ESP32C3. The standard XIAO ships without headers; Seeed also sells a pre-soldered variant with them already soldered on.
  • Ultra-small form factor (21x17.8 mm)
  • Deep sleep down to 44 µA, with GPIO and timer wake-up
  • Ships with an external u.FL antenna
  • Onboard LiPo charge management via solder pads (380 mA fast, 40 mA trickle)

Where to buy

prices are typical street prices
As an Amazon Associate, ESPboards earns from qualifying purchases.
The Seeed Studio store link is an affiliate link - ESPboards may earn a commission on purchases, at no extra cost to you.

Resources

Similar boards