Using BLE libraries with MBED Studio

I’ve returned back to MBED thanks to Arduino’s teething problems with the Arduino Nano 33 BLE board and some of the shortcomings with using their ArduinoBLE library.

I now have a reasonable understanding of the MBED BLE API and have most of the MBED BLE examples working on my Arduino Nano 33 BLE, which I coded via the Arduino IDE.

I now want to test out my knowledge on other boards using the new MBED Studio, as I happen to have a few MBED compatible boards which include BLE, such as Cypress’s PSoC6 Pioneer board, NXP’s FRDM-KW41Z, Silabs Thunderboard Sense 2, Nordic Semiconductor’s nRF52840 dongle (not sure if this is MBED compatible though) and a BBC microbit.

However, I did notice that the FRDM-KW41Z and Silabs Thunderboard Sense 2 are not included as MBED board selection options for BLE on the mbed website.

Is there a reason for this?

So, assuming it is possible to write up a BLE example on MBED Studio, I thought to start with the Silabs Thunderboard Sense 2 board as this is MBED 6.x compatible.

Please could someone give me some high level pointers as to how approach this mini test project.

Thanks in advance.

BR

G://

Hi G,

I’m afraid we (Silicon Labs) don’t support mbed OS’ BLE stack on Thunderboard Sense 2. The wireless protocol support for Thunderboard Sense 2 on mbed OS is currently limited to 802.15.4 through Nanostack, i.e. 6LoWPAN and Thread.

We’re hoping to have a BLE solution on mbed OS using our parts at some point in the future, but I sadly don’t have any indication if/when this might happen. But I’d say to not hold your breath. If you want BLE on TB Sense 2, I recommend checking out our BLE examples in Simplicity Studio.

-Steven
Silicon Labs

You may want to review the list of Mbed boards that have been tested with BLE

Other boards supported in Mbed OS 6 may well just work, but haven’t been tested.
https://os.mbed.com/platforms/?q=&Mbed+OS+support=Mbed+OS+6.1&Communication=Bluetooth+%26+BLE

Thanks. I have a Particle.io Xenon board (nRf52840) which happily got flashed with the Blinky example from MBED Studio using the Particle CMSIS DAP debugger.

What I now need is some pointers on how to get the BLE_API onto MBED Studio so I can continue exploring.

Why pointers will be useful…

For example, I experimented.

So, if I use the “import program” and add say this URL (https://github.com/ARMmbed/mbed-os-example-ble/tree/master/BLE_HeartRate) for one of the examples it gets rejected and you get an error message to say import failed. If I use this URL (GitHub - ARMmbed/mbed-os-example-ble: BLE demos using mbed OS and mbed cli) it loads as an example but with another error message. This time all the examples are shown as subfolders.

In both cases the “Import Dialog box” gives the correct program name.

Just to announce that I manually copied across the BLE_Button example, and it not only successfully compiled, using the nRF52840_dk as the target, but it also worked straight out the box on my Particle.io Xenon device.

So, ignoring the manual port for now, the rest of the workflow was quick and painless. Awesome!

1 Like