MakerLab
ESP32Seeed XIAO ESP32-C3

Seeed XIAO ESP32-C3: Tiny ESP32 Powerhouse for Makers

The Seeed XIAO ESP32-C3 is a compact, low-power development board featuring the RISC-V based ESP32-C3 chip, ideal for IoT projects and wearable applications.

Seeed XIAO ESP32-C3

The Seeed XIAO ESP32-C3 is a miniature development board designed for makers and embedded systems enthusiasts who need a powerful yet tiny microcontroller. It's part of Seeed Studio's popular XIAO series, known for its small form factor and rich features, making it perfect for projects where space is a critical constraint, such as wearables, compact sensor nodes, or even integrated into existing devices.

At its core, the XIAO ESP32-C3 is powered by the Espressif ESP32-C3FN4 System-on-Chip (SoC). This chip is a significant departure from the Xtensa-based ESP32 chips, featuring a single-core 32-bit RISC-V processor. The ESP32-C3 integrates Wi-Fi 4 (802.11b/g/n) and Bluetooth 5 (LE) connectivity, making it a versatile choice for IoT applications. It also includes a range of peripherals and security features, such as a hardware cryptographic accelerator, making it suitable for secure connected devices.

Compared to other ESP32 variants, the ESP32-C3 focuses on a balance of performance, power efficiency, and cost, particularly for single-core applications. It offers a compelling alternative for developers looking for the Espressif ecosystem's robust software support (like ESP-IDF, Arduino, and MicroPython) in a more power-conscious and cost-effective package than its dual-core predecessors. Its small size and USB-C interface further enhance its usability for rapid prototyping and deployment.

This board is particularly well-suited for makers and students interested in learning about IoT development, wireless communication, and embedded programming with a modern RISC-V architecture. Its ease of use with popular development environments like the Arduino IDE and CircuitPython makes it accessible for beginners, while its integrated Wi-Fi and Bluetooth capabilities allow for more advanced projects involving remote monitoring, control, and data logging.

Watch

Related video, embedded from YouTube.

Specifications

Microcontroller / SoCEspressif ESP32-C3FN4
Architecture32-bit RISC-V single-core processor
Clock speedUp to 160 MHz
Flash / Storage4MB (typically) integrated flash
RAM / SRAM400KB SRAM (including 320KB of SRAM, 8KB of RTC SRAM, and 16KB of Cache SRAM)
Operating voltage3.3V
Digital I/O pins15 (configurable as GPIO)
Analog / ADC4 x 12-bit SAR ADCs
PWMUp to 6 channels (available on most GPIOs)
ConnectivityWi-Fi 802.11b/g/n (2.4 GHz), Bluetooth 5 (LE)
USBUSB Type-C for power and programming
Power inputUSB Type-C (5V), VIN pin (5V-6V recommended, check board specifics for max)
Dimensions14 x 17 mm

Pinout & pin functions

PinFunction
3V33.3V Power Output
GNDGround
IO0GPIO0 (Boot mode select, Input only)
IO1GPIO1 (UART0 TX)
IO2GPIO2 (ADC1 CH0, Touch Sensor 0)
IO3GPIO3 (UART0 RX)
IO4GPIO4 (SPI2 CS0, Touch Sensor 1)
IO5GPIO5 (SPI2 SCK, Touch Sensor 2)
IO6GPIO6 (SPI2 MOSI, Touch Sensor 3)
IO7GPIO7 (SPI2 MISO, Touch Sensor 4)
IO8GPIO8 (I2C0 SDA, Touch Sensor 5)
IO9GPIO9 (I2C0 SCL, Touch Sensor 6)
IO10GPIO10 (SPI1 CS0)
IO11GPIO11 (SPI1 SCK)
IO12GPIO12 (SPI1 MOSI)
IO13GPIO13 (SPI1 MISO)
IO18GPIO18 (ADC1 CH1, Touch Sensor 7)
IO19GPIO19 (ADC1 CH2, Touch Sensor 8)
IO20GPIO20 (ADC1 CH3, Touch Sensor 9)
IO21GPIO21 (DAC Output, Touch Sensor 10)
IO22GPIO22 (PWM Channel 0)
IO23GPIO23 (PWM Channel 1)
IO24GPIO24 (PWM Channel 2)
IO25GPIO25 (PWM Channel 3)
IO26GPIO26 (PWM Channel 4)
IO27GPIO27 (PWM Channel 5)
RSTReset Pin (Active low)
ENEnable Pin (Active high, typically connected to RST)

Wiring & circuit basics

