The "Getting started" wiki page for XIAO nRF52840 has invalid / outdated instructions


I recently purchased the XIAO nRF52840 board (the basic version, not Sense) to develop a BLE beacon. However I hit a major roadblock trying to set up the board in Arduino Studio using the instructions in the “Getting started” wiki page for the board.

I was able to upload and run the basic “Blink” example on the board, but when I tried the “Control built-in LED using a smartphone” example on the Bluetooth Usage for XIAO nRF52840 wiki page, I was not able to use the ArduinoBLE library with the board! Here’s the error message I received:

library arduino_410772 claims to run on samd, megaavr, mbed, apollo3, mbed_nano, mbed_portenta, mbed_nicla architecture(s) and may be incompatible with your current board which runs on nrf52 architecture(s).

After spending around 3 hours trying to figure this out, I finally found the solution.

The problem was the follow instruction in Step 3 on the “Getting started” page:

type the keyword "seeed nrf52 " in the search box, select the latest version of Seeed nRF52 Boards , and install it.

The image following this line shows one package with this name - it has version number 2.6.1.

When I did the search, I got two results, the “Seeed nRF52 Boards” package, and the “Seeed nRF52 mbed-enabled Boards” package. The first package’s info mentions it supports “Seeed XIAO nRF52840 Sense” as well as “Seeed XIAO nRF52840”, and it has no version info. The second package does allow you to select the version, with 2.6.1 being available, but the info mentions that it only supports “Seeed XIAO nRF52840 Sense”. I went with the first package because of it mentioning support for the board without Sense.

This was the wrong package and caused this problem.

If you take a closer look at the boards manager json URL for seeeduino boards, you can see that the package listed as “Seeed nRF52 Boards” has architecture listed as “nrf52” which the ArduinoBLE library does not support (also notice it is version 1.0.0):

“name”: “Seeed nRF52 Boards”,
“architecture”: “nrf52”,
“version”: “1.0.0”,

Whereas the package listed as “Seeed nRF52 mbed-enabled Boards” has architecture set to “mbed”, which is indeed supported by ArduinoBLE. Also, this package has version 2.7.2 as well as 2.6.1 available:

“name”: “Seeed nRF52 mbed-enabled Boards”,
“architecture”: “mbed”,
“version”: “2.7.2”,

I got the BLE example to work after removing the “Seeed nRF52 Boards” package, installing the “Seeed nRF52 mbed-enabled Boards” package followed by setting the Board type to “Seeed XIAO BLE - nRF52840” which this package supports (the information in the json for this package seems to imply it does not).

Please update the wiki pages to prevent other developers from running into this issue.

Credit to the following comment in a blog post which pointed me towards the right solution:

Thank you very much for your feedback and detailed description and apologise for any inconvenience you may have experienced. This issue started when we learned that different users would have different requirements for TinyML and BLE, but the R&D department worked on the underlying framework of the code and found that there was indeed no way to use the same version of the on-board files to be compatible with both. Therefore, we had no choice but to release the XIAO nrf52840 and XIAO nrf52840 mbed packages in the Development Board Manager.
We also have plans to improve the XIAO nrf52840 Wiki by separating the different on-board packages and giving our users an overview of how they are used and which one is suitable for which package.
Finally, we apologise again for any inconvenience caused by our untimely work.

1 Like

No worries at all! Just wanted to let you know so that other people don’t experience the same problem. Also, in case they do, they might be able to Google the error and hopefully this post shows up :blush:

1 Like

Is the wiki update done?

Yes, the wiki was updated earlier.

1 Like

Hi, I am using Seeed nRF52 mbed-enabled Boards v1.0.0. I am following this tutorial and am using Seeed XIAO nRF52840 Sense. I have tried downloading the zip from github and including the library in my sketch. However I am facing this error:

26 | #error “This library targets Wio Terminal boards and XIAO BLE at the moment”

What is the problem and how can I fix it? Thank you

Your problem should be caused by not choosing the correct development board model, there is no problem on my side.

May I know what development board model are you using? Is it that the library does not work with version 1.0.0?

Please update your XIAO BLE on-board package, we no longer have version 1.0.0 of the on-board package.

@Citric Version 1.0 is still there. Version 1.0 is based on the Adafruit environment (bootloader) while your other version (currently 2.7.2) that you are developing is based on the mbed environment. Let’s not forget about the Adafruit 1.0 version yet.