Skip to content
My Account

Reference

Seeed Studio XIAO ESP32C3 Pinout

The Seeed Studio XIAO ESP32C3 pin reference: every pin with its GPIO, strapping pins, power and battery, code, and the traps of a board with no user LED and an external antenna.

  • ESP32-C3
  • 160 MHz
  • 21 × 17.8 mm
  • Wi-Fi 4 + BLE 5
No ratings yet, be the first.

The Seeed Studio XIAO ESP32C3 is a thumb-sized ESP32-C3 board of only 21 × 17.8 mm, with USB-C, a battery charger and a U.FL connector for an external antenna. It trades pins for size: only 11 GPIOs are brought out, but it fits in wearables, small sensors and battery projects where a devkit is too big. It has no on-board user LED.

This guide covers every pin with its GPIO, the strapping pins, power and battery, how to flash it, code, and the traps that cost people an evening. The pin data comes from the Seeed Studio wiki, and the chip limits from the Espressif ESP32-C3 datasheet. Boards from clones may differ, so compare with your own silkscreen.

System-on-chip and board

The ESP32-C3 is a single-core 32-bit RISC-V chip at up to 160 MHz with Wi-Fi 4 (802.11 b/g/n) and Bluetooth 5 LE. There is no classic Bluetooth, no 5 GHz Wi-Fi, and no 802.15.4 radio, so Thread and Zigbee are not possible on this chip.

ItemValue
ChipESP32-C3, RISC-V single core, up to 160 MHz
Memory400 KB SRAM, 4 MB flash
WirelessWi-Fi 802.11 b/g/n 2.4 GHz and Bluetooth 5 LE
AntennaExternal, on a U.FL connector (the antenna is in the box)
USBUSB-C with built-in serial and JTAG
BatteryLi-ion charger on board, 3.7 V cell on the BAT pads
ButtonsRESET (on CHIP_EN) and BOOT (on GPIO9)
LEDsRed charge LED only, no user LED
Size21 × 17.8 mm, single-sided surface mount
Operating temperature−40 to 85 °C

Source: Seeed Studio XIAO ESP32C3 wiki and the Espressif ESP32-C3 datasheet.

Getting started

1. What you needThe XIAO ESP32C3, the antenna that comes in the box, a USB-C data cable (some cables are power-only) and an LED with a resistor, because there is no user LED.
2. Attach the antennaPress the U.FL antenna onto the connector at the bottom left before you power the board. Without it Wi-Fi and Bluetooth barely work.
3. Upload BlinkIn the Arduino IDE install the esp32 board package, choose XIAO_ESP32C3, wire an LED to D10 and upload Blink. Hold BOOT while you plug in USB if the port does not appear.

Specifications

Board

Input voltage5 V on USB, or a 3.7 V lithium cell on BAT
3V3 outputRegulated 3.3 V. The Seeed wiki gives both 500 mA and 700 mA, so plan for the lower value
Charging current380 mA fast, 40 mA trickle
Deep sleep currentAbout 43 to 44 µA
Active Wi-Fi currentAbout 75 mA
Modem-sleep, light-sleepAbout 25 mA and 4 mA with Wi-Fi
GPIO11 digital pins with PWM, 4 ADC inputs, 1 UART, 1 I2C, 1 SPI

Chip limits (ESP32-C3 datasheet)

Supply3.0 to 3.6 V, 3.3 V typical, absolute maximum 3.6 V on the supply pins
Current per GPIO20 mA (40 mA on GPIO18 and GPIO19, which are not on this board)
Cumulative output current1000 mA
Storage temperature−40 to 150 °C

Source: Seeed Studio wiki for the board, Espressif ESP32-C3 datasheet for the chip limits. The wiki contradicts itself on the 3V3 current and the sleep current, as noted.

Dimensions

The board is 21 × 17.8 mm and single-sided, so every component is on the top. The USB-C port is on one short edge and the U.FL connector next to it. The pads are on a 2.54 mm grid along both long edges, with the battery pads on the back. Seeed does not give a mounting-hole drawing in the text of the wiki, so check the Seeed drawing before you design a socket or case.

Source: Seeed Studio XIAO ESP32C3 wiki.

Pin reference

PinGPIOFunctionNotes
D0GPIO2ADC1_CH2Strapping pin. Wake-up capable
D1GPIO3ADC1_CH3Wake-up capable
D2GPIO4ADC1_CH4JTAG MTMS. Wake-up capable
D3GPIO5ADC2_CH0JTAG MTDI. ADC2: unreliable with Wi-Fi. Wake-up capable
D4GPIO6I2C SDAJTAG MTCK
D5GPIO7I2C SCLJTAG MTDO
D6GPIO21UART TXU0TXD
D7GPIO20UART RXU0RXD
D8GPIO8SPI SCKStrapping pin
D9GPIO9SPI MISOStrapping pin and BOOT button
D10GPIO10SPI MOSIFSPICS0

Power pins: 5V (USB VBUS), 3V3, GND. The battery pads are on the back. Only D0 to D3 can wake the chip from deep sleep.

