Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use XIAO ESP32 C3: Examples, Pinouts, and Specs

Image of XIAO ESP32 C3
Cirkit Designer LogoDesign with XIAO ESP32 C3 in Cirkit Designer

Introduction

The XIAO ESP32 C3 is a compact and powerful microcontroller board developed by Seeed Studio, featuring the ESP32-C3 chip. This board is designed for IoT (Internet of Things) applications, offering built-in Wi-Fi and Bluetooth Low Energy (BLE) capabilities. Its small form factor and robust wireless connectivity make it an excellent choice for projects requiring efficient communication and minimal space.

Explore Projects Built with XIAO ESP32 C3

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Xiao ESP32 C3 Based Temperature and Humidity Monitoring System
Image of DHT-11: A project utilizing XIAO ESP32 C3 in a practical application
This circuit features a Xiao ESP32 C3 microcontroller connected to a DHT11 Humidity and Temperature Sensor. The ESP32 C3 provides power to the DHT11 sensor through its VUSB pin and receives data from the sensor's DATA pin via the ESP32's D2 pin. The circuit is designed to measure environmental temperature and humidity, with the microcontroller processing and potentially communicating the sensor data.
Cirkit Designer LogoOpen Project in Cirkit Designer
Xiao ESP32 C3 and Adafruit RFM9x LoRa Radio Communication Module
Image of LoRa: A project utilizing XIAO ESP32 C3 in a practical application
This circuit connects a Xiao ESP32 C3 microcontroller to an Adafruit RFM9x LoRa Radio module. The ESP32 C3 provides power to the LoRa module and interfaces with it using SPI communication (SCK, MISO, MOSI, CS) and control lines (RST, DIO0). This setup is likely intended for wireless communication using LoRa technology, with the ESP32 handling data processing and network protocol tasks.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32C3 and LoRa-Enabled Environmental Sensing Node
Image of temperature_KA: A project utilizing XIAO ESP32 C3 in a practical application
This circuit features an ESP32C3 Supermini microcontroller connected to a LORA_RA02 module and a DHT11 temperature and humidity sensor. The ESP32C3 handles communication with the LORA module via SPI (using GPIO05, GPIO06, GPIO10, and GPIO04 for MISO, MOSI, NSS, and SCK respectively) and GPIO01 and GPIO02 for additional control signals. The DHT11 sensor is interfaced through GPIO03 for data reading, and all components share a common power supply through the 3.3V and GND pins.
Cirkit Designer LogoOpen Project in Cirkit Designer
Xiao ESP32 C3 and ADS1115-Based Light Intensity Data Logger
Image of Thesis Project: A project utilizing XIAO ESP32 C3 in a practical application
This circuit features a Xiao ESP32 C3 microcontroller interfaced with an Adafruit ADS1115 16-bit ADC via I2C for reading analog signals from a phototransistor. The phototransistor's output is conditioned by a resistor and fed into the ADC, which converts the light intensity into a digital signal. The ESP32 C3 reads the ADC values and outputs the readings to the serial monitor, allowing for light intensity monitoring.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with XIAO ESP32 C3

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of DHT-11: A project utilizing XIAO ESP32 C3 in a practical application
Xiao ESP32 C3 Based Temperature and Humidity Monitoring System
This circuit features a Xiao ESP32 C3 microcontroller connected to a DHT11 Humidity and Temperature Sensor. The ESP32 C3 provides power to the DHT11 sensor through its VUSB pin and receives data from the sensor's DATA pin via the ESP32's D2 pin. The circuit is designed to measure environmental temperature and humidity, with the microcontroller processing and potentially communicating the sensor data.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of LoRa: A project utilizing XIAO ESP32 C3 in a practical application
Xiao ESP32 C3 and Adafruit RFM9x LoRa Radio Communication Module
This circuit connects a Xiao ESP32 C3 microcontroller to an Adafruit RFM9x LoRa Radio module. The ESP32 C3 provides power to the LoRa module and interfaces with it using SPI communication (SCK, MISO, MOSI, CS) and control lines (RST, DIO0). This setup is likely intended for wireless communication using LoRa technology, with the ESP32 handling data processing and network protocol tasks.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of temperature_KA: A project utilizing XIAO ESP32 C3 in a practical application
ESP32C3 and LoRa-Enabled Environmental Sensing Node
This circuit features an ESP32C3 Supermini microcontroller connected to a LORA_RA02 module and a DHT11 temperature and humidity sensor. The ESP32C3 handles communication with the LORA module via SPI (using GPIO05, GPIO06, GPIO10, and GPIO04 for MISO, MOSI, NSS, and SCK respectively) and GPIO01 and GPIO02 for additional control signals. The DHT11 sensor is interfaced through GPIO03 for data reading, and all components share a common power supply through the 3.3V and GND pins.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Thesis Project: A project utilizing XIAO ESP32 C3 in a practical application
Xiao ESP32 C3 and ADS1115-Based Light Intensity Data Logger
This circuit features a Xiao ESP32 C3 microcontroller interfaced with an Adafruit ADS1115 16-bit ADC via I2C for reading analog signals from a phototransistor. The phototransistor's output is conditioned by a resistor and fed into the ADC, which converts the light intensity into a digital signal. The ESP32 C3 reads the ADC values and outputs the readings to the serial monitor, allowing for light intensity monitoring.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • IoT devices and smart home automation
  • Wearable technology
  • Wireless sensor networks
  • Remote monitoring and control systems
  • Prototyping for Wi-Fi and BLE-enabled devices

