BLE role configuration

The S132 SoftDevice stack supports concurrent operation in multiple Bluetooth® low energy roles. The roles available can be configured when the S132 SoftDevice stack is enabled at runtime.

The SoftDevice provides a mechanism for enabling the number of central or peripheral roles the application can run concurrently. The SoftDevice can be configured with one connection as a Peripheral and up to eight connections as a Central. The SoftDevice supports running one Advertiser or Broadcaster and one Scanner or Observer concurrently with the BLE connections.

An Initiator can only be started if there are less than eight connections established as a Central. Similarly, a connectable Advertiser can only be started if there are no connections as a Peripheral established. If there is a total of eight connections running, an Advertiser or Broadcaster cannot run simultaneously with a Scanner or Observer.

When the SoftDevice is enabled it will allocate memory for the connections the application has requested. See SoftDevice memory usage chapter for more details.

The SoftDevice supports three predetermined bandwidth levels: low, mid(medium), and high. The bandwidth levels are defined per connection interval, so the connection interval of the connection will also affect the total bandwidth. Bandwidth configuration is an optional feature and if the application chooses to not use the feature the SoftDevice will use default bandwidth configurations. By default, connections as a Central will be set to medium bandwidth and connections as a Peripheral will be set to high bandwidth. The bandwidth can also be configured individually for both transmitting and receiving, allowing for more fine-grained control with asymmetric bandwidth.

When using the bandwidth feature of the SoftDevice the application needs to provide the SoftDevice with information about the bandwidth configurations the application intends to use. This is done when enabling the BLE stack and will allow the SoftDevice to allocate memory pools large enough to fit the bandwidth configurations of all connections. Otherwise connections can fail to be established because there is not enough memory available for the bandwidth requirement of the connection. If the application changes the bandwidth configuration when the link is disconnected it might fail to reconnect because of internal fragmentation of the SoftDevice memory pools. It is therefore recommended to disconnect all links when changing the bandwidth configurations of links.

In addition to the bandwidth feature, connection bandwidth can be increased by enabling Connection Event Length Extension. See Connection timing with Connection Event Length Extension for more information. Enabling Connection Event Length Extension does not increase the size of the SoftDevice memory pools.

Bandwidth and multilink scheduling can both affect each other. See Scheduling for details. Knowledge about multilink scheduling can be used to get predictable performance on all links. Refer Suggested intervals and windows for details about recommended configurations.

Documentation feedback | Developer Zone | Subscribe | Updated 2016-12-09