XIAO ESP32S3 Sense

XIAO ESP32S3 with a snap-on expansion board adding an OV3660 camera, a PDM microphone and a microSD slot for vision and voice projects.

Our pick USB-C Native USB
XIAO ESP32S3 Sense board
21 × 17.8 mm
ESP32-S3
MCU
240MHz
clock
8MB
flash
512KB
SRAM
28· 18 ADC
GPIO
BLE 5.0+ WiFi
radio
On this page

XIAO ESP32S3 Sense Pinout

31 pins · 2.54 mm pitch
XIAO ESP32S3 Sense pinout diagram, high resolution: all 31 pins, with GPIO numbers, ADC channels and strapping pins
XIAO ESP32S3 Sense pinout, drawn by ESPboards from the ESP32-S3 Series Datasheet v2.2.
XIAO ESP32S3 Sense expansion board (camera, mic, microSD) pinout diagram, high resolution
XIAO ESP32S3 Sense expansion board (camera, mic, microSD) pinout, drawn by ESPboards from the ESP32-S3 Series Datasheet v2.2.
XIAO ESP32S3 Sense pinout diagramXIAO ESP32S3 Sense pinout diagram, second view
PinGPIOLabelsStatusCapabilitiesNotes
11D0A0GPIO1safeadc · touch · pwm
22D1A1GPIO2safeadc · touch · pwm
33D2A2GPIO3strappingadc · touch · pwm
44D3A3GPIO4safeadc · touch · pwm
55D4A4SDAGPIO5safeadc · touch · pwm · i2c
66D5A5SCLGPIO6safeadc · touch · pwm · i2c
743D6TXGPIO43uartuart · pwm
8-5Vpower-5V power input/output
9-GNDground-
10-3V3power-3.3V power
119D10A10MOSIGPIO9strappingadc · touch · pwm · spi
128D9A9MISOGPIO8safeadc · touch · pwm · spi
137D8A8SCKGPIO7safeadc · touch · pwm · spi
1444D7RXGPIO44uartuart · pwm
1510CAM_XMCLKGPIO10strappingadc · touch · pwmCamera XMCLK on the expansion board, via the B2B connector
1611CAM_Y8GPIO11strappingadc · touch · pwmCamera Y8 on the expansion board, via the B2B connector
1712CAM_Y7GPIO12strappingadc · touch · pwmCamera Y7 on the expansion board, via the B2B connector
1813CAM_PCLKGPIO13strappingadc · touch · pwmCamera PCLK on the expansion board, via the B2B connector
1914CAM_Y6GPIO14strappingadc · touch · pwmCamera Y6 on the expansion board, via the B2B connector
2015CAM_Y2GPIO15safeadc · pwmCamera Y2 on the expansion board, via the B2B connector
2116CAM_Y5GPIO16safeadc · pwmCamera Y5 on the expansion board, via the B2B connector
2217CAM_Y3GPIO17safeadc · pwmCamera Y3 on the expansion board, via the B2B connector
2318CAM_Y4GPIO18safeadc · pwmCamera Y4 on the expansion board, via the B2B connector
2438CAM_VSYNCGPIO38safepwmCamera VSYNC on the expansion board, via the B2B connector
2539CAM_SIOCGPIO39MTCKstrappingpwm · i2cCamera SIOC on the expansion board, via the B2B connector; also the MTCK/MTDO JTAG test pad on the back
2640CAM_SIODGPIO40MTDOstrappingpwm · i2cCamera SIOD on the expansion board, via the B2B connector; also the MTCK/MTDO JTAG test pad on the back
2747CAM_HREFGPIO47strappingpwmCamera HREF on the expansion board, via the B2B connector
2848CAM_Y9GPIO48strappingpwmCamera Y9 on the expansion board, via the B2B connector
2942PDM_CLKGPIO42MTMSstrappingpwmPDM microphone clock on the expansion board (cut JP1 to free it); also the MTMS test pad on the back
3041PDM_DATAGPIO41MTDIstrappingpwmPDM microphone data on the expansion board (cut JP2 to free it); also the MTDI test pad on the back
3121SD_CSGPIO21LED_BUILTINsafepwmUser LED on the main board, and the microSD chip select on the expansion board (R12 0R; the R11 option to D2 is not fitted)
Download the XIAO ESP32S3 Sense pinout Free to use and share for non-commercial work, as long as you credit espboards.dev. License.
28 GPIOs broken out 5 free · 23 need care · 0 to avoid