Technical Specifications

Below are the key technical details of the XIAO ESP32 C3:

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 LE
Operating Voltage 3.3V
Input Voltage 5V (via USB-C)
GPIO Pins 11 (including ADC, PWM, I2C, SPI, UART)
ADC Resolution 12-bit
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 (as low as 5 µA)
Operating Temperature -40°C to 85°C

Pin Configuration and Descriptions

The XIAO ESP32 C3 features a total of 11 GPIO pins, which are multifunctional and can be configured for various purposes. Below is the pinout description:

Pin Name Function
1 3V3 3.3V power output
2 GND Ground
3 D0 GPIO0, ADC, UART TX
4 D1 GPIO1, ADC, UART RX
5 D2 GPIO2, ADC, PWM
6 D3 GPIO3, ADC, PWM
7 D4 GPIO4, ADC, PWM
8 D5 GPIO5, ADC, PWM
9 D6 GPIO6, ADC, PWM
10 D7 GPIO7, ADC, PWM
11 RST Reset pin

Usage Instructions

How to Use the XIAO ESP32 C3 in a Circuit

  1. Powering the Board:

    • Connect the board to a 5V power source using the USB-C port. The onboard voltage regulator will step down the voltage to 3.3V.
    • Alternatively, you can power the board directly via the 3V3 pin.
  2. Programming the Board:

    • Install the Arduino IDE and add the ESP32 board package by following the official ESP32 installation guide.
    • Select "XIAO ESP32C3" as the board in the Arduino IDE.
    • Connect the board to your computer via USB-C and upload your code.
  3. Connecting Peripherals:

    • Use the GPIO pins to connect sensors, actuators, or other peripherals. Ensure the voltage levels are compatible with the 3.3V logic of the board.
  4. Wireless Communication:

    • Use the built-in Wi-Fi and Bluetooth capabilities for wireless communication. Libraries such as WiFi.h and BLEDevice.h can be used for programming.

Important Considerations and Best Practices

  • Voltage Levels: Ensure all connected peripherals operate at 3.3V logic levels to avoid damaging the board.
  • Deep Sleep Mode: Utilize the deep sleep mode for battery-powered applications to minimize power consumption.
  • Pin Multiplexing: Be aware that some pins have multiple functions (e.g., ADC, PWM, UART). Configure them appropriately in your code.
  • Antenna Placement: Avoid placing metal objects near the onboard antenna to ensure optimal wireless performance.

Example Code for Arduino UNO Integration

Below is an example of using the XIAO ESP32 C3 to connect to a Wi-Fi network and send data to a server:

#include <WiFi.h> // Include the Wi-Fi library

// Replace with your network credentials
const char* ssid = "Your_SSID";
const char* password = "Your_PASSWORD";

void setup() {
  Serial.begin(115200); // Initialize serial communication
  delay(1000);

  // Connect to Wi-Fi
  Serial.print("Connecting to Wi-Fi");
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("\nWi-Fi connected!");
  Serial.print("IP Address: ");
  Serial.println(WiFi.localIP()); // Print the device's IP address
}

void loop() {
  // Add your main code here
}

Troubleshooting and FAQs

Common Issues and Solutions

  1. Board Not Detected by Arduino IDE:

    • Ensure the correct board and port are selected in the Arduino IDE.
    • Install the latest ESP32 board package in the Arduino IDE.
  2. Wi-Fi Connection Fails:

    • Double-check the SSID and password in your code.
    • Ensure the Wi-Fi network is operating on the 2.4 GHz band (not 5 GHz).
  3. Power Issues:

    • Verify that the power source provides sufficient current (at least 500 mA).
    • Check the USB cable for any damage or poor quality.
  4. Code Upload Fails:

    • Press and hold the reset button while uploading the code to force the board into bootloader mode.

FAQs

Q: Can I use the XIAO ESP32 C3 with a 5V sensor?
A: No, the XIAO ESP32 C3 operates at 3.3V logic levels. Use a level shifter to interface with 5V sensors.

Q: How do I enable deep sleep mode?
A: Use the esp_deep_sleep_start() function in your code to put the board into deep sleep mode.

Q: Is the XIAO ESP32 C3 compatible with MicroPython?
A: Yes, the XIAO ESP32 C3 supports MicroPython. You can flash the MicroPython firmware to the board and use it for programming.

Q: Can I use the board for Bluetooth communication?
A: Yes, the XIAO ESP32 C3 supports Bluetooth 5.0 LE. Use the BLEDevice.h library for Bluetooth programming.