Reference
Seeed Studio XIAO ESP32S3 Pinout
The Seeed Studio XIAO ESP32S3 and Sense pin reference: every pin with its GPIO, camera, microphone and SD pins, power and battery, and the traps and pin conflicts in the documentation.
- ESP32-S3R8
- 240 MHz
- 8 MB flash
- 8 MB PSRAM
The Seeed Studio XIAO ESP32S3 is the S3 version of the XIAO family: the same 21 × 17.8 mm thumb-sized board, but with a dual-core ESP32-S3R8 at 240 MHz, 8 MB of flash, 8 MB of PSRAM and native USB. The Sense version adds a camera connector with a camera module, a digital microphone and a microSD slot on a plug-in expansion board. A Plus version exists with more pins and 16 MB of flash.
This guide covers the base board and the Sense. It lists every pin with its GPIO, the camera, microphone and SD pins, power and battery, flashing, code and the traps. The pin data comes from the Seeed Studio wiki, and the chip limits from the Espressif ESP32-S3 datasheet. The Seeed wiki contradicts itself in a few places, and this guide says where.
System-on-chip and board
The ESP32-S3R8 is a dual-core Xtensa LX7 chip at up to 240 MHz with Wi-Fi 4, Bluetooth 5 LE, native USB and a camera interface. The “R8” means 8 MB of PSRAM is stacked in the package. There is no classic Bluetooth, no 5 GHz Wi-Fi and no 802.15.4 radio.
| Item | Value |
|---|---|
| Chip | ESP32-S3R8, dual-core Xtensa LX7, up to 240 MHz |
| Memory | 8 MB PSRAM and 8 MB flash (Plus: 16 MB flash) |
| Wireless | Wi-Fi 802.11 b/g/n 2.4 GHz and Bluetooth 5 LE, with Bluetooth Mesh |
| Antenna | External, on a U.FL connector |
| USB | USB-C with native USB |
| Battery | Li-ion charger on board |
| Buttons | RESET and BOOT (GPIO0) |
| LEDs | Orange user LED on GPIO21 (active low), red charge LED |
| Size | 21 × 17.8 mm. The Sense with its expansion board is 15 mm high |
| Operating temperature | −20 to 65 °C (Seeed) |
The Sense expansion board
| Part | Details |
|---|---|
| Camera | OV5640 with autofocus (2592 × 1944) on current boards. Some boards ship with an OV3660 (2048 × 1536), and the OV2640 is discontinued |
| Microphone | Digital PDM, clock on GPIO42 and data on GPIO41 |
| microSD | Slot for a FAT card. CS on GPIO21, SCK GPIO7, MISO GPIO8, MOSI GPIO9 |
Source: Seeed Studio XIAO ESP32S3 wiki and the Espressif ESP32-S3 datasheet.
Getting started
Specifications
Board
| Input voltage | 5 V on USB-C, or a 3.7 V lithium cell on the battery pads |
| 3V3 output | Regulated, rated for 700 mA |
| Charging current | Fast and trickle values differ per model in the wiki table, so check the table for your board |
| Deep sleep (typical) | 14 µA on the base board, 3 mA on the Sense as listed, 33.5 µA on the Plus at 3.8 V |
| Interfaces | 1 UART, 1 I2C, 1 SPI, 11 PWM pins, 9 ADC channels (Plus: 2 UART, 2 SPI, 18 GPIOs) |
Chip limits (ESP32-S3 datasheet)
| Supply | 3.0 to 3.6 V, 3.3 V typical, absolute maximum 3.6 V |
| Cumulative output current | 1500 mA |
| Storage temperature | −40 to 150 °C |
Source: Seeed Studio wiki for the board, Espressif ESP32-S3 datasheet for the chip limits.
Dimensions
The base board is 21 × 17.8 mm. The Sense is 21 × 17.8 mm in plan and about 15 mm high with the expansion board and the camera. The expansion board plugs on with a board-to-board connector: slide it off sideways and do not pry it up, because that can damage the connector. The heat sink on the Sense blocks access to some pins. Check the Seeed drawing for hole and pad positions before you design a case.
Source: Seeed Studio XIAO ESP32S3 wiki.
Pin reference
| XIAO pin | GPIO | Function |
|---|---|---|
| D0 to D3 | GPIO1 to GPIO4 | ADC |
| D4, D5 | GPIO5, GPIO6 | I2C SDA, SCL |
| D6, D7 | GPIO43, GPIO44 | UART TX, RX |
| D8, D9, D10 | GPIO7, GPIO8, GPIO9 | SPI SCK, MISO, MOSI |
| D11, D12 | GPIO42, GPIO41 | Base and Sense. On the Sense these are the microphone pins |
| BOOT | GPIO0 | Hold at reset for the bootloader |
| USER LED | GPIO21 | Orange, active low. On the Sense GPIO21 is also the SD card CS |
Sense camera pins
| Camera signal | GPIO |
|---|---|
| XCLK | GPIO10 |
| PCLK | GPIO13 |
| VSYNC | GPIO38 |
| HREF | GPIO47 |
| SIOD (I2C data) | GPIO40 |
| SIOC (I2C clock) | GPIO39 |
| Data lines | GPIO11 to GPIO18 and GPIO48 |
The Seeed tables list GPIO21 twice on the Sense (user LED and SD CS), and GPIO41 and GPIO42 twice (D11 and D12, and the microphone). Check these before you wire. GPIO41 and GPIO42 (A11 and A12) cannot do ADC on the ESP32-S3, even though they are labeled analog.
Source: Seeed Studio XIAO ESP32S3 wiki.
Power and battery
- USB-C gives 5 V. The 5V pin outputs it, and it can be an input only with a diode between your source and the pin. On battery the 5V pin has no voltage.
- 3V3 is regulated and rated for 700 mA.
- Battery. Use a qualified 3.7 V lithium cell. The negative terminal goes on the side nearest the USB port. The red charge LED flashes while charging and goes out when the cell is full.
- Battery voltage. Only the Plus has a pin to read it (GPIO10, ADC_BAT). On the others, build a divider to an ADC pin.
- Heat. The Sense gets hot with the camera running. Seeed measured 63.6 °C on the back without a heat sink and 53.5 °C with the dual heat sink.
Programming
| Setting | Value |
|---|---|
| Arduino IDE | Install the esp32 board package 2.0.8 or newer and choose XIAO_ESP32S3 |
| PSRAM | Choose OPI PSRAM, needed for the camera frame buffers |
| Flash and partitions | 8 MB flash (16 MB on the Plus) |
| USB CDC On Boot | Enable it so Serial prints over USB |
| Upload | Hold BOOT while you plug in USB if the port does not appear |
Example code
A first sketch that blinks the user LED, which is active low:
void setup() {
pinMode(LED_BUILTIN, OUTPUT); // GPIO21, active low
}
void loop() {
digitalWrite(LED_BUILTIN, LOW); delay(500); // LED on
digitalWrite(LED_BUILTIN, HIGH); delay(500); // LED off
}
For the Sense camera, start from the CameraWebServer example in the esp32 board package and choose the XIAO ESP32S3 Sense camera model. I did not run these sketches on a board.
Tips
- Use the Sense only if you need the camera, microphone or SD, because the expansion board covers some pins.
- Use JPEG frames in PSRAM for the camera, and keep the frame size small for streaming.
- Give the board air: heat is the main problem on the Sense.
- Set the antenna before you test range.
- For battery projects use deep sleep, and remember the Sense draws about 3 mA in deep sleep as listed.
- Use the base board when you need all pins and a small footprint.
Real gotchas
- The strapping pins are GPIO0, GPIO3, GPIO45 and GPIO46. They are sampled at reset, so do not drive them with circuits that fight the boot.
- The user LED is active low. LOW turns it on.
- Pin conflicts on the Sense. GPIO21 is both the LED and the SD card CS, and GPIO41 and GPIO42 are D11 and D12 as well as the microphone. Do not use them for two things.
- A11 and A12 are not ADC pins. GPIO41 and GPIO42 do not support the ADC on the S3.
- The antenna is external. Attach it before you test.
- The camera module can differ. The Sense can ship with an OV5640, an OV3660 or (older) an OV2640. Pick the right model in the code.
- Do not pry the expansion board. Slide it sideways.
- The Plus has other pin numbers. D11 to D19 differ from the base board.
- Board package 2.0.8 or newer is required in the Arduino IDE.
Compared with other small boards
| Board | Chip | Memory | Extras | Size |
|---|---|---|---|---|
| XIAO ESP32S3 Sense | ESP32-S3, dual core | 8 MB flash, 8 MB PSRAM | Camera, microphone, SD | 21 × 17.8 mm |
| XIAO ESP32C3 | ESP32-C3, single core | 4 MB flash | None | 21 × 17.8 mm |
| ESP32-CAM | ESP32, dual core | 4 MB flash, 4 MB PSRAM | Camera, SD | 40 × 27 mm |
The numbers for the ESP32-CAM and the XIAO ESP32C3 come from their own guides and are not checked again here.
What to build with it
- A tiny Wi-Fi camera or doorbell with the Sense.
- A voice trigger with the PDM microphone.
- A small AI detector using the S3 vector instructions.
- A pocket data logger on the microSD slot.
- A BLE gadget with native USB.
Safety notes
Before you wire anything up
- Keep every GPIO at 3.3 V. The chip supply limit is 3.6 V.
- Use only a qualified 3.7 V lithium cell, with the right polarity, and never short the terminals.
- The Sense can become hot. Do not put it in a closed box without air, and do not touch it after a long stream.
- Never connect the board to mains voltage. Keep it on a low-voltage supply.
- Disconnect the power before you change the wiring.
Conclusion
The XIAO ESP32S3 gives you native USB and more compute than the XIAO ESP32C3 in the same tiny footprint, plus a real camera/microphone path on the Sense variant. For a full-size breakout with two USB-C ports instead, see the AI-S3.
Board data is from the Seeed Studio wiki and chip limits from the Espressif ESP32-S3 datasheet. The wiki has inconsistencies, which are named above.
More guides
Keep building.
From ESP32 HomeKit accessories to Arduino and ATtiny reference guides, there’s more where this came from.
All guides