Powering the Seeed XIAO ESP32-C3 is straightforward thanks to its USB Type-C port, which accepts a standard 5V supply. You can also power it via the VIN pin, typically rated for 5V to 6V (always check the specific board's documentation for maximum input voltage to avoid damage). The board has an onboard 3.3V voltage regulator, so connecting a 5V source will provide the necessary 3.3V for the ESP32-C3 chip and its peripherals. For projects requiring battery power, ensure your battery output is regulated to 5V or less, or use the VIN pin with an appropriate voltage.

All digital I/O pins on the XIAO ESP32-C3 operate at 3.3V logic levels. This is crucial when interfacing with external components. Connecting a 5V device directly to a GPIO pin can damage the microcontroller. If you need to connect a 5V device, use a logic level shifter to convert the voltage down to 3.3V. Conversely, if you are using a 3.3V sensor with a 5V microcontroller, you would typically use a level shifter to boost the voltage to 5V.

For example, to blink an LED, connect the anode (longer leg) of an LED to a digital GPIO pin (e.g., IO22). Connect the cathode (shorter leg) of the LED to one end of a current-limiting resistor (typically 220-470 ohms). Connect the other end of the resistor to a GND pin. When the GPIO pin is set HIGH (3.3V), current flows through the resistor and LED, illuminating it. For an I2C sensor, you would connect the sensor's SDA pin to the board's IO8 (I2C0 SDA) and the sensor's SCL pin to the board's IO9 (I2C0 SCL). Remember to also connect the sensor's VCC to 3.3V and GND to a GND pin on the XIAO.

Programming & getting started

The Seeed XIAO ESP32-C3 is highly versatile in its programming options. It's fully supported by the Arduino IDE, allowing you to leverage a vast library of existing Arduino code. To get started, you'll need to install the ESP32 board support package in the Arduino IDE. Navigate to File > Preferences, add 'https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json' to the Additional Boards Manager URLs, then go to Tools > Board > Boards Manager, search for 'esp32', and install it. Select your XIAO ESP32-C3 from Tools > Board. For MicroPython, you can download the appropriate firmware from the MicroPython website and flash it using a tool like esptool.py or the Thonny IDE.

To upload your first program (a 'Blink' sketch), connect the XIAO ESP32-C3 to your computer via USB. Select the correct board (e.g., 'Seeed XIAO ESP32C3') and COM port in the Arduino IDE. Write or paste a simple Blink sketch (e.g., `digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay(1000);` - note that the built-in LED might be mapped to a specific GPIO, check board documentation if unsure). Click the Upload button. The IDE will compile the code and flash it to the board. You may need to press the BOOT button (or IO0) during upload if the auto-detect fails.

Project ideas

Smart Home Sensor NodeCreate a compact sensor node using the XIAO ESP32-C3 to monitor temperature, humidity, or air quality. It can wirelessly send data via Wi-Fi to a home automation system or cloud platform, teaching about IoT data transmission and sensor integration.
Wearable Fitness TrackerBuild a small wearable device that tracks steps using an accelerometer and heart rate using a pulse sensor. The XIAO's size is perfect for this, and its Bluetooth LE can send data to a smartphone app, learning about motion sensing and low-power wireless communication.
Bluetooth Low Energy BeaconProgram the XIAO ESP32-C3 to act as a BLE beacon, broadcasting custom messages or device information. This project is excellent for understanding the fundamentals of Bluetooth Low Energy advertising and its applications in proximity sensing or asset tracking.
Wi-Fi Connected LED ControllerDevelop a web server on the XIAO ESP32-C3 that allows you to control an LED (or multiple LEDs) wirelessly from any device on your local network. This project teaches about web servers, HTTP requests, and Wi-Fi networking.
Gesture Controlled Robot ArmUse the onboard accelerometer and gyroscope to detect hand gestures, and have the XIAO ESP32-C3 control a small servo-driven robot arm via PWM signals. This combines motion sensing with actuator control for interactive robotics.
Low Power Environmental MonitorDesign a battery-powered device that wakes up periodically, takes sensor readings (e.g., temperature, light), sends them over Wi-Fi, and then goes back to deep sleep. This project emphasizes power management techniques essential for long-life IoT devices.

Buying tips & gotchas

When purchasing the Seeed XIAO ESP32-C3, ensure you are buying from reputable distributors to avoid counterfeit or faulty units. Be aware that while the ESP32-C3 is powerful, it's a single-core RISC-V chip, so it may not be suitable for highly computationally intensive tasks that benefit from dual-core Xtensa processors found in other ESP32 variants. Always double-check the pinout diagram for your specific board revision, as minor variations can occur. For best results, use a high-quality USB cable, especially for programming and stable power delivery. Consider accessories like small breadboards or JST connectors if you plan on extensive prototyping or battery integration.