Seeed Studio XIAO nRF54L15 is a thumb-sized board with the new Nordic nRF54L15 chip: an Arm Cortex-M33 at 128 MHz with a RISC-V coprocessor, Bluetooth LE, Thread, Zigbee and Matter. Unlike the nRF52840, the chip has no USB – the USB-C port leads to a SAMD11 converter that serves as both a serial port and a programmer.
The Sense version adds an LSM6DS3TR-C accelerometer with gyroscope and a digital microphone; the pinout is the same.
Specifications
- nRF54L15: Arm Cortex-M33 128 MHz + RISC-V coprocessor, 1.5 MB RRAM, 256 kB RAM
- Bluetooth LE, Thread, Zigbee and Matter (IEEE 802.15.4), NFC
- ceramic antenna and IPEX connector for an external antenna, with an antenna switch
- 11 GPIO on the headers (D0–D10) and 10 on pads on the bottom (D11–D15, NFC, converter UART and LED), 5 analog inputs on the headers
- USB-C via a SAMD11 converter (serial port and SWD programmer)
- green LED on P2.00, button B on P0.00, RESET button
- Li-Po charging at 200 mA, battery voltage measurement (P1.14, enabled by P1.15)
Officially it is programmed in Zephyr / nRF Connect SDK (board xiao_nrf54l15/nrf54l15/cpuapp, uploaded over USB). For Arduino there is a community core, which the Seeed wiki also links to: add the URL https://raw.githubusercontent.com/lolren/nrf54-arduino-core/main/package_nrf54l15clean_index.json to the Boards Manager and select the XIAO nRF54L15 / Sense board.
The chip’s ports are also power domains. P0 and P1 pins can wake the chip and trigger interrupts; P2 pins can’t, but they handle faster signals (up to 64 MHz). Peripherals must use pins from their own port.
Pinout and pin table
Hover over a pin in the diagram or a table row; use the filter to highlight a bus. You can download the pinout as PNG or SVG.
Bottom side
| Pin | Name | Arduino | Direction | UART | I2C | SPI | ADC | Note |
|---|---|---|---|---|---|---|---|---|
| 1 | P1.04 | D0/A0 | input/output | AIN0 | Pin with clock function – can be SCK (SPI) or SCL (I2C) | |||
| 2 | P1.05 | D1/A1 | input/output | AIN1 | ||||
| 3 | P1.06 | D2/A2 | input/output | AIN2 | ||||
| 4 | P1.07 | D3/A3 | input/output | AIN3 | ||||
| 5 | P1.10 | D4 | input/output | SDA | No analog input (A4 does not exist in Arduino) | |||
| 6 | P1.11 | D5/A5 | input/output | SCL | AIN4 | Pin with clock function – can be SCK (SPI) or SCL (I2C) | ||
| 7 | P2.08 | D6 | input/output | TX | UART TX (Serial1). Port P2 – no interrupts or wake-up | |||
| 8 | P2.07 | D7 | input/output | RX | UART RX (Serial1). Port P2 – no interrupts or wake-up | |||
| 9 | P2.01 | D8 | input/output | SCK | Port P2 – no interrupts or wake-up. Pin with clock function | |||
| 10 | P2.04 | D9 | input/output | MISO | Port P2 – no interrupts or wake-up | |||
| 11 | P2.02 | D10 | input/output | MOSI | Port P2 – no interrupts or wake-up | |||
| 12 | 3V3 | output | 3.3 V output from the TPS628438 switching regulator (max. 600 mA including the board's own consumption). | |||||
| 13 | GND | – | ||||||
| 14 | 5V | input/output | USB voltage after the Schottky diode (about 4.7 V). Without USB the pin carries the cell voltage (3–4.2 V) via a transistor – 5V modules won't get 5 V from it on battery. | |||||
| Bottom side | P0.03 | D11 | input/output | Pin with clock function. On the Sense version, I2C bus of the IMU sensor (SCL) | ||||
| Bottom side | P0.04 | D12 | input/output | Pin with clock function. On the Sense version, I2C bus of the IMU sensor (SDA) | ||||
| Bottom side | P2.10 | D13 | input/output | Port P2 – no interrupts or wake-up | ||||
| Bottom side | P2.09 | D14 | input/output | Port P2 – no interrupts or wake-up | ||||
| Bottom side | P2.06 | D15 | input/output | Port P2 – no interrupts or wake-up. Pin with clock function | ||||
| Bottom side | P1.08 | input/output | UART to the SAMD11 USB bridge (chip RX) – Zephyr console | |||||
| Bottom side | P1.09 | input/output | UART to the SAMD11 USB bridge (chip TX) – Zephyr console | |||||
| Bottom side | P2.00 | input/output | User LED (green), lit at logic 0 | |||||
| Bottom side | SWCLK | – | SWD nRF54L15 – hodiny | |||||
| Bottom side | SWDIO | – | SWD nRF54L15 – data | |||||
| Bottom side | GND | – | ||||||
| Bottom side | RST | input | nRF54L15 reset – connecting to GND restarts the chip | |||||
| Bottom side | 3V3 | output | 3.3 V output from the TPS628438 switching regulator (max. 600 mA including the board's own consumption). | |||||
| Bottom side | RST2 | input | SAMD11 USB bridge reset | |||||
| Bottom side | SWCLK2 | – | SAMD11 USB bridge SWD – clock | |||||
| Bottom side | SWDIO2 | – | SAMD11 USB bridge SWD – data | |||||
| Bottom side | BAT- | – | Cell negative (GND) | |||||
| Bottom side | BAT+ | input/output | 3.7 V Li-Po cell positive – the board charges it from USB (200 mA) | |||||
| Bottom side | P1.02 | input/output | NFC1 – NFC antenna after boot, GPIO only after switching | |||||
| Bottom side | P1.03 | input/output | NFC2 – NFC antenna after boot, GPIO only after switching |
Pins used on the board
These chip pins are used by parts on the board and are not broken out:
| Pin | Function on the board |
|---|---|
| P0.00 | Button B (user), logic 0 when pressed |
| P2.03 | Antenna switch power (logic 1 = on) |
| P2.05 | Antenna select: logic 0 ceramic, logic 1 external (IPEX) |
| P1.15 | Battery measurement enable (logic 1) |
| P1.14 | Battery voltage via 10k/10k divider (AIN7), VBAT = 2 × U |
| P0.01 | Sense: IMU and microphone power (logic 1) |
| P0.02 | Sense: IMU INT1 |
| P1.12/P1.13 | Sense: mikrofon CLK, DATA |
What to watch out for
- GPIO are not 5V tolerant. Use a level shifter for 5V signals.
- Pins on port P2 (D6–D10 and D13–D15) support neither interrupts nor wake-up from sleep.
- SCK for SPI and SCL for I2C must be on a pin with a clock function – on the headers D0, D5 and D8, on the bottom D11, D12 and D15.
- D4 (P1.10) has no analog input – A4 doesn’t exist in Arduino.
- The antenna switch is enabled by P2.03 at logic 1; P2.05 selects the antenna (logic 0 ceramic, logic 1 external).
- The 5V pin is after a diode: from USB it carries about 4.7 V, on battery just the cell voltage.
- Connect only a 3.7 V Li-Po/Li-Ion cell to the BAT pads.
More pinouts
See all pinouts on the Pinouts page.