Hi @benofthewoodz.
The TL;DR is that you are using an outdated version of the library. You can ignore the warning safely, or else update the library by following these instructions:
- Select Sketch > Include Library > Manage Libraries... from the Arduino IDE's menus.
- Wait for the update to finish.
- In the "Filter your search..." field, type "arduinoble".
- Press Enter.
- Scroll down through the list of search results until you find "ArduinoBLE by Arduino". Click on it.
- Click the Update button.
- Wait for the update to finish. You should now have ArduinoBLE 1.2.1 installed.
- Click the Close button.
But this is Arduino and some of us like to understand the "why"s, rather than being satisfied only with the "how"s, so I'll give a detailed explanation for those who are interested. Everyone else can happily ignore these ramblings.
The code ("Arduino boards platform") that defines the configuration of the Nano 33 BLE Sense and implements the core library that provides the standard Arduino Language functions (e.g., digitalWrite()
) for that board was originally named "Arduino Mbed OS Boards". This boards platform originally only provided support for the Nano 33 BLE and Nano 33 BLE Sense, then was expanded for the Portenta H7, and most recently for the Nano RP2040 Connect and Edge Control.
A heavy weight platform from the beginning due to the inclusion of the Mbed OS realtime operating system, the addition of support for diverse microcontrollers made it grow and grow. For this reason, Arduino made the decision to split the Arduino Mbed OS Boards platform into separate platforms for each distinctive board family. This was done last month in the 2.0.0 release. All boards of the Arduino Mbed OS Boards platform were previously identified as having the mbed
architecture, but with this split, each separate platform got its own architecture:
-
mbed_nano
- Arduino 33 BLE
- Arduino 33 BLE Sense
- Arduino RP2040 Connect
-
mbed_edge
-
mbed_portenta
-
mbed_rp2040
- Raspberry Pi Pico
- Other 3rd party RP2040-based boards
Arduino libraries have a metadata file named library.properties
. This metadata file has an architectures
field where the compatible board architectures of a library may be defined.
In the 1.2.0 and earlier versions, the ArduinoBLE library's architectures
field looked like this:
https://github.com/arduino-libraries/ArduinoBLE/blob/1.2.0/library.properties#L9
architectures=samd,megaavr,mbed,apollo3
At that time, the mbed
item in the architectures
list was sufficient to indicate the library's compatibility with the Nano 33 BLE. But once the architecture name of the Nano 33 BLE changed, it was necessary to add new architectures to the list, retaining the original mbed
for backwards compatibility for people who hadn't yet updated their boards platform. That was done in the ArduinoBLE 1.2.1 release:
https://github.com/arduino-libraries/ArduinoBLE/blob/1.2.1/library.properties#L9
architectures=samd,megaavr,mbed,apollo3,mbed_nano,mbed_portenta