Xiao Sense nRF52840 - Let's get to the bottom of this! mbed vs non-mbed library functionality differences!

The Xiao Sense nRF52840 is a great piece of hardware, but its software support is disappointing. There are 2 possible board managers (i.e. cores) within the Arduino IDE, with each installation core having vastly different library support

In the Arduino IDE these 2 cores are called “Seeed nRF52 Boards” and “Seeed nRF52 mbed-enabled Boards”. It seems appropriate to refer to them as non-mbed and mbed respectively

This is a problem for many reasons. In short, anyone working on the Xiao nRF52840 is blind to what libraries actually work for BLE, the microphone (MIC), the IMU, etc. on a given core

The purpose of this thread is to gather in one location the libraries supported by each board manager (core) choice. This way, a core can be chosen based upon knowing what libraries it will work with

If this list already exists, I apologize for my ignorance. But at this time it appears this information is not fully known and the pieces that are are scattered through various sites, threads, and videos

If the list does not exist, I hope the community will help me in determining with concrete confirmation which libraries are supported on which core (and with any caveats). Hopefully Seeed will then publish this information in a more appropriate place

I also hope to gather here basic example sketches for the the appropriate cores which others can than use. For instance ‘Xiao_Sense_nRF52_IMU_Example_mbed.ino’ would be a sketch demonstrating usage of the IMU on the mbed core.

Please remember, this top comment is a work in progress!

Library Information : Using Arduino IDE v2.3.2:

Seeed nRF52 Boards (v 1.1.8)
(non-mbed)

Working Libraries:
BLE:
IMU:
MIC:

Non-working libraries:
BLE:
IMU:
MIC:

Seeed nRF52 mbed-enabled Boards (v 2.9.2)
(mbed)

Working Libraries:
BLE: ArduinoBLE v1.3.6
IMU: Seeed Arduino LSM6DS3 v2.0.3 (must be installed manually! Arduino IDE only has non-working v2.0.1)
MIC:

Non-working libraries:
BLE: Bluefruit
IMU:
MIC:

Thanks

To keep the posted code organized, I’m adding comments to separate them.

Code Examples for : Seeed nRF52 mbed-enabled Boards (v 2.9.2)
(mbed)

BLE Blinky Example with Arduino BLE:
Xiao_Sense_nRF52_BLE_Blinky_mbed.ino.zip (1.7 KB)

IMU and Thermometer Example with Seeed Arduino LSM6DS3 v2.0.3
Xiao_Sense_nRF52_IMU_TEMP_mbed.ino.ino.zip (994 Bytes)

Microphone Example with …

Code Example for : Seeed nRF52 Boards (v 1.1.8)
(non-mbed)

BLE Blinky Example with Bluefruit BLE:
Xiao_Sense_nRF52_BLE_Blinky_non-mbed.ino.zip (2.4 KB)
Note: Does NOT work with nRF Blinky Smartphone App, but does work with nRF Connect. This is probably because Button Characteristic UUID information was removed from this sketch as the Xiao Sense does not have a working button

Hi there,
Are you testing each of the zip files, verifying the contents each compile and run?
If so I’ll delete the Question.
GL :slight_smile: PJ :v:

Yes, each of the sketches is tested before being uploaded! Please don’t delete your message because someone else will have the same question!

I hope it will be clear that the listed Arduino IDE, Board Manager (and version) , and library (and version) are working with the attached sketches and can be used as working examples

There is also the official SDK from Nordic, based on Zephyr, with an official support for the Xiao BLE and Xiao BLE Sense.

https://docs.zephyrproject.org/latest/boards/seeed/xiao_ble/doc/index.html