

The XIAO ESP32C3 by Seeed Studio is a compact and powerful microcontroller board based on the ESP32-C3 chip. It features built-in Wi-Fi and Bluetooth Low Energy (BLE) capabilities, making it an excellent choice for Internet of Things (IoT) applications, smart devices, and wireless communication projects. Its small form factor and low power consumption make it ideal for portable and space-constrained designs.








Below are the key technical details of the XIAO ESP32C3:
| Specification | Details |
|---|---|
| Microcontroller | ESP32-C3 RISC-V single-core processor |
| Clock Speed | Up to 160 MHz |
| Flash Memory | 4 MB |
| SRAM | 400 KB |
| Wireless Connectivity | Wi-Fi 802.11 b/g/n (2.4 GHz), Bluetooth 5.0 Low Energy (BLE) |
| Operating Voltage | 3.3V |
| Input Voltage Range | 5V (via USB-C) |
| GPIO Pins | 11 (including ADC, PWM, I2C, SPI, UART) |
| ADC Resolution | 12-bit |
| Interfaces | UART, I2C, SPI, GPIO, ADC, PWM |
| USB Interface | USB-C (supports programming and power supply) |
| Dimensions | 21 x 17.5 mm |
| Power Consumption | Ultra-low power consumption in deep sleep mode |
| Operating Temperature | -40°C to 85°C |
The XIAO ESP32C3 has 11 GPIO pins, each with multiple functions. Below is the pinout description:
| Pin | Name | Function(s) | Description |
|---|---|---|---|
| 1 | 3V3 | Power | 3.3V output |
| 2 | GND | Ground | Ground pin |
| 3 | D0 | GPIO0, ADC1_CH0, UART_TXD | General-purpose I/O, ADC, UART TX |
| 4 | D1 | GPIO1, ADC1_CH1, UART_RXD | General-purpose I/O, ADC, UART RX |
| 5 | D2 | GPIO2, ADC1_CH2, I2C_SDA | General-purpose I/O, ADC, I2C data line |
| 6 | D3 | GPIO3, ADC1_CH3, I2C_SCL | General-purpose I/O, ADC, I2C clock line |
| 7 | D4 | GPIO4, PWM | General-purpose I/O, PWM |
| 8 | D5 | GPIO5, PWM | General-purpose I/O, PWM |
| 9 | D6 | GPIO6, SPI_MOSI | General-purpose I/O, SPI data out |
| 10 | D7 | GPIO7, SPI_MISO | General-purpose I/O, SPI data in |
| 11 | D8 | GPIO8, SPI_SCK | General-purpose I/O, SPI clock |
Powering the Board:
Programming the Board:
Connecting Peripherals:
Below is an example of using the XIAO ESP32C3 to blink an LED connected to GPIO4 (D4):
// Define the GPIO pin for the LED
const int ledPin = 4; // D4 corresponds to GPIO4
void setup() {
// Initialize the LED pin as an output
pinMode(ledPin, OUTPUT);
}
void loop() {
// Turn the LED on
digitalWrite(ledPin, HIGH);
delay(1000); // Wait for 1 second
// Turn the LED off
digitalWrite(ledPin, LOW);
delay(1000); // Wait for 1 second
}
The following code connects the XIAO ESP32C3 to a Wi-Fi network:
#include <WiFi.h>
// Replace with your network credentials
const char* ssid = "Your_SSID";
const char* password = "Your_PASSWORD";
void setup() {
Serial.begin(115200); // Initialize serial communication
WiFi.begin(ssid, password); // Start Wi-Fi connection
// Wait for the connection to establish
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWi-Fi connected!");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP()); // Print the assigned IP address
}
void loop() {
// Add your main code here
}
Board Not Detected by Arduino IDE:
Wi-Fi Connection Fails:
GPIO Pin Not Working:
Overheating or Power Issues:
Can I power the XIAO ESP32C3 with a battery?
Yes, you can use a 3.7V LiPo battery with a voltage regulator to supply 3.3V to the 3V3 pin.
Does the board support OTA updates?
Yes, the ESP32-C3 supports Over-The-Air (OTA) firmware updates.
Can I use the XIAO ESP32C3 with MicroPython?
Yes, the board is compatible with MicroPython. You can flash the MicroPython firmware to use it.
What is the maximum current output of the GPIO pins?
Each GPIO pin can source or sink up to 40 mA, but it is recommended to stay below 20 mA for safe operation.