The Bluetooth® Low Energy protocol stack in the SoftDevice has been designed to provide an abstract but flexible interface for application development for Bluetooth Low Energy devices.
Generic Access Profile (GAP), Generic Attribute Protocol (GATT), Security Manager (SM), and Logical Link Control and Adaptation Protocol (L2CAP) are implemented in the SoftDevice and managed through the Application Programming Interface (API). The SoftDevice implements GAP and GATT procedures and modes that are common to most profiles such as the handling of discovery, connection, data transfer, and bonding.
The Bluetooth Low Energy API is consistent across Bluetooth role implementations where common features have the same interface. The following tables describe the features found in the Bluetooth Low Energy protocol stack.
API features | Description |
---|---|
Interface to GATT/GAP | Consistency between APIs including shared data formats |
Attribute table sizing, population, and access | Full flexibility to size the attribute table at application compile time and to populate it at run time. Attribute removal is not supported. |
Asynchronous and event driven | Thread-safe function and event model enforced by the architecture |
Vendor-specific (128-bit) UUIDs for proprietary profiles | Compact, fast, and memory efficient management of 128-bit UUIDs |
Packet flow control | Full application control over data buffers to ensure maximum throughput |
Application control of PHY | Full application control over the PHYs negotiated in connections |
GAP features | Description |
---|---|
Multirole | Initiator and Observer can run concurrently with connections. |
Multiple bond support | Keys and peer information stored in application space. No restrictions in stack implementation. |
Security Mode 1, Levels 1, 2, 3, and 4 | Support for all levels of SM 1 |
GATT features | Description |
---|---|
GATT Server | Support for one Attribute Protocol (ATT) server for all
connections Includes configurable Service Changed support |
Support for authorization | Enables control points Enables the application to provide fresh data Enables GAP authorization |
GATT Client | Flexible data management options for packet transmission with either fine control or abstract management. |
Implemented GATT Sub-procedures | Exchange MTU Discover all Primary Services Discover Primary Service by Service UUID Find included Services Discover All Characteristics of a Service Discover Characteristics by UUID Discover All Characteristic Descriptors Read Characteristic Value Read using Characteristic UUID Read Long Characteristic Values Read Multiple Characteristic Values (Client only) Write Without Response Write Characteristic Value Notifications Indications Read Characteristic Descriptors Read Long Characteristic Descriptors Write Characteristic Descriptors Write Long Characteristic Values Write Long Characteristic Descriptors Reliable Writes |
SM features | Description |
---|---|
Flexible key generation and storage for reduced memory requirements | Keys are stored directly in application memory to avoid unnecessary copies and memory constraints. |
Authenticated Man-in-the-Middle (MITM) protection | Allows for per-link elevation of the encryption security level. |
Pairing methods: Just works, Numeric Comparison, Passkey Entry, and Out of Band |
API provides the application full control of the pairing sequences. |
ATT features | Description |
---|---|
Server protocol | Fast and memory efficient implementation of the ATT server role |
Client protocol | Fast and memory efficient implementation of the ATT client role |
Configurable ATT_MTU size | Allows for per-link configuration of ATT_MTU size |
LL features | Description |
---|---|
Master role Scanner/initiator role |
The SoftDevice supports multiple concurrent central connections and an additional scanner or initiator role. The initiator role is not available when the number of available simultaneous connections has been reached, but the scanner role is still supported for new device discovery. |
Channel map configuration |
Setup of channel map for all central connections from the application. |
Master-initiated connection parameter update | Central role may initiate connection parameter update. |
LE 1M PHY LE 2M PHY |
LE connections transmitting and receiving packets on all PHYs. Both symmetric connections (where the TX and RX PHYs are the same) and asymmetric connections (where the TX and RX PHYs are different) are supported. Central role is able to initiate a PHY update procedure and respond to a peer-initiated PHY update procedure. |
Encryption | |
LE Ping | |
Privacy |
The Link Layer (LL) can generate and resolve resolvable private addresses in the scanner, and initiator roles. |
Proprietary features | Description |
---|---|
TX Power control | Access for the application to change transmit power settings for a specific role or connection handle. |
MBR for Device Firmware Update (DFU) | Enables over-the-air firmware replacement, including full SoftDevice update capability. |
Quality of Service (QoS) channel survey |
Measures the energy level of Bluetooth Low Energy channels. The application can then set an adapted channel map to avoid busy channels. |
QoS RSSI |
Channel-specific signal strength measurements during scanning and central connections. |
QoS Event Report | Generates a report on every connection event. |
Channel map for Observer role | Access for the application to set a channel map for the Observer role. This can be used to avoid busy or uninteresting channels. |