D-names and GPIO numbers
D0 to D5 are GPIO 1 to 6, D6 and D7 are GPIO 43 and 44 (UART), and D8 to D10 are GPIO 7 to 9 (default SPI). Nine of the eleven pads have both an ADC1 channel and a touch channel, so analog readings work with Wi-Fi on. GPIO3 (D2) is a strapping pin, but it matters only when an eFuse selects the JTAG source.
LED, BOOT button and the Sense board
The user LED is on GPIO21 and the BOOT button on GPIO0, which is not on the pads. On the XIAO ESP32S3 Sense the camera board adds a microSD slot whose CS is also GPIO21, a microphone on GPIO 41 and 42, and two extra pads, D11 and D12, that Seeed says you can free only by cutting a trace. The camera uses its own GPIOs, not the D pads.
Power
The board runs from USB-C, and Seeed rates its 3V3 pad at up to 700 mA. The pins work at 3.3 V and are not rated for 5 V.
Full XIAO ESP32S3 pin table
| Pin | GPIO | Status | Analog | Functions | Notes |
|---|---|---|---|---|---|
| D0 | GPIO1 | Free to use | ADC1_CH0 | TOUCH1, RTC_GPIO1, PWM (LEDC) | No restrictions |
| D1 | GPIO2 | Free to use | ADC1_CH1 | TOUCH2, RTC_GPIO2, PWM (LEDC) | No restrictions |
| D2 | GPIO3 | Free to use | ADC1_CH2 | TOUCH3, RTC_GPIO3, PWM (LEDC) | strapping (JTAG source) |
| D3 | GPIO4 | Free to use | ADC1_CH3 | TOUCH4, RTC_GPIO4, PWM (LEDC) | No restrictions |
| D4 | GPIO5 | Free to use | ADC1_CH4 | TOUCH5, RTC_GPIO5, PWM (LEDC) | I²C SDA |
| D5 | GPIO6 | Free to use | ADC1_CH5 | TOUCH6, RTC_GPIO6, PWM (LEDC) | I²C SCL |
| D8 | GPIO7 | Free to use | ADC1_CH6 | TOUCH7, RTC_GPIO7, PWM (LEDC) | SPI SCK |
| D9 | GPIO8 | Free to use | ADC1_CH7 | TOUCH8, RTC_GPIO8, PWM (LEDC) | SPI MISO (RX) |
| D10 | GPIO9 | Free to use | ADC1_CH8 | TOUCH9, RTC_GPIO9, PWM (LEDC) | SPI MOSI (TX) |
| D6 | GPIO43 | Use with care | No | PWM (LEDC), U0TXD | UART0, UART TX |
| D7 | GPIO44 | Use with care | No | PWM (LEDC), U0RXD | UART0, UART RX |
Arduino-ESP32 defaults for the XIAO ESP32S3: I²C on D4 (SDA) and D5 (SCL), SPI on D8 (SCK), D9 (MISO) and D10 (MOSI), UART on D6 (TX) and D7 (RX). The GPIO matrix can move them to other pads.
Frequently asked questions
Which GPIO is the LED on the XIAO ESP32S3?
GPIO21, defined as LED_BUILTIN in Arduino-ESP32. On the Sense, GPIO21 is also the chip select of the microSD card, so you can’t use the LED and the card independently.
Which XIAO ESP32S3 pins are analog?
D0 to D5 and D8 to D10 (GPIO 1 to 9) are on ADC1, so they also work with Wi-Fi on. D6 and D7 (GPIO 43 and 44) have no ADC.
Does the XIAO ESP32S3 have touch pins?
Yes: the same nine pads, GPIO 1 to 9, are capacitive touch inputs TOUCH1 to TOUCH9.
How do I use D11 and D12 on the XIAO ESP32S3 Sense?
They are GPIO42 and GPIO41, used by the microphone by default. Seeed says to cut the trace between J1 and J2 to free them, and to use the GPIO numbers in code because the D11 and D12 constants aren’t defined.
Are the XIAO ESP32S3 pins 5 V tolerant?
No. The ESP32-S3 GPIOs work at 3.3 V; use a level shifter for 5 V signals.