SoftDevice timing-activities and priorities

The SoftDevice supports up to 20 connections as Centrals and Peripherals, an Advertiser or Broadcaster, and an Observer or Scanner simultaneously. In addition to these BLE roles, Flash memory API and Radio Timeslot API can also run simultaneously.

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
  • Central connections that are about to time out
  • Peripheral connection setup (waiting for ack from peer)
  • Peripheral connections that are about to time out
Second priority
  • Central connection setup (waiting for ack from peer)
  • Initiator
  • Connectable advertiser/Broadcaster/Scanner which has been blocked consecutively for a few times
Third 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 2017-03-10