XIAO Pinout
Explore both sides of your XIAO board with an interactive pinout viewer. Search for pins, check their functions, and find wiring notes and alternate functions.
- Logic level
- 3.3V
- 5V tolerance
- Not tolerant
- 3V3 budget
- ≤ 200 mA
- VBUS
- 5V pin is USB VBUS in/out. Keep peripheral load under 500 mA.
- Battery
- No charger onboard; VIN pad on the back accepts 3.3–5V
| # | Silk | Arduino | Chip | ADC | I²C | SPI | UART | PWM | Other | Note |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | L | LED_BUILTIN | PA17 | SCL1 SERCOM1 PAD1 | TCC | LED on SAMD21 | User LED on SAMD21; SCL1 on SAMD21 Plus back header (D13). | |||
| 2 | P | P | VBUS | |||||||
| 3 | RST | RST | RESETN | RESET | Active-low reset. The board already pulls it up. Pulse it to ground to reboot. | |||||
| 4 | D0 | A0 | PA02 | AIN0 / A0 | TCC | DAC0 | Only PA02 (D0 / A0) has a true DAC. Other analog pins are ADC-only. | |||
| 5 | D1 | A1 | PA04 | AIN4 / A1 | TCC | ADC A1 (AIN4). | ||||
| 6 | D2 | A2 | PA10 | AIN10 / A2 | TCC | Input voltage must not exceed 3.3V. | ||||
| 7 | D3 | A3 | PA11 | AIN11 / A3 | TCC | Input voltage must not exceed 3.3V. | ||||
| 8 | D4 | SDA | PA08 | AIN16 / A4 | SDA SERCOM0/2 PAD0 | TCC | SAMD21 routes I2C / SPI / UART through SERCOM pads. The Arduino core already assigns the XIAO defaults; changing them means picking the matching PAD. | |||
| 9 | D5 | SCL | PA09 | AIN17 / A5 | SCL SERCOM0/2 PAD1 | TCC | SAMD21 routes I2C / SPI / UART through SERCOM pads. The Arduino core already assigns the XIAO defaults; changing them means picking the matching PAD. | |||
| 10 | D6 | TX | PB08 | AIN2 / A6 | TX SERCOM4 PAD0 | TCC | SAMD21 routes I2C / SPI / UART through SERCOM pads. The Arduino core already assigns the XIAO defaults; changing them means picking the matching PAD. | |||
| 1 | T | PIN_LED_TXL | PA19 | |||||||
| 2 | R | PIN_LED_RXL | PA18 | |||||||
| 3 | 5V | 5V | VBUS | This pad is USB VBUS. It sits near 5 V when USB is plugged in. Do not feed it back into a 3.3 V pin. | ||||||
| 4 | GND | GND | — | Common ground. Connect every module ground here so signals have a return path. | ||||||
| 5 | 3V3 | 3V3 | 3V3_OUT | Regulated 3.3 V output. Current is limited; use a separate supply for hungry loads. | ||||||
| 6 | D10 | MOSI | PA06 | AIN6 / A10 | MOSI SERCOM0 PAD2 | TCC | SAMD21 routes I2C / SPI / UART through SERCOM pads. The Arduino core already assigns the XIAO defaults; changing them means picking the matching PAD. | |||
| 7 | D9 | MISO | PA05 | AIN5 / A9 | MISO SERCOM0 PAD1 | TCC | SAMD21 routes I2C / SPI / UART through SERCOM pads. The Arduino core already assigns the XIAO defaults; changing them means picking the matching PAD. | |||
| 8 | D8 | SCK | PA07 | AIN7 / A8 | SCK SERCOM0 PAD3 | TCC | SAMD21 routes I2C / SPI / UART through SERCOM pads. The Arduino core already assigns the XIAO defaults; changing them means picking the matching PAD. | |||
| 9 | D7 | RX | PB09 | AIN3 / A7 | RX SERCOM4 PAD1 | TCC | SAMD21 routes I2C / SPI / UART through SERCOM pads. The Arduino core already assigns the XIAO defaults; changing them means picking the matching PAD. | |||
| 1 | SWCLK | SWCLK | PA30 | SWCLK | SWD clock on PA30. Use with SWDIO to load firmware via a debug probe. | |||||
| 2 | GND | GND | — | Ground next to the SWD pads. Tie the debugger ground here. | ||||||
| 3 | GND | GND | — | Ground next to VIN. | ||||||
| 1 | SWDIO | SWDIO | PA31 | SWDIO | SWD data on PA31. | |||||
| 3 | VIN | VIN | VBUS | VIN / VBUS follows USB 5 V. The SAMD21 I/O is 3.3 V only. |
