Hi,
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.