Seeed XIAO ESP32-S3: A Tiny Powerhouse for IoT Projects
The Seeed XIAO ESP32-S3 is a compact, feature-rich development board perfect for makers and engineers seeking powerful wireless connectivity and processing in a small form factor.
The Seeed XIAO ESP32-S3 is a miniature development board designed for ease of use and powerful performance, making it an excellent choice for a wide range of embedded projects, especially those requiring wireless communication. It's part of Seeed Studio's popular XIAO series, known for its small size and integrated features.
At its heart is the Espressif ESP32-S3 chip, a dual-core Tensilica LX7 microcontroller that offers significant improvements over previous ESP32 generations. The ESP32-S3 boasts Wi-Fi and Bluetooth 5 (LE) connectivity, a vector instruction extension for AI acceleration, and a generous amount of on-chip memory, making it suitable for more demanding applications like on-device machine learning and complex sensor data processing.
This board represents a step up in performance and features from earlier ESP32-based XIAO boards, offering enhanced processing power and AI capabilities. It's ideal for makers who have outgrown simpler microcontrollers and need a compact solution with robust wireless features for IoT projects, wearables, smart home devices, and even portable gaming or AI-driven applications.
With its extensive GPIO, multiple communication interfaces, and support for popular development environments like Arduino IDE and MicroPython, the XIAO ESP32-S3 lowers the barrier to entry for advanced embedded development. Its small footprint and USB-C interface further simplify integration into prototypes and final products.
Watch
Related video, embedded from YouTube.
Specifications
| Microcontroller / SoC | Espressif ESP32-S3-MINI-1 |
| Architecture | Dual-core Tensilica LX7 |
| Clock speed | Up to 240 MHz |
| Flash / Storage | 8 MB external SPI Flash |
| RAM / SRAM | 512 KB SRAM (internal) + 16 MB PSRAM (external) |
| Operating voltage | 3.3V |
| Digital I/O pins | 21 (usable) |
| Analog / ADC | 14-channel 12-bit ADC |
| PWM | All GPIO pins support PWM |
| Connectivity | Wi-Fi 802.11 b/g/n, Bluetooth 5 (LE) |
| USB | USB Type-C (for power and programming) |
| Power input | 5V via USB-C, or 3.3V pin |
| Dimensions | 23.6 x 17.8 mm |
Pinout & pin functions
| Pin | Function |
|---|---|
| 3V3 | Power output (3.3V) |
| GND | Ground |
| EN | Enable pin (active high) |
| IO0 | Boot mode selection (low during boot to enter download mode) |
| IO1 | UART0 TXD |
| IO2 | UART0 RXD |
| IO3 | SPI1 MOSI |
| IO4 | SPI1 MISO |
| IO5 | SPI1 SCK |
| IO6 | SPI1 CS |
| IO7 | I2C0 SDA |
| IO8 | I2C0 SCL |
| IO9 | ADC1 Channel 6 / Touch 6 |
| IO10 | ADC1 Channel 7 / Touch 7 |
| IO11 | ADC1 Channel 8 / Touch 8 |
| IO12 | ADC1 Channel 9 / Touch 9 |
| IO13 | ADC2 Channel 4 / Touch 4 |
| IO14 | ADC2 Channel 5 / Touch 5 |
| IO15 | ADC2 Channel 6 / Touch 6 |
| IO16 | ADC2 Channel 7 / Touch 7 |
| IO17 | ADC2 Channel 8 / Touch 8 |
| IO18 | ADC2 Channel 9 / Touch 9 |
| IO19 | I2C1 SDA |
| IO20 | I2C1 SCL |
| IO21 | SPI2 MOSI |
| IO22 | SPI2 MISO |
| IO23 | SPI2 SCK |
| IO24 | SPI2 CS |
| IO25 | DAC Channel 1 |
| IO26 | DAC Channel 2 |
| IO27 | ADC1 Channel 1 / Touch 1 |
| IO28 | ADC1 Channel 2 / Touch 2 |
| IO29 | ADC1 Channel 3 / Touch 3 |
| IO30 | ADC1 Channel 4 / Touch 4 |
| IO31 | ADC1 Channel 5 / Touch 5 |
| IO32 | ADC2 Channel 0 / Touch 0 |
| IO33 | ADC2 Channel 1 / Touch 1 |
| IO34 | ADC2 Channel 2 / Touch 2 |
| IO35 | ADC2 Channel 3 / Touch 3 |
| IO36 | GPIO (also used for USB D-) |
| IO37 | GPIO (also used for USB D+) |
| IO38 | GPIO |
| IO39 | GPIO |
Wiring & circuit basics
The Seeed XIAO ESP32-S3 operates at a logic level of 3.3V. Connecting 5V devices directly to its GPIO pins can cause damage. If you need to interface with 5V components, use a logic level converter or a voltage divider for inputs. Powering the board is straightforward via the USB-C port, which can supply 5V. Alternatively, you can power the board by applying a regulated 5V to the 3V3 pin or a regulated 3.3V directly to the 3V3 pin, though this bypasses the onboard regulator and is generally not recommended for beginners.
When connecting external components, always ensure they are compatible with the 3.3V logic level. For example, to blink an LED, connect the anode (longer leg) of the LED to a GPIO pin (e.g., IO23) and the cathode (shorter leg) to a current-limiting resistor (typically 220-330 ohms). The other end of the resistor connects to a GND pin. This configuration ensures that the LED receives the correct voltage and current, preventing damage to both the LED and the microcontroller.
For sensors, check their operating voltage and logic level requirements. Many I2C sensors, like the popular BME280 or MPU6050, operate at 3.3V and can be connected directly. For an I2C sensor, connect its VCC to the XIAO's 3V3 pin, GND to a GND pin, SDA to a designated I2C SDA pin (e.g., IO7), and SCL to a designated I2C SCL pin (e.g., IO8).
Programming & getting started
The Seeed XIAO ESP32-S3 is well-supported by multiple development environments. For beginners, the Arduino IDE is an excellent choice. After installing the ESP32 board support package in the Arduino IDE, you can select the 'Seeed XIAO ESP32S3' board from the board manager. Connect the XIAO via USB-C, select the correct COM port, and upload your sketch. MicroPython and CircuitPython are also excellent options for rapid prototyping, offering a Python-based programming experience. For more advanced users, Espressif's ESP-IDF framework provides the most control and access to the chip's full capabilities.
To upload your first program (e.g., a Blink sketch) using the Arduino IDE: 1. Install the ESP32 boards manager in Arduino IDE. 2. Select 'Seeed XIAO ESP32S3' as your board. 3. Connect the XIAO ESP32-S3 to your computer via USB-C. 4. Select the correct COM port. 5. Copy and paste a standard Blink sketch, modifying the LED pin to one of the available GPIOs (e.g., IO23). 6. Click the Upload button. The board will automatically enter bootloader mode for flashing.