

The XIAO ESP32S3 by Seeed Studio is a compact and powerful microcontroller board built around the ESP32-S3 chip. It is specifically designed for IoT (Internet of Things) applications, offering built-in Wi-Fi and Bluetooth Low Energy (BLE) capabilities. With its small form factor and robust processing power, the XIAO ESP32S3 is ideal for projects requiring wireless connectivity, such as smart home devices, wearable electronics, and industrial IoT systems.








The XIAO ESP32S3 is packed with features that make it versatile and efficient for a wide range of applications. Below are its key technical details:
| Specification | Value |
|---|---|
| Microcontroller | ESP32-S3 (Xtensa® 32-bit LX7 dual-core) |
| Operating Voltage | 3.3V |
| Flash Memory | 8MB |
| PSRAM | 8MB |
| Wi-Fi Standard | 802.11 b/g/n (2.4 GHz) |
| Bluetooth | BLE 5.0 |
| GPIO Pins | 11 (including multifunctional pins) |
| ADC Resolution | 12-bit |
| Interfaces | I2C, SPI, UART, I2S, PWM |
| USB Interface | USB Type-C (supports programming and power) |
| Power Supply | 5V via USB Type-C or external battery |
| Dimensions | 21 x 17.5 mm |
The XIAO ESP32S3 features a total of 14 pins, including power, GPIO, and communication pins. Below is the pinout description:
| Pin Number | Pin Name | Functionality |
|---|---|---|
| 1 | 3V3 | 3.3V power output |
| 2 | GND | Ground |
| 3 | GPIO0 | General-purpose I/O, ADC, PWM |
| 4 | GPIO1 | General-purpose I/O, ADC, PWM |
| 5 | GPIO2 | General-purpose I/O, ADC, PWM |
| 6 | GPIO3 | General-purpose I/O, ADC, PWM |
| 7 | GPIO4 | General-purpose I/O, ADC, PWM |
| 8 | GPIO5 | General-purpose I/O, ADC, PWM |
| 9 | RX | UART Receive |
| 10 | TX | UART Transmit |
| 11 | SCL | I2C Clock |
| 12 | SDA | I2C Data |
| 13 | USB_DM | USB Data- (for programming and communication) |
| 14 | USB_DP | USB Data+ (for programming and communication) |
Powering the Board:
Programming the Board:
Connecting Peripherals:
Wireless Connectivity:
Below is an example of using the XIAO ESP32S3 to read data from a temperature sensor and send it to a smartphone via BLE:
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEUtils.h>
#include <BLE2902.h>
// Create a BME280 sensor object
Adafruit_BME280 bme;
// BLE service and characteristic UUIDs
#define SERVICE_UUID "12345678-1234-1234-1234-123456789abc"
#define CHARACTERISTIC_UUID "abcd1234-abcd-1234-abcd-123456789abc"
BLECharacteristic *pCharacteristic;
void setup() {
Serial.begin(115200);
// Initialize BME280 sensor
if (!bme.begin(0x76)) {
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1);
}
// Initialize BLE
BLEDevice::init("XIAO ESP32S3");
BLEServer *pServer = BLEDevice::createServer();
BLEService *pService = pServer->createService(SERVICE_UUID);
pCharacteristic = pService->createCharacteristic(
CHARACTERISTIC_UUID,
BLECharacteristic::PROPERTY_READ |
BLECharacteristic::PROPERTY_NOTIFY
);
pCharacteristic->addDescriptor(new BLE2902());
pService->start();
BLEAdvertising *pAdvertising = BLEDevice::getAdvertising();
pAdvertising->start();
}
void loop() {
// Read temperature from BME280
float temperature = bme.readTemperature();
// Send temperature data via BLE
char tempStr[8];
dtostrf(temperature, 6, 2, tempStr);
pCharacteristic->setValue(tempStr);
pCharacteristic->notify();
delay(1000); // Wait 1 second before sending the next reading
}
Board Not Detected by Arduino IDE:
Wi-Fi Connection Fails:
BLE Device Not Discoverable:
Overheating: