Synchronizing timout when using Periodic Advertising with Responses (PAwR)

Hello,

I am currently evaluating the new feature called Periodic Advertising with Responses (PAwR) using Nordic's Softdevice controller.

Below you find project related information.

  • nRF52840 DK
  • nRF Connect SDK v2.6.0-rc1
  • nRF Connect Toolchain v2.6.0-rc1
  • Nordic's Softdevice Controller (since Zephyr's currently does not support the PAwR feature)
  • Zephyr samples: periodic_sync_rsp and periodic_adv_rsp 

I use this sample togheter with a second nrf52840 DK board that features the periodic_adv_rsp sample from Zephyr.

When launching Segger's RTT Viever for both samples I receive the following logging messages

      

periodic_sync_rsp                                                                        periodic_adv_rsp                                                                          

So far I have identified the following:

  • periodic_adv_rsp
    • HCI opcode 0x2082: HCI_LE_Set_Periodic_Advertising_Subevent_Data with status 0x07 (memory capacity exceeded)
  • periodic_sync_rsp
    • HCI LE controller command, opcode 0x2036: HCI_LE_Set_Extended_Advertising_Parameters with status 0x0C (Command disallowed)

The information was taken from the Bluetooth Core Specification 5.4 (Vol. 4 - Part E, 7.8 LE Controller Commands, Vol 1, Part F, 2 Error code description). 

