Reference
Seeed Studio XIAO nRF52840 Pinout
This site's first non-Espressif board: Nordic's nRF52840 Bluetooth Low Energy SoC on Seeed's thumbnail-sized XIAO carrier, with no Wi-Fi radio at all.
The XIAO nRF52840 is Seeed Studio’s carrier board for Nordic Semiconductor’s nRF52840, an Arm Cortex-M4F system-on-chip built around Bluetooth Low Energy rather than Wi-Fi. Same 21×17.5mm XIAO footprint and USB-C connector as this site’s XIAO ESP32C3 and XIAO ESP32S3, different chip family entirely. Pin data below is sourced from Seeed’s own wiki.
System-on-chip
The nRF52840 is a 64MHz Arm Cortex-M4F with 1MB flash and 256KB RAM built into the chip itself (the XIAO board adds a further 2MB of onboard QSPI flash). Its radio supports Bluetooth 5.4 (including Bluetooth mesh), Nordic’s proprietary 2.4GHz protocols, 802.15.4 (the radio standard Thread and Zigbee are built on), and an NFC-A tag interface, but no Wi-Fi at all. Standby current is rated under 5µA, aimed squarely at battery-powered devices: BLE sensors, wearables, keyboards, mice.
This chip is also Nordic’s own reference SoC for their Thread and Zigbee stacks, which makes it a real, direct alternative to this site’s ESP32-Matter coverage for a Thread/Matter accessory: an ESP32-C6 does Wi-Fi and Thread from one chip, the nRF52840 does Bluetooth LE and Thread from one chip, with no Wi-Fi option at all. Pick the nRF52840 when the end device only ever needs to be a Thread border-routed accessory (or a BLE-only device with no Matter ambitions), pick an ESP32-C6 when the same board might also need to talk Wi-Fi directly.
GPIO reference
| XIAO pin | Chip pin | Function | Notes |
|---|---|---|---|
| D0 | P0.02 | Analog (AIN0) | |
| D1 | P0.03 | Analog (AIN1) | |
| D2 | P0.28 | Analog (AIN4) | |
| D3 | P0.29 | Analog (AIN5) | |
| D4 | P0.04 | I²C SDA | Also Analog (AIN2) |
| D5 | P0.05 | I²C SCL | Also Analog (AIN3) |
| D6 | P1.11 | UART TX | |
| D7 | P1.12 | UART RX | |
| D8 | P1.13 | SPI Clock | |
| D9 | P1.14 | SPI MISO | |
| D10 | P1.15 | SPI MOSI |
An onboard 3-in-1 RGB LED covers status indication: red on P0.26 (LED_BUILTIN), blue on P0.06, green on P0.30, plus a separate charge-status LED on P0.17. All three are common-anode, wired to turn on with a LOW signal and off with HIGH, backwards from most boards’ onboard LED. Power pins broken out: 5V (USB VBUS), 3V3, GND.
Sense variant
The XIAO nRF52840 Sense adds two onboard sensors on the same board, using pins not exposed on the header, so they don’t cost you any of the 11 GPIOs above:
- LSM6DS3TR-C 6-axis IMU (accelerometer + gyroscope), power on P1.08, interrupt on P0.11.
- Onboard PDM microphone, data on P0.16, clock on P1.00.
A separate “Plus”/”Sense Plus” variant exists with additional broken-out pins (D11–D15, covering I2S and a second UART), if you have one of those, check Seeed’s own pin-multiplexing page for the extra pins, they aren’t covered here since the plain Sense and base XIAO nRF52840 don’t expose them.
Real gotchas
- 3.3V logic only, no 5V tolerance. Wiring a 5V sensor’s signal pin directly into any of these GPIOs risks damaging the chip, use a level shifter.
- Onboard LED logic is inverted. These LEDs turn on with a LOW output, not HIGH, a blink sketch copied from a board with normal-polarity LEDs will appear to do nothing (or run inverted).
- Battery-voltage read pin needs P0.14 held LOW. The board can read its own battery voltage on P0.31 (AIN7), but only while P0.14 is LOW, setting P0.14 HIGH disables that read path and, per Seeed’s own documentation, risks exceeding P0.31’s 3.6V input limit. Leave P0.14 LOW unless you specifically know why you’re changing it.
- No Wi-Fi, at all. If a project needs both Bluetooth and Wi-Fi (or Wi-Fi and Thread together), this chip can’t do it, that needs an ESP32-C6 instead.
Minimal BLE advertising example
#include <bluefruit.h>
void setup() {
Bluefruit.begin();
Bluefruit.setName("XIAO-nRF52840");
Bluefruit.Advertising.addFlags(BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
Bluefruit.Advertising.addName();
Bluefruit.Advertising.start(0); // 0 = advertise indefinitely
}
void loop() {
// Advertising runs in the background, nothing needed here.
}Uses Adafruit’s Bluefruit nRF52 library, bundled with Seeed’s own “Seeed nRF52 Boards” package in the Arduino Boards Manager, install that board package first. For sensor/ML work on the Sense variant, Seeed’s wiki instead recommends their separate “Seeed nRF52 mbed-enabled” board package.
Conclusion
The XIAO nRF52840 is the right choice for a Bluetooth-only or Thread-only battery device where Wi-Fi isn’t needed at all, at the cost of a completely different toolchain (Bluefruit/Zephyr, not the ESP-IDF/Arduino-ESP32 stack this site’s other boards use). Need Wi-Fi and Thread on the same chip instead? See ESP32-C6-WROOM-1, or this site’s broader ESP32-Matter write-up.
Related
Guide
Arduino Nano Pinout
The complete pin reference for the classic ATmega328P-based Arduino Nano: 14 digital pins, 8 analog inputs, and the exact pins you can safely reuse.
Read more
Reference
INA219 / INA226 Voltage, Current and Power Sensor Complete Guide
The INA219 and INA226 measure voltage, current and power on a low-voltage DC bus over I2C, using a shunt resistor and Ohm's law, not the mains-AC energy-meter ICs this site already covers. This guide covers both chips' real specs, wiring one to an ESP32, and which to pick for a battery or power-budget project.
Read more
Reference
Seeed Studio XIAO ESP32S3 Pinout
The real pin reference for Seeed Studio's XIAO ESP32S3: thumbnail-sized, native USB, with a camera/display connector on the Sense variant.
Read more
More guides
Keep building.
From ESP32 HomeKit accessories to Arduino and ATtiny reference guides, there’s more where this came from.
All guides