XIAO ESP32C6

Tiny ESP32-C6 board by Seeed Studio with USB-C, Wi-Fi 6, BLE, and Thread - ideal for compact and wearable IoT builds.

USB-C Native USB
XIAO ESP32C6 board
21 × 17.8 mm
ESP32-C6
RISC-V MCU
160MHz
clock
4MB
flash
512KB
SRAM
11· 3 ADC
GPIO
BLE 5.3+ WiFi
radio
On this page

Pinout

14 pins · 2.54 mm pitch
View:
XIAO ESP32C6 pinout diagramXIAO ESP32C6 pinout diagram (alternate view)
PinGPIOLabelsStatusCapabilitiesNotes
10D0A0GPIO0LP_GPIO0safeadc · pwm
21D1A1GPIO1LP_GPIO1safeadc · pwm
32D2A2GPIO2LP_GPIO2safeadc · pwm
421D3GPIO21SDIO_DATA1safepwm
522D4SDAGPIO22SDIO_DATA2safei2c · pwm
623D5SCLGPIO23SDIO_DATA3safei2c · pwm
716D6TXGPIO16uartuart · pwm
8-5Vpower-5V power input/output
9-GNDground-
10-3V3power-3.3V power
1118D10MOSIGPIO18SDIO_CMDstrappingspi · pwm
1220D9MISOGPIO20SDIO_DATA0safespi · pwm
1319D8SCKGPIO19SDIO_CLKstrappingspi · pwm
1417D7RXGPIO17uartuart · pwm

Start with these

7 pins with no boot or system involvement
D0A0D1A1D2A2D3GPIO21D4SDAD5SCLD9MISO

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
D6U0TXDDefault UART0 transmit pin; using it may interfere with serial console or programming.UART
D7U0RXDDefault UART0 receive pin; using it may interfere with serial console or programming.UART

Only if you know the tricks

wired to flash or USB - expect a fight
PinLabelWhat to knowRole
D10FSPIQConnected to internal flash; using as GPIO can disrupt flash operations.Flash
D8FSPIDConnected to internal flash; using as GPIO can disrupt flash operations.Flash
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 ESP32C6 breaks out 14 pins in total: 11 GPIO for your project, with 5V , GND and 3V3 handling power. For peripherals, I²C is mapped to SDA on GPIO22…

The XIAO ESP32C6 breaks out 14 pins in total: 11 GPIO for your project, with 5V, GND and 3V3 handling power.

For peripherals, I²C is mapped to SDA on GPIO22 and SCL on GPIO23; the SPI bus (MOSI, MISO, SCK) is broken out in full; TX/RX on GPIO16 and GPIO17 cover serial logging and flashing.

On the analog side there are 3 ADC-capable pins for sensors and battery monitoring and PWM on every GPIO.

If you want zero surprises, D0, D1, D2, D3 and 3 more are free of any such role - the safest first picks. 2 of the exposed pins carry boot-time or system duties on the ESP32-C6 (D6 and D7).

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:            Xiao Esp32c6
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:xiao-esp32c6]
platform = espressif32
board = esp32-c6-devkitc-1
framework = arduino
monitor_speed = 115200
upload_speed = 921600
device.yaml Copy
esp32:
  board: esp32-c6-devkitc-1
  variant: XIAO_ESP32C6
  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 esp32c6 --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
Two antennas, switched by a GPIO illustration
Two antennas, switched by a GPIO
The XIAO ESP32C6 carries both an onboard ceramic antenna and a U.FL connector , and which one is live is decided by your firmware through an RF switch. Per Seeed's wiki : pull GPIO3 low to enable the RF switch control, then GPIO14 low selects the built-in antenna (the default) and GPIO14 high selects the external U.FL antenna . That makes range a software decision: prototype on the ceramic antenna, and if the device…

The XIAO ESP32C6 carries both an onboard ceramic antenna and a U.FL connector, and which one is live is decided by your firmware through an RF switch. Per Seeed's wiki: pull GPIO3 low to enable the RF switch control, then GPIO14 low selects the built-in antenna (the default) and GPIO14 high selects the external U.FL antenna.

That makes range a software decision: prototype on the ceramic antenna, and if the device ends up in a metal enclosure or far from the access point, solder nothing - just attach an antenna and flip two GPIOs at boot.

If range is disappointing, check you actually selected the antenna that's connected - transmitting on the U.FL setting with no antenna attached gives the worst of both worlds.

