Seeed Studio XIAO ESP32-C6

board
Seeed Studio Datasheet ↗

Powered by Espressif's 160 MHz RISC-V ESP32-C6 with 512 KB HP SRAM, 16 KB LP SRAM, and 4 MB of XIP flash inside a shielded module, the Seeed Studio XIAO ESP32-C6 packs Wi-Fi 6, BLE 5.3, and 802.15.4 Matter/Thread/Zigbee into a 17.8×21.0 mm castellated 14-pin footprint. Eleven exposed 3.3 V GPIOs (D0–D10) map default I2C (D4/D5), UART0 (D6/D7), and SPI2 (D8–D10, D3) while supporting full GPIO Matrix remapping across UART, SPI, I2C, I2S, TWAI, and PWM. Three 12-bit 100 ksps SAR ADC inputs occupy D0–D2 alongside an SGM6029 3.3 V buck converter (700 mA) and SGM40567 LiPo charger. All I/Os are strictly non-5V-tolerant, and GPIO3/GPIO14 control the onboard/U.FL RF switch.

USB-C RST BOOT XIAO ESP32-C6 ANT U.FL 1 D0/A0 GPIO0 ADC1_CH0 Clock System UART PWM +4 GPIO0 ADC1_CH0 XTAL_32K_P LP_GPIO0 LP_UART_DTRN LEDC_CH0 2 D1/A1 GPIO1 ADC1_CH1 Clock System UART PWM +4 GPIO1 ADC1_CH1 XTAL_32K_N LP_GPIO1 LP_UART_DSRN LEDC_CH1 3 D2/A2 GPIO2 ADC1_CH2 SPI System UART PWM +4 GPIO2 ADC1_CH2 FSPIQ LP_GPIO2 LP_UART_RTSN LEDC_CH2 4 D3 GPIO21 System SPI PWM +4 GPIO21 SDIO_DATA1 FSPICS5 MCPWM0_1B SPI2_CS 5 D4 GPIO22 I2C0_SDA System PWM +2 GPIO22 SDIO_DATA2 MCPWM0_2A I2C0_SDA 6 D5 GPIO23 I2C0_SCL System PWM +2 GPIO23 SDIO_DATA3 MCPWM0_2B I2C0_SCL 7 D6 ! GPIO16 U0TXD SPI PWM +2 GPIO16 U0TXD FSPICS0 LEDC_CH4 8 D7 ! GPIO17 U0RXD SPI PWM +2 GPIO17 U0RXD FSPICS1 LEDC_CH5 9 D8 GPIO19 SPI2_SCK System SPI PWM +3 GPIO19 SDIO_CLK FSPICS3 MCPWM0_0B SPI2_SCK 10 D9 GPIO20 SPI2_MISO System SPI PWM +3 GPIO20 SDIO_DATA0 FSPICS4 MCPWM0_1A SPI2_MISO 11 D10 GPIO18 SPI2_MOSI System SPI PWM +3 GPIO18 SDIO_CMD FSPICS2 MCPWM0_0A SPI2_MOSI 12 3V3 ! 3V3_OUT 3V3_OUT 13 GND GND GND 14 5V ! VBUS_5V VBUS_5V

Onboard Peripherals & Internal Signals

USER LED (Yellow) GPIO
Chip Pad: GPIO15
Onboard yellow user LED near BOOT button (active LOW — drive GPIO15 LOW to illuminate)

Connected between 3V3 and GPIO15 through a current-limiting resistor; inverted polarity (LOW = ON, HIGH = OFF).

RF Switch Power (WIFI_ENABLE) System
Chip Pad: GPIO3
Controls power to the onboard FM8625H RF antenna switch (drive LOW to enable RF switch)

Must be driven LOW (handled automatically by Arduino/ESP-IDF board support) to power the FM8625H RF switch; driving HIGH powers down the switch for ultra-low deep sleep (~15 µA).

RF Antenna Select (WIFI_ANT_CONFIG) System
Chip Pad: GPIO14
Selects between onboard ceramic antenna (LOW, default) and external U.FL antenna (HIGH)

When GPIO3 is LOW, setting GPIO14 LOW routes 2.4 GHz RF to the onboard ceramic chip antenna; setting GPIO14 HIGH routes RF to the U.FL coaxial connector.

BOOT Button System
Chip Pad: GPIO9
Top-right micro push-button pulling GPIO9 LOW to enter USB Download Boot mode

Hold BOOT while pressing RST (or plugging in USB-C) to force ROM serial/USB bootloader mode.

RESET Button System
Chip Pad: CHIP_PU
Top-left micro push-button pulling EN (CHIP_PU) LOW to hardware-reset the ESP32-C6

Momentary tactile switch positioned to the left of the USB Type-C receptacle.

USB-C Native Serial/JTAG USB
Chip Pad: GPIO12
GPIO12 (USB_D−) and GPIO13 (USB_D+) wired directly to top USB Type-C receptacle

