Extend number of devices for PAwR (Coded PHY)

Hi all !

I'm writing this message because I'm having problems trying to increase the number of devices in PAwR (I use Coded PHY).

I based my development on the SDK 2.8.0 example (Periodic_adv_conn / Periodic_sync_conn). I also tried Periodic_adv_rsp / Periodic_sync_rsp examples without success.

I've modified it so that I don't have to connect every time via on the TX side:

bt_conn_le_create_synced function()

On the RX side, I have a fixed subevent and slot numbers to answer to TX.

Based on SDK example, I can exchange data with 25 devices (5 subevents / 5 slots)

I used the following configuration:

#define NUM_RSP_SLOTS 5
#define NUM_SUBEVENTS 5
#define SUBEVENT_INTERVAL 0x30

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

When I try to increase the number of devices (8 subevents / 20 slots per subevent), I don't get the same behavior.

Below are the timings I use depending on the number of subevents and slots.

#define NUM_RSP_SLOTS 20
#define NUM_SUBEVENTS 8

static const struct bt_le_per_adv_param per_adv_params = {
	.interval_min = 0x960,
	.interval_max = 0x960,
	.options = 0,
	.num_subevents = NUM_SUBEVENTS,
	.subevent_interval = 0xF0,
	.response_slot_delay = 0x10,
	.response_slot_spacing = 0x50,
	.num_response_slots = NUM_RSP_SLOTS,
};

I saw that the PAwR feature is still experimental in the las version of the SDK, could this be related or is there something I'm doing wrong?

Thank you in advance for your answers or feedbacks.

Yann

Parents
  • Hi Yann,

    Your configurations seem feasible. Could you please provide more details on what kind of failure you are facing?

    Are there any logs? What are the symptoms?

    Hieu

  • Hi Hieu,

    Thanks for you answer.

    Yes sure, what I can see is that with the initial parameters (5 subevents / 5 slots per subevent) I can synchronize and exchange data between transmitter and receiver.

    Transmitter:

    [00:00:00.011,535] <inf> bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)
    [00:00:00.011,566] <inf> bt_hci_core: HW Variant: nRF52x (0x0002)
    [00:00:00.011,596] <inf> bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 254.63788 Build 573996906
    [00:00:00.012,786] <inf> bt_hci_core: Identity: C8:22:35:1D:70:9F (random)
    [00:00:00.012,817] <inf> bt_hci_core: HCI: version 6.0 (0x0e) revision 0x104e, manufacturer 0x0059
    [00:00:00.012,847] <inf> bt_hci_core: LMP: version 6.0 (0x0e) subver 0x104e
    Start Periodic Advertising
    PAwR RSP : Subevent : 0 Slot : 2
    PAwR RSP : Subevent : 0 Slot : 2
    PAwR RSP : Subevent : 0 Slot : 2
    PAwR RSP : Subevent : 0 Slot : 2
    PAwR RSP : Subevent : 0 Slot : 2
    PAwR RSP : Subevent : 0 Slot : 2

    Receiver:

    Synced to 69:D7:06:00:1C:75 (random) with 5 subevents
    DEBUG - CMD RESP 0x0 0x1 0x0 0x0 0x0
    DEBUG - CMD RESP 0x0 0x1 0x0 0x0 0x0
    DEBUG - CMD RESP 0x0 0x1 0x0 0x0 0x0
    DEBUG - CMD RESP 0x0 0x1 0x0 0x0 0x0
    DEBUG - CMD RESP 0x0 0x1 0x0 0x0 0x0
    DEBUG - CMD RESP 0x0 0x1 0x0 0x0 0x0
    DEBUG - CMD RESP 0x0 0x1 0x0 0x0 0x0
    DEBUG - CMD RESP 0x0 0x1 0x0 0x0 0x0
    DEBUG - CMD RESP 0x0 0x1 0x0 0x0 0x0
    DEBUG - CMD RESP 0x0 0x1 0x0 0x0 0x0

    Now if I update parameters (Subevents 8 / Slots per subevent 20)

    With these settings, the device receiving the PAwR signals can't synchronize.

    Transmitter:

    [00:00:00.011,352] <inf> bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)
    [00:00:00.011,383] <inf> bt_hci_core: HW Variant: nRF52x (0x0002)
    [00:00:00.011,413] <inf> bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 254.63788 Build 573996906
    [00:00:00.012,573] <inf> bt_hci_core: Identity: C8:22:35:1D:70:9F (random)
    [00:00:00.012,634] <inf> bt_hci_core: HCI: version 6.0 (0x0e) revision 0x104e, manufacturer 0x0059
    [00:00:00.012,664] <inf> bt_hci_core: LMP: version 6.0 (0x0e) subver 0x104e
    Start Periodic Advertising
    

    Receiver:

    Synced to 71:31:A2:CE:53:E5 (random) with 8 subevents
    Failed to set subevents to sync to (err -5)
    DEBUG - CMD RESP 0x0 0x1 0x0 0x0 0x0
    Failed to send response (err -5)
    Receive Terminated Callback

     

  • Hi Yann,

    Yes, I have two set of parameters, yours, and the sample default. I tried both.

    Best regards,

    Hieu

  • Ok, thanks.

    Few questions:

    - You tried projects on NRF52840DK board or an other development board ?

    - Can you please share both projects (adv_conn and sync_conn), like this we can test the same things ? (Maybe my prj.conf files are different or something else)

    Thank you,

    Yann

  • Yannch said:
    - You tried projects on NRF52840DK board or an other development board ?

    periodic_adv_conn on NCS 2.8.0 on nRF54L15 DK, and

    periodic_sync_conn on NCS 2.8.0 on nRF52840 DK.

    I also had to enable CODED PHY on both projects.

    Unfortunately, due to complications I still haven't returned to office to get access to more nRF52840 DK yet.

    Yannch said:
    - Can you please share both projects (adv_conn and sync_conn), like this we can test the same things ? (Maybe my prj.conf files are different or something else)

    Sure. Here you go.

    c336919_periodic_sync_conn_250106_01.zipc336919_periodic_adv_conn_250106_01.zip

    Best regards,

    Hieu

  • Hi Hieu,

    I tried on nRF54L15 dev board (on ADV side) the project but I have the same problem.

    Is it possible for you to share with me your .hex files with the 20 slots and 8 subevents config ? For the ADV and SYNC side, like this I can test the same projects as you and I can flash my devices with the nRF programmer. 

    Thank you,

    Yann

  • Hi Yann,

    While I test my setup again to be sure before sending it to you, I cannot reproduce my success anymore...

    I would like to believe that I tested thoroughly last I reported my success, but I clearly don't have any evidence of that now... It is very likely that I made a mistake in the test.

    Regardless, I now can reproduce a failure, and I found that just lengthening the advertising interval is already causing issue. I am going to investigate what is wrong and follow up with you within next week.

    My apologies,

    Hieu

Reply
  • Hi Yann,

    While I test my setup again to be sure before sending it to you, I cannot reproduce my success anymore...

    I would like to believe that I tested thoroughly last I reported my success, but I clearly don't have any evidence of that now... It is very likely that I made a mistake in the test.

    Regardless, I now can reproduce a failure, and I found that just lengthening the advertising interval is already causing issue. I am going to investigate what is wrong and follow up with you within next week.

    My apologies,

    Hieu

Children
Related