Source: Seeed Studio XIAO ESP32C3 wiki.

Power and battery

  • USB-C gives 5 V. The 5V pin outputs VBUS, and it can also be used as an input, but only with a diode between your source and the pin.
  • 3V3 is regulated on board. It is an output for sensors, not an input for the chip.
  • Battery. Connect a 3.7 V lithium cell to the BAT pads, with the polarity as printed. The board charges it at 380 mA fast or 40 mA trickle. A short circuit on the battery terminals while you solder can be dangerous.
  • No battery pin. There is no pin that reads the battery voltage. Use a divider of two equal resistors (for example 200 kΩ) on A0, and average 16 samples, because the ADC full scale varies about 10 % between chips.
  • The charge LED. It shows charging, and with only USB connected and no battery it lights up and then goes out after a short while.

Programming

ItemSetting
Arduino IDEInstall the esp32 board package by Espressif and choose XIAO_ESP32C3
UploadPlug in the USB-C cable. If the port does not appear, hold BOOT, plug in, and release
SerialUSB CDC is built in. Enable USB CDC on boot if Serial prints nothing
ESP-IDF and PlatformIOTarget esp32c3, board seeed_xiao_esp32c3
After deep sleepThe serial port disappears while the chip sleeps, so reset the board to upload again

Example code

The board has no user LED, so wire an LED with a resistor of about 330 Ω from D10 to ground:

#define LED_PIN D10

void setup() {
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_PIN, HIGH); delay(500);
  digitalWrite(LED_PIN, LOW);  delay(500);
}

Read a battery divider on A0 with some averaging:

float readBattery() {
  uint32_t mv = 0;
  for (int i = 0; i < 16; i++) mv += analogReadMilliVolts(A0);
  return (mv / 16.0f) * 2.0f / 1000.0f;     // volt, divider of two equal resistors
}

I did not run these sketches on a board.

Tips

  • Attach the antenna first, and keep it away from metal.
  • Use D0 to D2 for analog input, and avoid D3 (ADC2) when Wi-Fi is on.
  • Use D4 and D5 for I2C, D8 to D10 for SPI, and D6 and D7 for a serial device.
  • For battery projects use deep sleep with a wake-up on D0 to D3, and cut the power to sensors with a GPIO.
  • Keep the board cool: it is small and gets warm in a closed box with Wi-Fi on.
  • Buy headers separately. They are not soldered on.

Real gotchas

  • The strapping pins are D0, D8 and D9 (GPIO2, GPIO8, GPIO9). Circuits that pull them to the wrong level at reset block the boot or the upload. D9 is also the BOOT button.
  • No user LED. There is no LED_BUILTIN. Wire your own, or the Blink example does nothing.
  • The antenna is not optional. The board has no printed antenna, only a U.FL connector. Without the antenna, range is almost nothing.
  • D3 is ADC2. ADC2 readings are unreliable once Wi-Fi is connected. Use D0 to D2 instead.
  • Only D0 to D3 wake the chip. Other pins cannot wake it from deep sleep.
  • The serial port vanishes in deep sleep. You may need to hold BOOT and reset to upload again.
  • Power-only cables. Some USB-C cables carry no data. If no port appears, change cable.
  • The 3V3 current is unclear. The Seeed wiki says 500 mA in one place and 700 mA in another. Keep the load well below that.
  • Diode on the 5V pin. To feed the board from the 5V pin, use a diode, otherwise you can feed 5 V back into the USB port.

Compared with other small boards

BoardChipMemoryGPIOsUser LEDNotes
XIAO ESP32C3ESP32-C3, 160 MHz4 MB11NoUSB-C, U.FL
XIAO ESP32S3ESP32-S3, 240 MHz dual8 MB flash, 8 MB PSRAM11Yes (Sense: camera)USB-C, U.FL

The numbers for the other boards come from their own guides and are not checked again here.

What to build with it

  • A tiny Wi-Fi sensor node in a small enclosure.
  • A wearable or a badge with a battery.
  • A HomeKit sensor, see ESP32 HomeKit development.
  • A BLE beacon with months of battery life using deep sleep.
  • A small remote that wakes on a button and sends a message.

Safety notes

Before you wire anything up

  • Keep every GPIO at 3.3 V. The chip supply limit is 3.6 V.
  • Use only a qualified 3.7 V lithium cell, with the right polarity, and never short the terminals.
  • Do not charge a lithium cell unattended.
  • Never connect the board to mains voltage. Keep it on a low-voltage supply.
  • Disconnect the power before you change the wiring.

Conclusion

The XIAO ESP32C3 fits where the AI-C3 or bare ESP32-C3-MINI-1 module is too big, at the cost of fewer breakout pins and no onboard LED. Need more GPIOs and native USB in a similarly small board? See the XIAO ESP32S3.

Board data is from the Seeed Studio wiki and chip limits from the Espressif ESP32-C3 datasheet.

Advertisement
All guides

More guides

Keep building.

From ESP32 HomeKit accessories to Arduino and ATtiny reference guides, there’s more where this came from.

All guides