Provides native Full-Speed USB CDC serial console, firmware flashing, and hardware JTAG debugging without an external UART bridge IC.

LiPo Battery Pads & Charger (BAT+ / BAT−) Power
Underside 3.7V LiPo solder pads managed by SGM40567 linear charger (~100 mA) + red CHG LED

Charges a single-cell 3.7V LiPo from 5V USB-C. Note that VBAT is NOT connected to an ADC pin by default; add an external 2× 200 kΩ divider to A0/A1/A2 if battery voltage monitoring is needed.

Bottom JTAG & Strapping Test Pads Debug
Chip Pad: GPIO4
Underside SMD test pads exposing MTMS (GPIO4), MTDI (GPIO5), MTCK (GPIO6), MTDO (GPIO7), and GPIO8

Exposed as pogo-pin pads on the back of the PCB for factory programming, pad-level JTAG, or auxiliary low-power I/O.

Pin Assignment Planner

Add the peripherals you need and plan the pin assignments

Full Pin Reference (14 Pins)

Pin # Label Type Functions Warnings & Notes
1 D0/A0 GPIO0 mixed GPIO0 ADC1_CH0 XTAL_32K_P LP_GPIO0 LP_UART_DTRN LEDC_CH0
XIAO D0 / Analog A0 (ESP32-C6 GPIO0, ADC1_CH0, LP_GPIO0, XTAL_32K_P)
2 D1/A1 GPIO1 mixed GPIO1 ADC1_CH1 XTAL_32K_N LP_GPIO1 LP_UART_DSRN LEDC_CH1
XIAO D1 / Analog A1 (ESP32-C6 GPIO1, ADC1_CH1, LP_GPIO1, XTAL_32K_N)
3 D2/A2 GPIO2 mixed GPIO2 ADC1_CH2 FSPIQ LP_GPIO2 LP_UART_RTSN LEDC_CH2
XIAO D2 / Analog A2 (ESP32-C6 GPIO2, ADC1_CH2, LP_GPIO2)
4 D3 GPIO21 digital GPIO21 SDIO_DATA1 FSPICS5 MCPWM0_1B SPI2_CS
XIAO D3 / Default Arduino SS (ESP32-C6 GPIO21, SDIO_DATA1)
5 D4 GPIO22 digital GPIO22 SDIO_DATA2 MCPWM0_2A I2C0_SDA
XIAO D4 / Default I2C SDA (ESP32-C6 GPIO22, SDIO_DATA2)
6 D5 GPIO23 digital GPIO23 SDIO_DATA3 MCPWM0_2B I2C0_SCL
XIAO D5 / Default I2C SCL (ESP32-C6 GPIO23, SDIO_DATA3)
7 D6 GPIO16 digital GPIO16 U0TXD FSPICS0 LEDC_CH4
[INFO] Default ROM bootloader UART0 TX output (toggles at 115200 baud during reset)
Outputs ROM boot log messages at power-up/reset unless muted via eFuse or GPIO8 strapping. Can be reassigned after boot via the GPIO Matrix.
Ref: ESP32-C6 Datasheet v1.6 §2.3.1, Table 2-4 & §3.3
XIAO D6 / Default UART0 TX (ESP32-C6 GPIO16, U0TXD)
8 D7 GPIO17 digital GPIO17 U0RXD FSPICS1 LEDC_CH5
[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.
Ref: ESP32-C6 Datasheet v1.6 §2.2, Table 2-1 & §2.3.1, Table 2-4
XIAO D7 / Default UART0 RX (ESP32-C6 GPIO17, U0RXD)
9 D8 GPIO19 digital GPIO19 SDIO_CLK FSPICS3 MCPWM0_0B SPI2_SCK
XIAO D8 / Default SPI SCK (ESP32-C6 GPIO19, SDIO_CLK)
10 D9 GPIO20 digital GPIO20 SDIO_DATA0 FSPICS4 MCPWM0_1A SPI2_MISO
XIAO D9 / Default SPI MISO (ESP32-C6 GPIO20, SDIO_DATA0)
11 D10 GPIO18 digital GPIO18 SDIO_CMD FSPICS2 MCPWM0_0A SPI2_MOSI
XIAO D10 / Default SPI MOSI (ESP32-C6 GPIO18, SDIO_CMD)
12 3V3 power 3V3_OUT
[CAUTION] Regulated 3.3V rail (max ~700 mA shared with ESP32-C6 radio)
Driven by the high-efficiency SGM6029 synchronous buck converter from 5V USB or single-cell LiPo battery.
Regulated 3.3V output from onboard SGM6029 buck converter (up to 700 mA total budget)
13 GND ground GND
System digital & analog ground (0V)
14 5V power VBUS_5V
[CAUTION] Unregulated 5V rail — NEVER connect directly to 3.3V D0–D10 GPIOs
Connected to USB-C VBUS via an isolation Schottky diode so external 5V input will not back-feed the USB host, but D0–D10 are strictly 3.3V-only!
5V VBUS power output from USB-C (via Schottky protection diode) or external 5V supply input