SoftDevice timing-activities and priorities

The SoftDevice supports up to eight connections as a Central, up to one connection as a Peripheral, an Advertiser or a Broadcaster and an Observer or Scanner simultaneously. In addition to these BLE roles, Flash memory API and Radio Timeslot API can also run simultaneously.

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 is no connection as a Peripheral established. See BLE role configuration for more information on the BLE stack configuration.

Central link timing-events are added relative to already running central link timing-events. Advertiser and broadcaster timing-events are scheduled as early as possible. Peripheral link timing-events follow the timings dictated by the connected peer. Peripheral role timing-events (peripheral link timing-event, advertiser/broadcaster timing-event) and central role timing-events (central link timing-event, initiator/scanner timing-event) are scheduled independently and so may occur at the same time and collide. Similarly, Flash access timing-event and Radio Timeslot timing-event are scheduled independently and so may occur at the same time and collide.

The different timing-activities have different priorities at different times, dependent upon their state. As an example, if a connection as a Peripheral is close to its supervision time-out it will block all other timing-activities and get the timing-event it requests. In this case all other timing-activities will be blocked if they overlap with the connection timing-event, and they will have to be rescheduled. Table Table 1 summarizes the priorities:

Table 1. Scheduling priorities

Priority (Decreasing order)

Role state
First priority
  • Connection as a Peripheral during connection update procedure.
  • Connection setup as a Peripheral (waiting for ack from peer)
  • Connection as a Peripheral that is about to time-out
Second priority
  • Central connections that are about to time out
Third priority
  • Central connection setup (waiting for ack from peer)
  • Initiator
  • Advertiser/Broadcaster/Scanner which has been blocked consecutively for a few times.
    Important: An advertiser which is started while a link as a Peripheral is active, does not increase its priority at all.
Fourth priority
  • All BLE roles in states other than above run with this priority.
  • Flash access after it has been blocked consecutively for a few times.
  • Radio Timeslot with high priority.
Last priority
  • Flash access
  • Radio Timeslot with normal priority

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