Three radios in one tiny board illustration
Three radios in one tiny board
Like every ESP32-C6, this board has a third radio beyond WiFi 6 and Bluetooth 5 LE : an IEEE 802.15.4 radio for Zigbee 3.0, Thread, and Matter-over-Thread . Seeed's wiki ships worked Zigbee examples for this exact board, and the general C6 toolchain applies - Arduino via the ESP32 core, ESP-IDF Zigbee/Thread SDKs, and ESPHome with OpenThread support. Combined with the battery circuit below, this is a natural…

Like every ESP32-C6, this board has a third radio beyond WiFi 6 and Bluetooth 5 LE: an IEEE 802.15.4 radio for Zigbee 3.0, Thread, and Matter-over-Thread. Seeed's wiki ships worked Zigbee examples for this exact board, and the general C6 toolchain applies - Arduino via the ESP32 core, ESP-IDF Zigbee/Thread SDKs, and ESPHome with OpenThread support.

Combined with the battery circuit below, this is a natural board for Zigbee/Thread sensors that live on the mesh instead of crowding your 2.4 GHz WiFi.

No USB-serial chip - Serial needs USB CDC illustration
No USB-serial chip - Serial needs USB CDC
Like the SuperMini-class boards, the XIAO C6 has no USB-to-serial converter chip - USB-C connects straight to the ESP32-C6's native USB. Two everyday consequences: Serial output: enable Tools → USB CDC On Boot → "Enabled" in Arduino IDE, or Serial.print() goes to the UART pins instead of your serial monitor. Flashing: if the COM port never appears or an upload fails, hold BOOT while plugging in USB (or while tapping…

Like the SuperMini-class boards, the XIAO C6 has no USB-to-serial converter chip - USB-C connects straight to the ESP32-C6's native USB. Two everyday consequences:

  • Serial output: enable Tools → USB CDC On Boot → "Enabled" in Arduino IDE, or Serial.print() goes to the UART pins instead of your serial monitor.
  • Flashing: if the COM port never appears or an upload fails, hold BOOT while plugging in USB (or while tapping RESET) to force the ROM bootloader, then press RESET after flashing.

A crashed or deep-sleeping sketch takes the USB port down with it - normal for native-USB boards, not a broken board. The BOOT-button trick always recovers it.

Specifications

ESP32-C6 · 21 × 17.8 mm
Compute
MCU
ESP32-C6 · RISC-V
Clock
160 MHz
SRAM · Flash
512 KB · 4MB
Radio
Wi-Fi
802.11 ax b/g/n
Bluetooth
5.3 LE
Antenna
External
I/O
GPIO · ADC
11 · 3
UART · I²C · SPI
2 · 2 · 2
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
17.8 mm21 mm
21 × 17.8 mm · pin pitch 2.54 mm
The XIAO ESP32C6 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-C6 board we've measured.

At its core is the ESP32-C6 - a RISC-V part adding Wi-Fi 6 plus Thread/Zigbee radios.

Expect to pay about $10.00 - in line with other ESP32-C6 boards.

The small footprint costs pins: 11 GPIO are broken out, versus 20 or so on a full-size board.

Onboard you'll find Zigbee, battery charging via Solder pads, status LEDs (User, Charge) and Reset/Boot buttons.

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


The XIAO ESP32C6 is Seeed Studio's take on the ESP32-C6: a thumbnail-sized (21 x 17.5 mm) board with the C6's full radio set - WiFi 6, Bluetooth 5 LE, and an 802.15.4 radio for Zigbee, Thread, and Matter-over-Thread. Unlike the generic C6 boards in this class, it's a documented, branded product with a thorough wiki behind it.

Two hardware touches set it apart. First, a dual-antenna design: an onboard ceramic antenna plus a U.FL connector, selected at runtime by an RF switch on GPIO14. Second, real battery support: solder pads for a 3.7 V lithium cell with an onboard charging circuit and a charge-status LED.

The chip pairs a 160 MHz RISC-V core with a 20 MHz low-power core, 512 KB SRAM, and 4 MB flash (no PSRAM). Programming runs over USB-C through the C6's native USB - there's no separate serial chip.
  • Supports WiFi 6, Bluetooth 5, and Zigbee
  • Ultra-small size (21x17.5 mm)
  • Low power consumption with deep sleep support
  • Dual antenna - onboard ceramic plus external u.FL, selected via RF switch on GPIO14 (enable with GPIO3 low)

Where to buy

prices are typical street prices
XIAO ESP32C6
XIAO ESP32C6
$10.00per unit, typical
As an Amazon Associate, ESPboards earns from qualifying purchases.

Resources

Similar boards