Bluetooth Low Energy


Bluetooth Low Energy (a.k.a Bluetooth LE, BTLE, Bluetooth Smart)

You are viewing an older revision! See the latest version

Architecture of mbed BLE solution

For most developers, one of the big hurdles in getting started with Bluetooth smart is familiarizing oneself with the low-level details of the underlying controller and APIs for the accompanying BLE-stack. Mbed attempts to abstract these details in the form of BLE_API. Applications may then be written to take advantage of the high-level constructs and interfaces offered by BLE_API and remain compatible with all supported underlying Bluetooth smart platforms. This makes for portable programs, which can easily be moved from one supported platform to another during development. Using BLE_API also implies that developers implicitly benefit from all the low-power optimizations offered by the hardware.

/media/uploads/rgrover1/ble_apiarchitecture.png

BLE_API is a very thin and lightweight layer of C++ interfaces and abstractions allowing users to develop portable applications for Bluetooth Smart. It needs to be combined with some 'bridge software' specific to each vendor platform. This bridge software provides the instantiations for the interfaces offered by BLE_API, and helps drive the underlying controller and Bluetooth stack.

A Bluetooth Smart application is composed of BLE_API, bridge software, and controller-specific Bluetooth stack.

BLE_API is developed on Github (https://github.com/mbedmicro/BLE_API/) and mirrored on mbed.org (http://developer.mbed.org/teams/Bluetooth-Low-Energy/code/BLE_API/).

Inside BLE_API

/media/uploads/rgrover1/insideble_api.png

BLE_API offers building blocks to help construct applications. These fall into two broad categories: interfaces under 'public/' to express BLE constructs such as GAP, GATT, Service, Characteristics, etc. and classes under 'services/' to offer reference implementations for many of the commonly used GATT profiles. The code under 'services/' isn't essential, but offers a useful reference and a good starting point for prototyping. Code under 'common/' encapsulates headers which need to be shared between the public interfaces and underlying bridge code.

Over time, we expect to keep adding more reference implementations for the standard GATT profiles under 'services/'.

Example mbed BLE apps

Here you can find examples of the BLE apps along with the documentation . http://developer.mbed.org/teams/Bluetooth-Low-Energy/code/


All wikipages