Start with these

5 pins with no boot or system involvement
D0GPIO1D1GPIO2D3GPIO4D4GPIO5D5GPIO6

Freely assignable - no strapping, flash, USB or JTAG duties. Ideal first picks for buttons, sensors and LEDs.

Fine - with a little care

23 pins · 7 things to know
D2GPIO3 Bootstrapping pin (controls JTAG signal source) Strapping

Sampled at reset to select JTAG interface (USB Serial/JTAG controller vs. external pins). Improper use can disable external JTAG or alter debug interface.

D6GPIO43 UART0 transmit pin (U0TXD), default serial console TX UART

Used for bootloader output and UART console logs. If repurposed, you will lose the default serial output (and programming via UART0).

D10GPIO9D9GPIO8D8GPIO7 Used by the microSD slot on the expansion board (shared SPI bus) onboard hardware

Wired to the microSD slot on the expansion board (shared SPI bus) on this board. The pin is yours if you give that up, but nothing else can share it.

  • D10
  • D9
  • D8
D7GPIO44 UART0 receive pin (U0RXD), default serial console RX UART

Used for bootloader input (download mode via serial). If repurposed, you cannot use the default UART0 download mode for programming the chip.

CAM_XMCLKGPIO10CAM_Y8GPIO11CAM_Y7GPIO12CAM_PCLKGPIO13CAM_Y6GPIO14CAM_Y2GPIO15CAM_Y5GPIO16CAM_Y3GPIO17CAM_Y4GPIO18CAM_VSYNCGPIO38CAM_SIOCGPIO39CAM_SIODGPIO40CAM_HREFGPIO47CAM_Y9GPIO48 Used by the camera on the expansion board onboard hardware

Wired to the camera on the expansion board on this board. The pin is yours if you give that up, but nothing else can share it.

  • CAM_XMCLKCamera XMCLK on the expansion board, via the B2B connector
  • CAM_Y8Camera Y8 on the expansion board, via the B2B connector
  • CAM_Y7Camera Y7 on the expansion board, via the B2B connector
  • CAM_PCLKCamera PCLK on the expansion board, via the B2B connector
  • CAM_Y6Camera Y6 on the expansion board, via the B2B connector
  • CAM_Y2Camera Y2 on the expansion board, via the B2B connector
  • CAM_Y5Camera Y5 on the expansion board, via the B2B connector
  • CAM_Y3Camera Y3 on the expansion board, via the B2B connector
  • CAM_Y4Camera Y4 on the expansion board, via the B2B connector
  • CAM_VSYNCCamera VSYNC on the expansion board, via the B2B connector
  • CAM_SIOCCamera SIOC on the expansion board, via the B2B connector; also the MTCK/MTDO JTAG test pad on the back
  • CAM_SIODCamera SIOD on the expansion board, via the B2B connector; also the MTCK/MTDO JTAG test pad on the back
  • CAM_HREFCamera HREF on the expansion board, via the B2B connector
  • CAM_Y9Camera Y9 on the expansion board, via the B2B connector
PDM_CLKGPIO42PDM_DATAGPIO41 Used by the PDM microphone on the expansion board onboard hardware

Wired to the PDM microphone on the expansion board on this board. The pin is yours if you give that up, but nothing else can share it.

  • PDM_CLKPDM microphone clock on the expansion board (cut JP1 to free it); also the MTMS test pad on the back
  • PDM_DATAPDM microphone data on the expansion board (cut JP2 to free it); also the MTDI test pad on the back
SD_CSGPIO21 User LED on the main board, and the microSD chip select on the expansion board (R12 0R; the R11 option to D2 is not fitted) onboard hardware

