BLE Development Update


A little while back you may have noticed we started working on a Bluetooth Low Energy API for mbed, and a partnership with Nordic Semiconductor to make it available on a microcontroller with the Bluetooth LE radio built in. It has been developing really well, so we thought we'd share some of the progress with you!

The main goal is to enable Bluetooth LE and create an API that allows you to focus on creating interesting and innovative applications, instead of reading through the core Bluetooth specifications (which we certainly have had to!). We're also building hardware and an HDK to simplify creating the physical devices themselves.

The initial development we have done is based on a two-chip solution. In the labs we use a mbed LPC1768 talking to the nRF51822 development board over UART running Nordics Bluetooth LE Stack (aka SoftDevice). As the API is almost complete, we'll soon move to fully integrating this to a single chip solution, with mbed running natively on the Cortex-M0 in the nRF51822 chip!

An example of how this looks, you can create a common Bluetooth Low Energy service like the Battery Level service or a Beacon using the example programs:

[Repository '/teams/Bluetooth-Low-Energy/code/BLE_BatteryLevel_Example/' not found]

[Repository '/teams/Bluetooth-Low-Energy/code/BLE_iBeacon_Example/' not found]

There's still a fair amount of design effort involved, but if you're really eager and want to help with development and testing, you can see all the work we are doing under the Bluetooth Low Energy Development Team we've setup, including the hardware we're using and recreate our lab setup. We'd love to hear what you think so far. At this stage while it is all still in development, some familiarity with BLE will be helpful and an understanding that this is not ready for general use, but you should be able to get something working!

And if you are interested in being a tester when this reaches beta on the single-chip hardware, please tell us what you might build!

7 comments on BLE Development Update:

10 Jan 2014

That's great news! Is that potentially the smallest Cortex-M device that's capable of running mbed code?

What's the workflow like between Nordic and you? If Nordic update their SoftDevice stack, is the independently capable of being revved from the mbed API code?

11 Jan 2014

This is awesome! Quick question though, is the two chip solution going to continue to be supported after the single chip solution is finished? I've got a project I'm working on that needs both BLE and USB, but the nRF51822 doesn't have a USB controller. Right now I'm using an LPC11U35 connected to a PAN1721 with BlueRadios firmware to accomplish this.

14 Jan 2014

Nick: We are currently working in active collaboration with Nordic on the native port, and obviously the goal is something flexible that can move forward with future SoftDevice and SDK releases. What form that update process will take is still TBD, but obviously the goal is something that can benefit from bug fixes in the SDK or SD and updates in the future.

Neil: The two chip solution is in the project planning, but we're prioritizing native mode first since we think that has the most immediate value for end users and people who want to design low cost and manufacturable products around BLE. There has been some effort on using Nordic's official serialization API for 'connectivity mode', but for now we're focusing on native mode.

20 Jan 2014

Dear Kevin,

I have seen that you have posted a library for using the nRF51822 (http://mbed.org/teams/Bluetooth-Low-Energy/code/BLE_API/wiki/Homepage). We are very much interested in it but we found so many problems in trying to make it work (the bluetooth part mostly, softdevice).

We have been also working with the nRF8001 coupled with an ARM microprocessor (Cortex-M) and some libraries from internet, mostly based on arduino architecture. But so far, they have shown non productive. We are also analyzing the BlueGiga solution based on the TI CC2540 as an alternative solution if nordic do not accomplish our expectations.

In addition, we are mostly based on Android development, but we are not sure that our apps works properly because we dont know if BLE is fully supported by Android and working with some examples, sometimes the smartphone says "BLE technology is not supported by your phone". But other applications seems to work. So it is very disturbing.

At the moment, we are trying to communicate an embedded microprocessor with an android smartphone through BT4 (BLE) without success. That is why we are testing so many different platforms.

Do you have working examples of this library (or any other) that work interfacing an ARM or using the nRF51822 and Android apps that communicates with it. I have tried to use the Nordic ones without much success neither.

Thanks and best regards.

23 Jan 2014

Hi mm gg,

This is exactly the problem we want to solve! Bluetooth Smart has lots of potential, and as you've highlighted there are various chips out there, but it can be really hard to work with.

Once we have completed this Bluetooth Low Energy support in mbed, that should be a thing of the past and it be nice and easy!

The native integration of the APIs on the Nordic chip is happening now, and you can track the progress on the bluetooth project listed above; we hope to have beta hardware and software available in about 1 month!

Simon

23 Jan 2014

Dear Simon,

nice to hear that you are progressing.

From my side, we are working in parallel with an ARM coupled to a nRF8001 and with the bluegiga BLE113.

The BlueGiga is going much better than the other one. We declare services and descriptors at the master and they are detected by the smartphone, but still no practical communication is going on.

I would like to know which perturbed individuals have cogitated this spaghetti solution that is bluetooth LE, with all these services, profiles, protocols, characteristics, descriptors and so on and so far!

Well, I hope to arrive to a solution rapidly.

Best regards, Mauro.

26 Apr 2014

Dear BLE deverlopers,

i would like to use the kit, the other way around (from the two examples above). I want to send data from a mobile device to the kit, let's say switch on and of a led. Any example(s) on how to do that?

with kind regards,

Ted

You need to log in to post a discussion