Skip to content
My Account

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.

4 min read

No ratings yet, be the first.

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 pinChip pinFunctionNotes
D0P0.02Analog (AIN0)
D1P0.03Analog (AIN1)
D2P0.28Analog (AIN4)
D3P0.29Analog (AIN5)
D4P0.04I²C SDAAlso Analog (AIN2)
D5P0.05I²C SCLAlso Analog (AIN3)
D6P1.11UART TX
D7P1.12UART RX
D8P1.13SPI Clock
D9P1.14SPI MISO
D10P1.15SPI 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.

Advertisement

Related

All guides

More guides

Keep building.

From ESP32 HomeKit accessories to Arduino and ATtiny reference guides, there’s more where this came from.

All guides