Wired to the user LED and the expansion board's microSD chip select on this board. The pin is yours if you give that up, but nothing else can share it.

These are recommendations, not hard rules - with the right pull-ups, timing and boot-state awareness most pins can be made to work. When in doubt, start green.

Across 31 pins (2.54 mm pitch), the XIAO ESP32S3 Sense exposes 28 GPIO plus 5V, GND and 3V3 for power.

For peripherals, I²C is mapped to SDA on GPIO5 and SCL on GPIO6; the SPI bus (MOSI, MISO, SCK) is broken out in full; TX/RX on GPIO43 and GPIO44 cover serial logging and flashing.

On the analog side there are 18 ADC-capable pins for sensors and battery monitoring, PWM on every GPIO and 14 capacitive-touch inputs.

If you want zero surprises, D0, D1, D3, D4 and 1 more are free of any such role - the safest first picks. 23 of the exposed pins carry boot-time or system duties on the ESP32-S3 (D2, D6, D10 and 20 more).

Getting started

flash your first firmware in ~2 minutes
Tool:
1
Connect over USB
Native USB - shows up as a port right away, no driver needed. Not detected? Hold BOOT while plugging in.
2
Match & flash
Set the Tools options shown, then click Upload.
3
Verify it runs
The onboard user LED on GPIO21 blinks.
Set these in Tools · leave everything else at default
Arduino IDE 2.x - Tools Copy
Board: "XIAO_ESP32S3"▸
USB CDC On Boot: "Enabled"▸
Flash Size: "8MB (64Mb)"▸
Flash Mode: "DIO"▸
PSRAM: "OPI PSRAM"▸
Partition Scheme: "Default with spiffs (3MB APP/1.5MB SPIFFS)" (default)▸
Upload Speed: "921600"▸
▸ every other Tools option - leave at default
Board: XIAO_ESP32S3
USB CDC On Boot: Enabled
Flash Size: 8MB (64Mb)
Flash Mode: DIO
PSRAM: OPI PSRAM
Partition Scheme: Default with spiffs (3MB APP/1.5MB SPIFFS)
Upload Speed: 921600
Find it: Tools ▸ Board ▸ ESP32 Arduino ▸ XIAO_ESP32S3
blink.ino Copy
// blink the onboard user LED
void setup() {
  pinMode(21, OUTPUT);
}
void loop() {
  digitalWrite(21, HIGH); delay(500);
  digitalWrite(21, LOW);  delay(500);
}
board to selectseeed_xiao_esp32s3⧉ copy
platformio.ini Copy
[env:xiao-esp32s3-sense]
platform = espressif32
board = seeed_xiao_esp32s3
framework = arduino
monitor_speed = 115200
upload_speed = 921600
board_build.arduino.memory_type = qio_opi
build_flags = -DBOARD_HAS_PSRAM
Find it: PlatformIO Home ▸ Boards, search seeed_xiao_esp32s3 - or type it after board =.
board to selectseeed_xiao_esp32s3⧉ copy
device.yaml Copy
esp32:
  board: seeed_xiao_esp32s3
  variant: esp32s3
  framework:
    type: esp-idf
psram:
  mode: octal
  speed: 80MHz

# blink - GPIO21
output:
  - platform: gpio
    pin: 21
    id: led_out
light:
  - platform: binary
    name: "LED"
    output: led_out
Find it: search ESPHome's board list for seeed_xiao_esp32s3 (same ids as PlatformIO).
esptool doesn't pick board settings - a prebuilt .bin already has them baked in. This is just the raw flash command.
terminal Copy
esptool.py --chip esp32s3 --port /dev/ttyACM0 \
  --baud 921600 write_flash 0x0 firmware.bin
--port = your /dev/tty* (macOS/Linux) or COMx (Windows).
Build details: sketch space 3342336 B · data 327680 B · DIO

Good to know

