
Seed Studio XIAO ESP32C3 (XIAO ESP32C3) is a development board based on the ESP32C3 microcontroller using RISCV32 architecture.
This board features a maximum CPU frequency of 160 MHz and 4MB flash memory.
About XIAO ESP32C3
Its small form factor makes it suitable for wearable projects, DIY automation, and more. The board features a USB-C port for easy programming and power supply. It supports multiple communication interfaces, including UART, I2C, and SPI. 🚀
The XIAO ESP32C3 also includes a reset button and a bootloader mode button, simplifying development and debugging.⚡
Where to Buy XIAO ESP32C3
Prices are subject to change. We earn from qualifying purchases as an Amazon Associate.
Technical Specifications
Complete technical specification details for XIAO ESP32C3
USB
Connectivity
Microcontroller
✨ Features & Pins
- • Ultra-small form factor (20x17.5 mm)
- • Low power consumption with deep sleep support
Quick Setup
Copy-paste configs for XIAO ESP32C3 - auto‑generated from this board's exact hardware specs.
In Arduino IDE 2 select Xiao Esp32c3 from the esp32 by Espressif package. In PlatformIO use board = esp32-c3-devkitm-1. ESP32C3 · 160 MHz · 4MB · QIO · RISC-V.
In Arduino IDE 2, open Boards Manager, search "esp32" by Espressif and install it. Then go to Tools → Board and select "Xiao Esp32c3" for the XIAO ESP32C3.
[env:XIAO_ESP32C3]
platform = espressif32
board = esp32-c3-devkitm-1
framework = arduino
; Exact hardware config for XIAO ESP32C3
board_build.mcu = esp32c3
board_build.f_cpu = 160000000L
board_build.flash_size = 4MB
board_build.flash_mode = qio
board_upload.flash_size = 4MBThe board value is a close generic match - check PlatformIO board registry for an exact fit.
esp32:
board: esp32-c3-devkitm-1
framework:
type: arduino # or "esp-idf"
# XIAO ESP32C3 - 160 MHz ESP32C3
# Flash: 4MB | USB: USB-CPaste into your device's .yaml. See ESPHome ESP32 docs for full options.
esptool.py \
--chip esp32c3 \
--baud 921600 \
write_flash \
--flash_mode qio \
--flash_size 4MB \
0x0 bootloader.bin \
0x8000 partitions.bin \
0xe000 boot_app0.bin \
0x10000 firmware.binInstall: pip install esptool - replace firmware.bin with your binary - bootloader at 0x0
XIAO ESP32C3 Pinout Diagram
Complete pin reference for XIAO ESP32C3
The XIAO ESP32C3 pinout is optimized for maximum functionality in a tiny package. It includes essential power pins like 5V, 3.3V, and GND for stable power delivery.
It supports multiple communication protocols, with dedicated pins for UART (RX and TX), I2C (SDA and SCL), and SPI (SCK, MISO, MOSI, and SS).
Analog input pins are labeled A0 to A3, making them ideal for sensor integration. Despite its small size, the XIAO ESP32C3 provides flexible connectivity for a variety of applications.
Safe Pins to Use
These pins are safe for general GPIO usage without boot or system conflicts
Why Are These Pins Safe?
Pins to Avoid or Use with Caution
Reserved for critical functions. Misuse may cause boot failures, programming issues, or system conflicts.
Boot behavior & flash voltage
Low-level debugging interface
USB Serial/JTAG communication
Memory & PSRAM connections
Debugging & firmware uploads
| PIN | Label | Why Avoid | Type |
|---|---|---|---|
| IO2 | GPIO2 | Must be held high during boot (if low on reset, normal flash boot may fail) | 🛠️ Strapping |
| IO4 | MTMS | Used during boot; JTAG TMS for debugging; acts as Quad-SPI flash IO (hold data line) in internal-flash variants | 🔗 JTAG |
| IO5 | MTDI | Used during boot; JTAG TDI for debugging; acts as Quad-SPI flash IO (write-protect data line) in internal-flash variants | 🔗 JTAG |
| IO6 | MTCK | Used during boot; JTAG TCK for debugging; provides flash clock in internal-flash variants | 🔗 JTAG |
| IO7 | MTDO | Used during boot; JTAG TDO for debugging; acts as Quad-SPI flash IO (data line) in internal-flash variants | 🔗 JTAG |
| IO8 | GPIO8 | Must be held high during reset (if low, UART flashing/boot may not work) | 🛠️ Strapping |
| IO9 | GPIO9 | Controls boot mode on reset (HIGH for normal flash boot, LOW enters serial download mode) | 🛠️ Strapping |
| IO20 | U0RXD | Used as UART0 receive (console/bootloader); repurposing may disable serial programming and debug logs | 📡 UART |
| IO21 | U0TXD | Used as UART0 transmit (console/bootloader); repurposing may disable serial console output and printing | 📡 UART |
Useful Links
Datasheets and resources for XIAO ESP32C3
XIAO ESP32C3 Custom Pin Mapping
Pin configuration and GPIO mapping for XIAO ESP32C3
| Pin | Function | ESP Pin | I/O Type | Description |
|---|---|---|---|---|
| 1 | 5V | 5V | POWER INPUT | 5V power input |
| 2 | GND | GND | GROUND | Ground connection |
| 3 | 3V3 | 3.3V | POWER OUTPUT | 3.3V power output |
| 4 | IO2 | A0 | BIDIRECTIONAL | GPIO, ADC |
| 5 | IO3 | A1 | BIDIRECTIONAL | GPIO, ADC |
| 6 | IO4 | A2 | BIDIRECTIONAL | GPIO, ADC |
| 7 | IO5 | A3 | BIDIRECTIONAL | GPIO, ADC |
| 8 | IO6 | SDA | BIDIRECTIONAL | GPIO, I2C Data |
| 9 | IO7 | SCL | BIDIRECTIONAL | GPIO, I2C Clock |
| 10 | IO8 | SCK | BIDIRECTIONAL | GPIO, SPI Clock |
| 11 | IO9 | MISO | BIDIRECTIONAL | GPIO, SPI Data |
| 12 | IO10 | MOSI | BIDIRECTIONAL | GPIO, SPI Data |
| 13 | IO20 | RX | BIDIRECTIONAL | GPIO, UART Receive |
| 14 | IO21 | TX | BIDIRECTIONAL | GPIO, UART Transmit |
Pin Mappings
Complete pinout and GPIO mapping for XIAO ESP32C3
| Pin | Analog | Touch | PWM | Other |
|---|---|---|---|---|
| 2 | A0 | |||
| 3 | A1 | |||
| 4 | A2 | |||
| 5 | A3 | |||
| 6 | SDA | |||
| 7 | SCL | |||
| 8 | SCK | |||
| 9 | MISO | |||
| 10 | MOSI | |||
| 20 | RX SS | |||
| 21 | TX |
Default Tools & Configuration
Build and upload settings for XIAO ESP32C3
| Setting | Value |
|---|---|
| Bootloader tool | esptool_py |
| Uploader tool | esptool_py |
| Network uploader tool | esp_ota |
| Bootloader address | 0x0 |
| Flash mode | qio |
| Boot mode | qio |
| Maximum upload size | 1280 KB (1310720 bytes) |
| Maximum data size | 320 KB (327680 bytes) |
The XIAO ESP32C3 uses esptool_py for uploads , esp_ota for OTA updates, and esptool_py bootloader at 0x0.
Flash mode: qio | Boot mode: qio
Max sketch size: 1280 KB | Max data size: 320 KB
Similar Boards
Other development boards with ESP32C3 microcontroller

XIAO ESP32S3 Sense
XIAO ESP32S3 Sense development board is based on esp32s3 microcontroller and uses xtensa architecture.

XIAO ESP32S3
XIAO ESP32S3 development board is based on esp32s3 microcontroller and uses xtensa architecture.

XIAO ESP32C6
XIAO ESP32C6 development board is based on esp32c6 microcontroller and uses riscv32 architecture.

