SoftDevice timing-activities and priorities

The SoftDevice supports multiple connections simultaneously in addition to an Advertiser or a Broadcaster. In addition to these Bluetooth® Low Energy roles, Flash memory API and Radio Timeslot API can also run simultaneously.

Advertiser and broadcaster timing-events are scheduled as early as possible. Peripheral link timing-events follow the timings dictated by the connected peer. As peripheral and advertising events are scheduled without knowing about each other, they may occur at the same time and collide. Flash access timing-events and Radio Timeslot timing-events are also 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 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. The following table summarizes the priorities.

Table 1. Scheduling priorities
Priority (Decreasing order) Role state
First priority
  • Peripheral connection setup (waiting for ack from peer)
  • Peripheral connections that are about to time out
Second priority
  • Connectable advertiser/Broadcaster 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
Fourth priority
  • Flash access
  • Radio Timeslot with normal priority