board-specific quirks worth 60 seconds
Where the camera, microphone and microSD actually sit illustration
Where the camera, microphone and microSD actually sit
Almost nothing the expansion board adds lands on the 14-pin header. Seeed's wiki documents that the camera "occupies 14 GPIOs of the ESP32-S3" - GPIO10 to GPIO18 plus GPIO38, GPIO39, GPIO40, GPIO47 and GPIO48 - and none of those are broken out, so the header pinout is identical to the plain XIAO ESP32S3. The PDM microphone sits on GPIO42 (clock) and GPIO41 (data), which reach the expansion board over the B2B…

Almost nothing the expansion board adds lands on the 14-pin header. Seeed's wiki documents that the camera "occupies 14 GPIOs of the ESP32-S3" - GPIO10 to GPIO18 plus GPIO38, GPIO39, GPIO40, GPIO47 and GPIO48 - and none of those are broken out, so the header pinout is identical to the plain XIAO ESP32S3. The PDM microphone sits on GPIO42 (clock) and GPIO41 (data), which reach the expansion board over the B2B connector rather than the header.

The microSD slot shares the board's SPI bus (D8 SCK, D9 MISO, D10 MOSI = GPIO7/8/9) and Seeed's own examples open it with SD.begin(21), i.e. chip select on GPIO21 (the pin that also drives the user LED). Seeed's pin table lists GPIO3, but the expansion board's schematic wires chip select to GPIO21 through R12 (0 ohm); the GPIO3 option (R11) is not fitted. Any other SPI device you add needs its own chip-select pin.

To find out which sensor is fitted, Seeed's camera sketch reads it back at runtime with esp_camera_sensor_get() and compares s->id.PID against OV3660_PID. In the ESP32 camera driver's sensor.h those constants are OV3660_PID = 0x3660 and OV2640_PID = 0x26.

