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 Bluetooth® low energy 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 about to reach 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 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 Bluetooth low energy 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