The Seeed Studio XIAO ESP32S3(Sense) is a compact microcontroller board powered by the ESP32-S3 chip. It is specifically designed for IoT (Internet of Things) applications, offering built-in Wi-Fi and Bluetooth connectivity. This board also features integrated sensors, making it ideal for environmental monitoring, smart devices, and interactive projects. Its small form factor and powerful capabilities make it a versatile choice for both hobbyists and professionals.
Specification | Value |
---|---|
Microcontroller | ESP32-S3 (Xtensa® 32-bit LX7 dual-core) |
Clock Speed | Up to 240 MHz |
Flash Memory | 8 MB |
RAM | 512 KB SRAM + 2 MB PSRAM |
Connectivity | Wi-Fi 802.11 b/g/n, Bluetooth 5.0 |
Sensors | IMU (6-axis), Microphone |
Operating Voltage | 3.3V |
Input Voltage Range | 5V (via USB-C) |
GPIO Pins | 11 (including ADC, I2C, SPI, UART, PWM) |
Dimensions | 21 x 17.5 mm |
Pin Name | Type | Description |
---|---|---|
3V3 | Power | 3.3V output for powering external components |
GND | Ground | Ground connection |
D0 | GPIO | General-purpose I/O, supports ADC and PWM |
D1 | GPIO | General-purpose I/O, supports ADC and PWM |
D2 | GPIO | General-purpose I/O, supports ADC and PWM |
D3 | GPIO | General-purpose I/O, supports ADC and PWM |
D4 | GPIO | General-purpose I/O, supports ADC and PWM |
RX | UART RX | UART receive pin |
TX | UART TX | UART transmit pin |
SCL | I2C Clock | I2C clock line |
SDA | I2C Data | I2C data line |
Below is an example of how to use the XIAO ESP32S3(Sense) to read data from its onboard IMU sensor and send it to the serial monitor.
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_LSM6DS33.h>
// Create an instance of the LSM6DS33 sensor
Adafruit_LSM6DS33 lsm6ds;
void setup() {
Serial.begin(115200); // Initialize serial communication at 115200 baud
while (!Serial) {
delay(10); // Wait for the serial connection to be established
}
// Initialize the I2C communication
if (!lsm6ds.begin_I2C()) {
Serial.println("Failed to initialize LSM6DS33 sensor!");
while (1) {
delay(10); // Stay in a loop if initialization fails
}
}
Serial.println("LSM6DS33 sensor initialized successfully!");
}
void loop() {
sensors_event_t accel, gyro, temp;
// Get sensor data
lsm6ds.getEvent(&accel, &gyro, &temp);
// Print accelerometer data
Serial.print("Accel X: "); Serial.print(accel.acceleration.x); Serial.print(" m/s^2, ");
Serial.print("Y: "); Serial.print(accel.acceleration.y); Serial.print(" m/s^2, ");
Serial.print("Z: "); Serial.print(accel.acceleration.z); Serial.println(" m/s^2");
// Print gyroscope data
Serial.print("Gyro X: "); Serial.print(gyro.gyro.x); Serial.print(" rad/s, ");
Serial.print("Y: "); Serial.print(gyro.gyro.y); Serial.print(" rad/s, ");
Serial.print("Z: "); Serial.print(gyro.gyro.z); Serial.println(" rad/s");
// Print temperature data
Serial.print("Temperature: "); Serial.print(temp.temperature); Serial.println(" °C");
delay(1000); // Wait 1 second before the next reading
}
Board Not Detected by Computer:
Code Upload Fails:
Wi-Fi or Bluetooth Not Working: