This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Multiple Advertisers/Broadcasters in Nordic Soft Device (S140) at the same time

Dear forum and Nordic Support team,

I just want to confirm that there is only one Broadcaster (Advertising) role possible at given time on Nordic Soft Devices (e.g. S132 and S140) even if multiple Peripheral roles "slots" are provisioned from APP firmware. As per this post: https://devzone.nordicsemi.com/f/nordic-q-a/38211/multiple-advertising-sets-error---nrf52832

The background:

  • I would like to advertise multiple packet formats from the single device at the same time.
  • I'm aware that this is possible through time-slot API (e.g. if one or more of these packets are non-connectable) or through altering ADV/SCAN_RSP data by calling standard SD API functions during the run-time (e.g. at radio notification event before/after each broadcasting or connection event).
  • However would this work in case we want to use BLE 4.x "legacy" ADV_IND packets on one "virtual" broadcaster and BLE 5.x "extended" ADV_EXT_IND followed by AUX_ADV_IND on actual auxiliary advertising channel (with using potentially secondary PHY configuration) on second "virtual" broadcaster?

Many thanks!

  • Hi Jan, 

    You cannot alternate between legacy and extended adv on the fly. But it should be fairly easy to do in the application. If, for example, you want to start from legacy adv:

    1. configure legacy adv using sd_ble_gap_adv_set_configure. Set ble_gap_adv_params_t::max_adv_evts=1. Start adv.
    2. after one adv event advertiser will be automatically stopped and BLE_GAP_EVT_ADV_SET_TERMINATED raised to the app. Then you can repeat from step 1,  but set up extended adv instead.

    WIll that work for your usecase?

    -Amanda H.

  • Many thanks Amanda.

    Would you recommend this even for advertisement with high frequency, e.g. 50ms interval (20Hz) meaning both types of the broadcast should be transmitted 10 times a second (100ms intervals)? Would it mean we should run the timers on application level and effectively always set the transmitter just for 1 outgoing event? Any hints how Nordic Soft Device implements mandatory "jitter" to prevent random collisions with other 2.4GHz radio sources which would have the same broadcasting intervals and phase in time?

    Cheers J

  • Hi Jan, 

    It should work if your system is not overloaded in general. For example, if you don't run anything else except two adv, it will work.

    SD will generate BLE_GAP_EVT_ADV_SET_TERMINATED in the end of adv event. If you need accurate intervals better to use timer, otherwise you can just start a new adv on the event.

    SD will add random delay automatically according to the spec, even for the first adv event. You don't need to care about that.

    -Amanda H.

Related