The HCI related warning is located in zephyr/subsys/bluetooth/host/hci_core.c inside the function bt_hci_cmd_send_sync at line 335 (at least that's what I have identified).

Although I have identified the cause I do not know how to proceed. Do you have more information or can share insights in how to tackle this problem?

Am I missing any Kconfig option?

Best regards

ATla5

Note:

The specification states four cases related to 0x2036: HCI_LE_Set_Extended_Advertising_Parameters with status 0x0C

  • If Constant Tone Extensions are enabled for the advertising set and Secondary_Advertising_PHY specifies a PHY that does not allow Constant Tone Extensions, the Controller shall return the error code Command Disallowed (0x0C).
  • If the Host specifies that it requires a specific coding (i.e., value 0x03 or 0x04) in the Primary_Advertising_PHY_Options or Secondary_Advertising_PHY_Options and the Controller supports the LE Feature (Advertising Coding Selection) but is currently unable to provide all the required settings, then the Controller shall return the error code Command Disallowed (0x0C).
  • If the Host issues this command when advertising is enabled for the specified advertising set, the Controller shall return the error code Command Disallowed (0x0C).
  • If periodic advertising is enabled for the advertising set and the Secondary_Advertising_PHY parameter does not specify the PHY currently being used for the periodic advertising, the Controller shall return the error code Command Disallowed (0x0C).

Are one of these cases relevant for my problem?

Parents
  • Hi,

    Could you please try the same samples using NCS v2.6.0?

    Best regards,
    Dejan

  • Hello Dejan,

    Even with another NCS/Zephyr version such as v2.6.0 as you have suggested the problem remains.
    Does this issue occur when you test these samples too?

    Is anything required besides the two samples (periodic_adv_rsp, periodic_sync_rsp) each running on a separate nRF52840 DK?

    Best regards

    ATla5

  • Hi,

    Thank you for providing the logs.

    Could you please try to manually modify 2 lines in main.c (per_adv_params) of the periodic_adv_rsp sample as shown below and run the sample again?

    //.interval_min = 0xFF,
    .interval_min = 0x50 * NUM_SUBEVENTS,
    //.interval_max = 0xFF,
    .interval_max = 0x50 * NUM_SUBEVENTS,

    Best regards,
    Dejan

  • Hello,

    I have tested your suggestion and these are the results and it looks like the expected outcome.
    Correct me if I am wrong - the adjustment for both the min. and max. interval depends on the 

    .response_slot_spacing = 0x50,


    parameter. The advertising interval was too short (0xFF * 1.25ms = 318.75ms) since the given slot spacing (0x50 * 0.125ms = 10ms) and the number of subevents (5) and the subevent interval (0x30 * 1.25ms =  60ms) led to a situation where the given subevents could not be processed within the given advertising interval, right?
    Therefore, the new advertising interval is (0x50 * 5 * 1.25ms = 500ms) is large enough given the parameters

    static const struct bt_le_per_adv_param per_adv_params = {
    	.interval_min = 0x50 * NUM_SUBEVENTS, /* 300 * 1.25ms = 500ms */
    	.interval_max = 0x50 * NUM_SUBEVENTS, /* 300 * 1.25ms = 500ms */
    	.options = 0,
    	.num_subevents = NUM_SUBEVENTS, /* 5 */
    	.subevent_interval = 0x30, /* 48 * 1.25ms = 60ms */
    	.response_slot_delay = 0x5, /* 5 * 1.25ms = 6.25ms */
    	.response_slot_spacing = 0x50, /* 80 * 0.125ms = 10ms */
    	.num_response_slots = NUM_RSP_SLOTS, /* 5 */
    };

    Bluetooth® Core Specification Version 5.4 - Technical Overview

    This is the output of the RTT Viewer log files of both the periodic_adv_rsp and periodic_sync_rsp application.

    # SEGGER J-Link RTT Viewer V7.94d Terminal Log File
    # Compiled: 10:55:47 on Jan 11 2024
    # Logging started @ 22 Mar 2024 11:10:08
    00> *** Booting nRF Connect SDK v3.5.99-ncs1 ***
    00> Starting Periodic Advertising Demo
    00> [00:00:00.000,640] <inf> bt_sdc_hci_driver: SoftDevice Controller build revision: 
    00>                                             36 f0 e5 0e 87 68 48 fb  02 fd 9f 82 cc 32 e5 7b |6....hH. .....2.{
    00>                                             91 b1 5c ed                                      |..\.             
    00> [00:00:00.002,929] <inf> bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)
    00> [00:00:00.002,960] <inf> bt_hci_core: HW Variant: nRF52x (0x0002)
    00> [00:00:00.002,990] <inf> bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 54.58864 Build 1214809870
    00> [00:00:00.003,814] <inf> bt_hci_core: Identity: E0:DA:40:71:A5:37 (random)
    00> [00:00:00.003,845] <inf> bt_hci_core: HCI: version 5.4 (0x0d) revision 0x118f, manufacturer 0x0059
    00> [00:00:00.003,875] <inf> bt_hci_core: LMP: version 5.4 (0x0d) subver 0x118f
    00> Start Periodic Advertising
    00> Scanning successfully started
    00> Subevent data set 1
    00> Subevent data set 2
    00> Subevent data set 3
    00> Subevent data set 4
    00> Subevent data set 5
    00> Subevent data set 6
    00> Subevent data set 7
    00> Subevent data set 8
    00> Subevent data set 9
    00> Subevent data set 10
    00> Subevent data set 11
    00> Subevent data set 12
    00> Connected (err 0x00)
    00> Subevent data set 13
    00> Subevent data set 14
    00> Subevent data set 15
    00> PAST sent
    00> Discovery started
    00> Subevent data set 16
    00> Subevent data set 17
    00> Subevent data set 18
    00> Subevent data set 19
    00> Subevent data set 20
    00> Subevent data set 21
    00> Subevent data set 22
    00> Subevent data set 23
    00> Subevent data set 24
    00> Subevent data set 25
    00> Discovery: attr 0x2000687c
    00> UUID 12345678-1234-5678-1234-56789abcdef1
    00> Characteristic handle: 18
    00> Write started
    00> Subevent data set 26
    00> PAwR config written to sync 0, disconnecting
    00> Subevent data set 27
    00> Subevent data set 28
    00> Subevent data set 29
    00> Subevent data set 30
    00> Disconnected (reason 0x16)
    00> Scanning successfully started
    00> Subevent data set 31
    00> Response: subevent 0, slot 0
    00>     0xFF: 59001D
    00> Subevent data set 32
    00> Subevent data set 33
    00> Subevent data set 34
    00> Subevent data set 35
    00> Subevent data set 36
    00> Response: subevent 0, slot 0
    00>     0xFF: 590022
    00> Subevent data set 37
    00> Subevent data set 38
    00> Subevent data set 39
    00> Subevent data set 40
    00> Subevent data set 41
    00> Response: subevent 0, slot 0
    00>     0xFF: 590027
    00> Subevent data set 42
    00> Subevent data set 43
    00> Subevent data set 44
    00> Subevent data set 45
    00> Subevent data set 46
    00> Response: subevent 0, slot 0
    00>     0xFF: 59002C
    00> Subevent data set 47
    00> Subevent data set 48
    00> Subevent data set 49
    00> Subevent data set 50
    00> Subevent data set 51
    00> Subevent data set 52
    00> Subevent data set 53
    00> Subevent data set 54
    00> Subevent data set 55
    00> Subevent data set 56
    00> Response: subevent 0, slot 0
    00>     0xFF: 590036
    00> Subevent data set 57
    00> Subevent data set 58
    00> Subevent data set 59
    00> Subevent data set 60
    00> Subevent data set 61
    00> Response: subevent 0, slot 0
    00>     0xFF: 59003B
    00> Subevent data set 62
    00> Subevent data set 63
    00> Subevent data set 64
    00> Subevent data set 65
    00> Subevent data set 66
    00> Response: subevent 0, slot 0
    00>     0xFF: 590040
    00> Subevent data set 67
    00> Subevent data set 68
    00> Subevent data set 69
    00> Subevent data set 70
    00> Subevent data set 71
    00> Response: subevent 0, slot 0
    00>     0xFF: 590045
    00> Subevent data set 72
    00> Subevent data set 73
    00> Subevent data set 74
    00> Subevent data set 75
    00> Subevent data set 76
    00> Response: subevent 0, slot 0
    00>     0xFF: 59004A
    00> Subevent data set 77
    00> Subevent data set 78
    00> Subevent data set 79
    00> Subevent data set 80
    00> Subevent data set 81
    00> Response: subevent 0, slot 0
    00>     0xFF: 59004F
    00> Subevent data set 82
    00> Subevent data set 83
    00> Subevent data set 84
    00> Subevent data set 85
    00> Subevent data set 86
    00> Response: subevent 0, slot 0
    00>     0xFF: 590054
    00> Subevent data set 87
    00> Subevent data set 88
    00> Subevent data set 89
    00> Subevent data set 90
    00> Subevent data set 91
    00> Response: subevent 0, slot 0
    00>     0xFF: 590059
    00> Subevent data set 92
    00> Subevent data set 93
    00> Subevent data set 94
    00> Subevent data set 95
    00> Subevent data set 96
    00> Response: subevent 0, slot 0
    00>     0xFF: 59005E
    00> Subevent data set 97
    00> Subevent data set 98
    00> Subevent data set 99
    00> Subevent data set 100
    00> Subevent data set 101
    00> Response: subevent 0, slot 0
    00>     0xFF: 590063
    00> Subevent data set 102
    00> Subevent data set 103
    00> Subevent data set 104
    00> Subevent data set 105
    00> Subevent data set 106
    00> Response: subevent 0, slot 0
    00>     0xFF: 590068
    00> Subevent data set 107
    00> Subevent data set 108
    00> Subevent data set 109
    00> Subevent data set 110
    00> Subevent data set 111
    00> Response: subevent 0, slot 0
    00>     0xFF: 59006D
    00> Subevent data set 112
    00> Subevent data set 113
    00> Subevent data set 114
    00> Subevent data set 115
    00> Subevent data set 116
    00> Response: subevent 0, slot 0
    00>     0xFF: 590072
    00> Subevent data set 117
    00> Subevent data set 118
    00> Subevent data set 119
    00> Subevent data set 120
    00> Subevent data set 121
    00> Response: subevent 0, slot 0
    00>     0xFF: 590077
    00> Subevent data set 122
    00> Subevent data set 123
    00> Subevent data set 124
    00> Subevent data set 125
    00> Subevent data set 126
    00> Response: subevent 0, slot 0
    00>     0xFF: 59007C
    00> Subevent data set 127
    00> Subevent data set 128
    00> Subevent data set 129
    00> Subevent data set 130
    00> Subevent data set 131
    00> Response: subevent 0, slot 0
    00>     0xFF: 590081
    00> Subevent data set 132
    00> Subevent data set 133
    00> Subevent data set 134
    00> Subevent data set 135
    00> Subevent data set 136
    00> Response: subevent 0, slot 0
    00>     0xFF: 590086
    00> Subevent data set 137
    00> Subevent data set 138
    00> Subevent data set 139
    00> Subevent data set 140
    00> Subevent data set 141
    00> Response: subevent 0, slot 0
    00>     0xFF: 59008B
    00> Subevent data set 142
    00> Subevent data set 143
    00> Subevent data set 144
    00> Subevent data set 145
    00> Subevent data set 146
    00> Response: subevent 0, slot 0
    00>     0xFF: 590090
    00> Subevent data set 147
    00> Subevent data set 148
    00> Subevent data set 149
    00> Subevent data set 150
    00> Subevent data set 151
    00> Response: subevent 0, slot 0
    00>     0xFF: 590095
    00> Subevent data set 152
    00> Subevent data set 153
    00> Subevent data set 154
    00> Subevent data set 155
    00> Subevent data set 156
    00> Response: subevent 0, slot 0
    00>     0xFF: 59009A
    00> Subevent data set 157
    00> Subevent data set 158
    00> Subevent data set 159
    00> Subevent data set 160
    00> Subevent data set 161
    00> Response: subevent 0, slot 0
    00>     0xFF: 59009F
    00> Subevent data set 162
    00> Subevent data set 163
    00> Subevent data set 164
    00> Subevent data set 165
    00> Subevent data set 166
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900A4
    00> Subevent data set 167
    00> Subevent data set 168
    00> Subevent data set 169
    00> Subevent data set 170
    00> Subevent data set 171
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900A9
    00> Subevent data set 172
    00> Subevent data set 173
    00> Subevent data set 174
    00> Subevent data set 175
    00> Subevent data set 176
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900AE
    00> Subevent data set 177
    00> Subevent data set 178
    00> Subevent data set 179
    00> Subevent data set 180
    00> Subevent data set 181
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900B3
    00> Subevent data set 182
    00> Subevent data set 183
    00> Subevent data set 184
    00> Subevent data set 185
    00> Subevent data set 186
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900B8
    00> Subevent data set 187
    00> Subevent data set 188
    00> Subevent data set 189
    00> Subevent data set 190
    00> Subevent data set 191
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900BD
    00> Subevent data set 192
    00> Subevent data set 193
    00> Subevent data set 194
    00> Subevent data set 195
    00> Subevent data set 196
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900C2
    00> Subevent data set 197
    00> Subevent data set 198
    00> Subevent data set 199
    00> Subevent data set 200
    00> Subevent data set 201
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900C7
    00> Subevent data set 202
    00> Subevent data set 203
    00> Subevent data set 204
    00> Subevent data set 205
    00> Subevent data set 206
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900CC
    00> Subevent data set 207
    00> Subevent data set 208
    00> Subevent data set 209
    00> Subevent data set 210
    00> Subevent data set 211
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900D1
    00> Subevent data set 212
    00> Subevent data set 213
    00> Subevent data set 214
    00> Subevent data set 215
    00> Subevent data set 216
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900D6
    00> Subevent data set 217
    00> Subevent data set 218
    00> Subevent data set 219
    00> Subevent data set 220
    00> Subevent data set 221
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900DB
    00> Subevent data set 222
    00> Subevent data set 223
    00> Subevent data set 224
    00> Subevent data set 225
    00> Subevent data set 226
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900E0
    00> Subevent data set 227
    00> Subevent data set 228
    00> Subevent data set 229
    00> Subevent data set 230
    00> Subevent data set 231
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900E5
    00> Subevent data set 232
    00> Subevent data set 233
    00> Subevent data set 234
    00> Subevent data set 235
    00> Subevent data set 236
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900EA
    00> Subevent data set 237
    00> Subevent data set 238
    00> Subevent data set 239
    00> Subevent data set 240
    00> Subevent data set 241
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900EF
    00> Subevent data set 242
    00> Subevent data set 243
    00> Subevent data set 244
    00> Subevent data set 245
    00> Subevent data set 246
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900F4
    00> Subevent data set 247
    00> Subevent data set 248
    00> Subevent data set 249
    00> Subevent data set 250
    00> Subevent data set 251
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900F9
    00> Subevent data set 252
    00> Subevent data set 253
    00> Subevent data set 254
    00> Subevent data set 255
    00> Subevent data set 0
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900FE
    00> Subevent data set 1
    00> Subevent data set 2
    00> Subevent data set 3
    00> Subevent data set 4
    00> Subevent data set 5
    00> Response: subevent 0, slot 0
    00>     0xFF: 590003
    00> Subevent data set 6
    00> Subevent data set 7
    00> Subevent data set 8
    00> Subevent data set 9
    00> Subevent data set 10
    00> Response: subevent 0, slot 0
    00>     0xFF: 590008
    00> Subevent data set 11
    00> Subevent data set 12
    00> Subevent data set 13
    00> Subevent data set 14
    00> Subevent data set 15
    00> Response: subevent 0, slot 0
    00>     0xFF: 59000D
    00> Subevent data set 16
    00> Subevent data set 17
    00> Subevent data set 18
    00> Subevent data set 19
    00> Subevent data set 20
    00> Response: subevent 0, slot 0
    00>     0xFF: 590012
    00> Subevent data set 21
    00> Subevent data set 22
    00> Subevent data set 23
    00> Subevent data set 24
    00> Subevent data set 25
    00> Response: subevent 0, slot 0
    00>     0xFF: 590017
    00> Subevent data set 26
    00> Subevent data set 27
    00> Subevent data set 28
    00> Subevent data set 29
    00> Subevent data set 30
    00> Response: subevent 0, slot 0
    00>     0xFF: 59001C
    00> Subevent data set 31
    00> Subevent data set 32
    00> Subevent data set 33
    00> Subevent data set 34
    00> Subevent data set 35
    00> Response: subevent 0, slot 0
    00>     0xFF: 590021
    00> Subevent data set 36
    00> Subevent data set 37
    00> Subevent data set 38
    00> Subevent data set 39
    00> Subevent data set 40
    00> Response: subevent 0, slot 0
    00>     0xFF: 590026
    00> Subevent data set 41
    00> Subevent data set 42
    00> Subevent data set 43
    00> Subevent data set 44
    00> Subevent data set 45
    00> Response: subevent 0, slot 0
    00>     0xFF: 59002B
    00> Subevent data set 46
    00> Subevent data set 47
    00> Subevent data set 48
    00> Subevent data set 49
    00> Subevent data set 50
    00> Response: subevent 0, slot 0
    00>     0xFF: 590030
    00> Subevent data set 51
    00> Subevent data set 52
    00> Subevent data set 53
    00> Subevent data set 54
    00> Subevent data set 55
    00> Response: subevent 0, slot 0
    00>     0xFF: 590035
    00> Subevent data set 56
    00> Subevent data set 57
    00> Subevent data set 58
    00> Subevent data set 59
    00> Subevent data set 60
    00> Response: subevent 0, slot 0
    00>     0xFF: 59003A
    00> Subevent data set 61
    00> Subevent data set 62
    00> Subevent data set 63
    00> Subevent data set 64
    00> Subevent data set 65
    00> Response: subevent 0, slot 0
    00>     0xFF: 59003F
    00> Subevent data set 66
    00> Subevent data set 67
    00> Subevent data set 68
    00> Subevent data set 69
    00> Subevent data set 70
    00> Response: subevent 0, slot 0
    00>     0xFF: 590044
    00> Subevent data set 71
    00> Subevent data set 72
    00> Subevent data set 73
    00> Subevent data set 74
    00> Subevent data set 75
    00> Response: subevent 0, slot 0
    00>     0xFF: 590049
    00> Subevent data set 76
    00> Subevent data set 77
    00> Subevent data set 78
    00> Subevent data set 79
    00> Subevent data set 80
    00> Response: subevent 0, slot 0
    00>     0xFF: 59004E
    00> Subevent data set 81
    00> Subevent data set 82
    00> Subevent data set 83
    00> Subevent data set 84
    00> Subevent data set 85
    00> Response: subevent 0, slot 0
    00>     0xFF: 590053
    00> Subevent data set 86
    00> Subevent data set 87
    00> Subevent data set 88
    00> Subevent data set 89
    00> Subevent data set 90
    00> Response: subevent 0, slot 0
    00>     0xFF: 590058
    00> Subevent data set 91
    00> Subevent data set 92
    00> Subevent data set 93
    00> Subevent data set 94
    00> Subevent data set 95
    00> Response: subevent 0, slot 0
    00>     0xFF: 59005D
    00> Subevent data set 96
    00> Subevent data set 97
    00> Subevent data set 98
    00> Subevent data set 99
    00> Subevent data set 100
    00> Response: subevent 0, slot 0
    00>     0xFF: 590062
    00> Subevent data set 101
    00> Subevent data set 102
    00> Subevent data set 103
    00> Subevent data set 104
    00> Subevent data set 105
    00> Response: subevent 0, slot 0
    00>     0xFF: 590067
    00> Subevent data set 106
    00> Subevent data set 107
    00> Subevent data set 108
    00> Subevent data set 109
    00> Subevent data set 110
    00> Response: subevent 0, slot 0
    00>     0xFF: 59006C
    00> Subevent data set 111
    00> Subevent data set 112
    00> Subevent data set 113
    00> Subevent data set 114
    00> Subevent data set 115
    00> Response: subevent 0, slot 0
    00>     0xFF: 590071
    00> Subevent data set 116
    00> Subevent data set 117
    00> Subevent data set 118
    00> Subevent data set 119
    00> Subevent data set 120
    00> Response: subevent 0, slot 0
    00>     0xFF: 590076
    00> Subevent data set 121
    00> Subevent data set 122
    00> Subevent data set 123
    00> Subevent data set 124
    00> Subevent data set 125
    00> Response: subevent 0, slot 0
    00>     0xFF: 59007B
    00> Subevent data set 126
    00> Subevent data set 127
    00> Subevent data set 128
    00> Subevent data set 129
    00> Subevent data set 130
    00> Response: subevent 0, slot 0
    00>     0xFF: 590080
    00> Subevent data set 131
    00> Subevent data set 132
    00> Subevent data set 133
    00> Subevent data set 134
    00> Subevent data set 135
    00> Response: subevent 0, slot 0
    00>     0xFF: 590085
    00> Subevent data set 136
    00> Subevent data set 137
    00> Subevent data set 138
    00> Subevent data set 139
    00> Subevent data set 140
    00> Response: subevent 0, slot 0
    00>     0xFF: 59008A
    00> Subevent data set 141
    00> Subevent data set 142
    00> Subevent data set 143
    00> Subevent data set 144
    00> Subevent data set 145
    00> Response: subevent 0, slot 0
    00>     0xFF: 59008F
    00> Subevent data set 146
    00> Subevent data set 147
    00> Subevent data set 148
    00> Subevent data set 149
    00> Subevent data set 150
    00> Response: subevent 0, slot 0
    00>     0xFF: 590094
    00> Subevent data set 151
    00> Subevent data set 152
    00> Subevent data set 153
    00> Subevent data set 154
    00> Subevent data set 155
    00> Response: subevent 0, slot 0
    00>     0xFF: 590099
    00> Subevent data set 156
    00> Subevent data set 157
    00> Subevent data set 158
    00> Subevent data set 159
    00> Subevent data set 160
    00> Response: subevent 0, slot 0
    00>     0xFF: 59009E
    00> Subevent data set 161
    00> Subevent data set 162
    00> Subevent data set 163
    00> Subevent data set 164
    00> Subevent data set 165
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900A3
    00> Subevent data set 166
    00> Subevent data set 167
    00> Subevent data set 168
    00> Subevent data set 169
    00> Subevent data set 170
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900A8
    00> Subevent data set 171
    00> Subevent data set 172
    00> Subevent data set 173
    00> Subevent data set 174
    00> Subevent data set 175
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900AD
    00> Subevent data set 176
    00> Subevent data set 177
    00> Subevent data set 178
    00> Subevent data set 179
    00> Subevent data set 180
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900B2
    00> Subevent data set 181
    00> Subevent data set 182
    00> Subevent data set 183
    00> Subevent data set 184
    00> Subevent data set 185
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900B7
    00> Subevent data set 186
    00> Subevent data set 187
    00> Subevent data set 188
    00> Subevent data set 189
    00> Subevent data set 190
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900BC
    00> Subevent data set 191
    00> Subevent data set 192
    00> Subevent data set 193
    00> Subevent data set 194
    00> Subevent data set 195
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900C1
    00> Subevent data set 196
    00> Subevent data set 197
    00> Subevent data set 198
    00> Subevent data set 199
    00> Subevent data set 200
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900C6
    00> Subevent data set 201
    00> Subevent data set 202
    00> Subevent data set 203
    00> Subevent data set 204
    00> Subevent data set 205
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900CB
    00> Subevent data set 206
    00> Subevent data set 207
    00> Subevent data set 208
    00> Subevent data set 209
    00> Subevent data set 210
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900D0
    00> Subevent data set 211
    00> Subevent data set 212
    00> Subevent data set 213
    00> Subevent data set 214
    00> Subevent data set 215
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900D5
    00> Subevent data set 216
    00> Subevent data set 217
    00> Subevent data set 218
    00> Subevent data set 219
    00> Subevent data set 220
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900DA
    00> Subevent data set 221
    00> Subevent data set 222
    00> Subevent data set 223
    00> Subevent data set 224
    00> Subevent data set 225
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900DF
    00> Subevent data set 226
    00> Subevent data set 227
    00> Subevent data set 228
    00> Subevent data set 229
    00> Subevent data set 230
    00> Response: subevent 0, slot 0
    00>     0xFF: 5900E4
    
    # Logging stopped @ 22 Mar 2024 11:11:07
    

    # SEGGER J-Link RTT Viewer V7.94d Terminal Log File
    # Compiled: 10:55:47 on Jan 11 2024
    # Logging started @ 22 Mar 2024 11:10:14
    00> *** Booting nRF Connect SDK v3.5.99-ncs1 ***
    00> Starting Periodic Advertising with Responses Synchronization Demo
    00> [00:00:00.000,732] <inf> bt_sdc_hci_driver: SoftDevice Controller build revision: 
    00>                                             36 f0 e5 0e 87 68 48 fb  02 fd 9f 82 cc 32 e5 7b |6....hH. .....2.{
    00>                                             91 b1 5c ed                                      |..\.             
    00> [00:00:00.002,929] <inf> bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)
    00> [00:00:00.002,960] <inf> bt_hci_core: HW Variant: nRF52x (0x0002)
    00> [00:00:00.002,990] <inf> bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 54.58864 Build 1214809870
    00> [00:00:00.003,814] <inf> bt_hci_core: Identity: CC:99:7F:97:AC:17 (random)
    00> [00:00:00.003,845] <inf> bt_hci_core: HCI: version 5.4 (0x0d) revision 0x118f, manufacturer 0x0059
    00> [00:00:00.003,875] <inf> bt_hci_core: LMP: version 5.4 (0x0d) subver 0x118f
    00> Waiting for periodic sync...
    00> Connected (err 0x00)
    00> New timing: subevent 0, response slot 0
    00> Not synced yet
    00> Synced to 2F:7B:6F:6C:EC:75 (random) with 5 subevents
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590018
    00> Periodic sync established.
    00> Disconnected (reason 0x13)
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 59001D
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590022
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590027
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 59002C
    00> Failed to receive indication: subevent 0
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590036
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 59003B
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590040
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590045
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 59004A
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 59004F
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590054
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590059
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 59005E
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590063
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590068
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 59006D
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590072
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590077
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 59007C
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590081
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590086
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 59008B
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590090
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590095
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 59009A
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 59009F
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900A4
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900A9
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900AE
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900B3
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900B8
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900BD
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900C2
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900C7
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900CC
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900D1
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900D6
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900DB
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900E0
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900E5
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900EA
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900EF
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900F4
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900F9
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900FE
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590003
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590008
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 59000D
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590012
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590017
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 59001C
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590021
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590026
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 59002B
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590030
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590035
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 59003A
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 59003F
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590044
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590049
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 59004E
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590053
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590058
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 59005D
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590062
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590067
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 59006C
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590071
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590076
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 59007B
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590080
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590085
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 59008A
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 59008F
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590094
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 590099
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 59009E
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900A3
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900A8
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900AD
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900B2
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900B7
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900BC
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900C1
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900C6
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900CB
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900D0
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900D5
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900DA
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900DF
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900E4
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900E9
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900EE
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900F3
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900F8
    00> Indication: subevent 0, responding in slot 0
    00>     0xFF: 5900FD
    
    # Logging stopped @ 22 Mar 2024 11:11:09
    

    One more thing - The initial issue why no synchronisation was even possible was caused by the modified Kconfig option

    CONFIG_BT_DEVICE_NAME="PAwR: sync-sample"

    which included ASCII characters such as ":" (colon) and "-" (dash). I have not found any restrictions given the Bluetooth device name. Do you know why these characters cause an issue?

    Best regards,

    ATla5

  • Hi,

    ATla5 said:
    The advertising interval was too short (0xFF * 1.25ms = 318.75ms) since the given slot spacing (0x50 * 0.125ms = 10ms) and the number of subevents (5) and the subevent interval (0x30 * 1.25ms =  60ms) led to a situation where the given subevents could not be processed within the given advertising interval, right?

    I will get back to you regarding this probably during next week.

    ATla5 said:
    which included ASCII characters such as ":" (colon) and "-" (dash). I have not found any restrictions given the Bluetooth device name. Do you know why these characters cause an issue?

    Regarding the Bluetooth device name, some changes (shown below) are needed in the periodic_adv_rsp sample.

    static void device_found(const bt_addr_le_t *addr, int8_t rssi, uint8_t type,
    			 struct net_buf_simple *ad)
    {
      ...
    	if (strcmp(name, "PAwR: sync-sample")) {
    		return;
    	}
      ...
    }

    Best regards,
    Dejan

  • Hi,

    With regard to previously observed warning, the sample was trying to set the subevent data to an invalid subevent index, and this causes the warning to be reported by the controller.

    The root cause of the issue seems to be scheduling conflict between subevents and passive scanner in the periodic_adv_rsp sample. In a previously suggested fix, scan_window (30ms + scheduling overhead) is added into periodic advertising interval.

    (subevent_interval + scan_window) * NUM_SUBEVENTS = (0x30 + 0x20) * NUM_SUBEVENTS = (60ms + 40ms) * NUM_SUBEVENTS

    Another (better) solution can be found in this PR - fix PAWR sample.

    Best regards,
    Dejan

  • Hello,

    Thank you for your explaination.

    I've checked out the fix (zephyr sample repository) of the PaWR sample and it works.
    Thank you!

Reply Children
No Data
Related