Seeed's Round Display has its own microSD slot on the same bus: use chip select 21 for the Sense slot and D2 for the display's slot. The jumper Seeed calls J3 (JP3 on the expansion board's schematic) does not disconnect the slot: it switches the 3.3 V feed to the slot's pull-up resistors R4-R6. Seeed's camera tutorial adds a caveat: the Sense's pull-up resistors R4-R6 and the display's own pull-ups can stop the card from reading when both slots are fitted - cutting J3 is its fix.

Downloads

Free for non-commercial use, credit espboards.dev · License
XIAO ESP32S3 Sense board illustration, front

Board illustration

The bare XIAO ESP32S3 Sense board drawn to scale at 21 × 17.8 mm, with no pin labels on it. Made for slide decks, wiring diagrams and project write-ups where a photo is too busy. Take the scalable SVG for print or editing, the high-resolution PNG to drop straight in, or the transparent PNG when you need it with no background behind it.

XIAO ESP32S3 Sense pinout diagram

Pinout diagram

Every pin on both sides of the board with its functions, drawn by ESPboards from the ESP32-S3 Series Datasheet v2.2 - the same sheet shown at the top of this page. The PNG is a high-resolution image for screens, the SVG is vector so it stays sharp at any size, and the PDF is laid out to print on A4 or Letter.

Free for non-commercial use, with the credit line kept.

Embed the XIAO ESP32S3 Sense pinout

Paste this where you want the diagram. Keep the credit line - it is what the licence asks for, and it is the only thing we want in return.

<figure>
  <img src="https://cdn.espboards.net/boards/xiao-esp32s3-sense/diagram-1600.png"
       alt="XIAO ESP32S3 Sense pinout diagram" width="1600" loading="lazy">
  <figcaption>
    XIAO ESP32S3 Sense pinout by
    <a href="https://www.espboards.dev/esp32/xiao-esp32s3-sense/">ESPboards</a>,
    <a href="https://creativecommons.org/licenses/by-nc/4.0/">CC BY-NC 4.0</a>
  </figcaption>
</figure>

Using it commercially? Ask us first - it takes one email.

Yours to use, share and adapt for non-commercial work, as long as you credit espboards.dev - the full terms and ready-made credit lines are here.

Specifications

ESP32-S3 · 21 × 17.8 mm · vs other ESP32 chips →
Compute
MCU
ESP32-S3
Clock
240 MHz
SRAM · Flash
512 KB · 8MB · 8MB (OPI) PSRAM
Radio
Wi-Fi
802.11 b/g/n
Bluetooth
5.0 LE
Antenna
u.FL
I/O
GPIO · ADC
28 · 18
UART · I²C · SPI
3 · 2 · 2
PWM
8 channels
Power
USB
USB-C
Serial
Native (CDC)
Boot address
0x0
Electrical
Input
5V USB-C · 3.7V LiPo
Consumption
110mA active · 3mA sleep
Regulator
-
Flashing
Upload · OTA
esptool_py · esp_ota
Flash · Boot mode
DIO · QIO
Sketch · Data
3.19 MB · 320 KB

Dimensions

XIAO ESP32S3 Sense board, drawn to scale
17.8 mm21 mm
21 × 17.8 mm · pin pitch 2.54 mm
The XIAO ESP32S3 Sense uses esptool_py for firmware uploads, esp_ota for over-the-air (OTA) updates. Flash mode is DIO with QIO boot mode. The maximum sketch size is 3.19 MB with 320 KB available for data.

About this board

At 21 × 17.8 mm it's among the smallest boards in the whole ESP32 family.

At its core is the ESP32-S3 - a dual-core Xtensa with vector extensions suited to AI workloads.

Expect to pay about $13.90 - less than the ~$29 most ESP32-S3 boards go for.

28 GPIO are broken out - more than most ESP32-S3 boards, so the pin budget is rarely the constraint.

Onboard you'll find 8MB (OPI) PSRAM, an OV3660 camera (2048x1536), a microSD slot, a microphone (PDM), battery charging via Solder pads, status LEDs (User, Charge) and Reset/Boot buttons.

It flashes over native USB - no serial-converter driver needed, which isn't a given among ESP32-S3 boards.


The XIAO ESP32S3 Sense is the XIAO ESP32S3 plus a snap-on expansion board that adds a camera, a digital microphone and a microSD slot. The same ESP32-S3R8 with 8 MB PSRAM and 8 MB flash sits underneath, so the 21 x 17.8 mm footprint is unchanged and the board only grows in height - Seeed lists it as 21 x 17.8 x 15 mm with the expansion board fitted. Wireless is unchanged too: a U.FL connector takes the rod antenna that ships in the box, and Seeed's wiki tells you to "take out the antenna inside the package and install it on the connector" for a better Wi-Fi and Bluetooth signal.

Current units ship an OV3660 (3 MP, 2048 x 1536). Seeed's wiki states that the OV2640 (2 MP, 1600 x 1200) used by early boards "has been discontinued, and the subsequent XIAO ESP32-S3 Sense uses the OV3660 camera model", and that the wiki's camera example code still applies to both. The microSD slot takes cards up to 32 GB, formatted FAT32.

Power comes from USB-C at 5 V or a 3.7 V lithium cell on the solder pads, and the expansion board is not free: Seeed rates the Sense at 110 mA Wi-Fi active and 3 mA in deep sleep, against 100 mA and 14 µA for the bare XIAO ESP32S3. Programming runs over the S3's native USB, and arduino-esp32 lists the board as XIAO_ESP32S3 - there is no separate Sense entry - with Tools → PSRAM → "OPI PSRAM" required before the camera works. Seeed also sells a pre-soldered variant.
  • Dual-core Xtensa LX7 at up to 240 MHz
  • Detachable expansion board carrying a camera, a digital microphone and a microSD slot
  • Camera on the detachable expansion board is an OV3660 (3 MP, 2048x1536); early units shipped an OV2640 (2 MP, 1600x1200) before it was discontinued
  • Onboard microSD slot for cards up to 32 GB, formatted FAT32
  • Supports WiFi 4 (802.11 b/g/n), Bluetooth 5.0 LE and Bluetooth Mesh
  • Ultra-small size (21 x 17.8 x 15 mm with the expansion board fitted)

Where to buy

prices are typical street prices
As an Amazon Associate, ESPboards earns from qualifying purchases.
The Seeed Studio store link is an affiliate link - ESPboards may earn a commission on purchases, at no extra cost to you.

Resources

Similar boards