The BLE protocol stack in the SoftDevice has been designed to provide an abstract but flexible interface for application development for Bluetooth® low energy devices.
GAP, GATT, SM, and L2CAP are implemented in the SoftDevice and managed through the 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 BLE API is consistent across Bluetooth role implementations where common features have the same interface. The following tables describe the features found in the BLE 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. |
GAP features | Description |
---|---|
Multi-role: |
Central, Peripheral, Observer, and Broadcaster can run concurrently with a connection. |
Multiple bond support |
Keys and peer information stored in application space. No restrictions in stack implementation. |
Security Mode 1: Levels 1, 2 & 3 |
Support for all levels of SM 1. |
GATT features | Description |
---|---|
Full GATT Server |
Support for three concurrent ATT server sessions. Includes configurable Service Changed support. |
Support for authorization |
Enables control points. Enables freshest data. Enables GAP authorization. |
Full GATT Client | Flexible data management options for packet transmission with either fine control or abstract management. |
Implemented GATT Sub-procedures |
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. |
Security Manager 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 MITM (Man in the middle) protection |
Allows for per-link elevation of the encryption security level. |
Pairing methods: Just works, 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. |
Max MTU size 23 bytes | Up to 20 bytes of user data available per packet. |
Controller, Link Layer features | Description |
---|---|
Master role Scanner/Initiator roles |
The SoftDevice supports eight concurrent master connections and an additional Scanner/Initiator role. When the maximum number of simultaneous connections are established, the Scanner role will be supported for new device discovery. However, the initiator is not available at that time. |
Master connection parameter update | |
Channel map configuration |
Setup of channel map for all master connections from the application. Accepting update for the channel map for a slave connection. |
Slave role Advertiser/broadcaster role |
Supports advertiser, or one peripheral connection and one additional broadcaster. |
Connection parameter update | Central role may initiate connection parameter update. Peripheral role will accept connection parameter update. |
Encryption | |
RSSI |
Signal strength measurements during advertising, scanning, and central and peripheral connections. |
Proprietary features | Description |
---|---|
TX Power control | Access for the application to change TX power settings anytime. |
Enhanced Privacy 1.1 support | Synchronous and low power solution for Bluetooth low energy enhanced privacy with hardware-accelerated address resolution for whitelisting. |
Master Boot Record (MBR) for Device Firmware Update (DFU) | Enables over-the-air SoftDevice replacement, giving full SoftDevice update capability. |