Concurrent BIS and PAwR when using PAST

Dear Team, 

Is it possible to run BIS and PAwR concurrently while using PAST for synchronization? 
I am using the nRF52840 DK and NCS 2.8.

I managed to start two periodic advertising trains (BIS and PAwR) concurrently without any issues (both are working as expected). However, when I attempt to create a connection to a peer device (for PAST) afterwards, it fails with error 0x0C (command disallowed).

After some debugging, I may have found the cause of this problem. To support PAwR, the configuration CONFIG_BT_PER_ADV_RSP is required. This configuration extends the struct bt_le_per_adv_param with fields related to PAwR. When setting the parameters for my periodic advertisements used for BIS, I initially set those values to zero, as I do not need them (which works without problems). However, when doing so I cannot connect with any device anymore. If I set those values to meaningful numbers, I can successfully establish a connection again, but I can no longer create a BIG (as I now have two PAwR trains).

Note: The advertising does not need to be started to resolve this issue; it is sufficient to set the parameters using bt_le_per_adv_set_param() and set the PAwR related fileds of bt_le_per_adv_param to zero.

This issue can be recreated by using the existing zephyr sample (zephyr/samples/bluetooth): periodic_adv_rsp & periodic_sync_rsp.

Just change the periodic advertising parameters in main.c of the periodic_adv_rsp sample to: 

static const struct bt_le_per_adv_param per_adv_params = {
  .interval_min = 0xFF,
  .interval_max = 0xFF,
  .options = 0,
  .num_subevents = 0,
  .subevent_interval = 0,
  .response_slot_delay = 0,
  .response_slot_spacing = 0,
  .num_response_slots = 0,
};

As result, a connection cannot be established anymore: 

*** Booting nRF Connect SDK v2.8.0-a2386bfc8401 ***
*** Using Zephyr OS v3.7.99-0bc3393fb112 ***
Starting Periodic Advertising Demo
[00:00:00.000,671] <inf> bt_sdc_hci_driver: SoftDevice Controller build revision: 
                                            fe 2c f9 6a 7f 36 22 2e  a0 79 c0 40 be 2c 03 20 |.,.j.6". .y.@.,. 
                                            40 c2 f3 32                                      |@..2             
[00:00:00.003,021] <inf> bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)
[00:00:00.003,051] <inf> bt_hci_core: HW Variant: nRF52x (0x0002)
[00:00:00.003,082] <inf> bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 254.63788 Build 573996906
[00:00:00.003,997] <inf> bt_hci_core: Identity: E7:C1:B9:C8:AB:0B (random)
[00:00:00.004,058] <inf> bt_hci_core: HCI: version 6.0 (0x0e) revision 0x104e, manufacturer 0x0059
[00:00:00.004,089] <inf> bt_hci_core: LMP: version 6.0 (0x0e) subver 0x104e
Start Periodic Advertising
Start Extended Advertising
Scanning successfully started
[00:00:00.219,116] <wrn> bt_hci_core: opcode 0x2043 status 0x0c 
Create conn to ø$ failed (4294967283)

Thanks, 

Rainer

Related