Extended advertisement scanner drop messages

Hi,

I set sending of Ext. ADV at a periodicity of 500ms and scanning for 100% time by setting same interval and window configuration to 2.56 s.

But I observed that the scanner stop receiving data sometimes randomly.

I use the code as provided here: https://devzone.nordicsemi.com/f/nordic-q-a/85850/example-for-extended-advertisement-receive-node 

I checked it from Saleae logic analyzer log as attached by toggling a GPIO pin on each data arrivals.

singledevice_500ms.zip  

Is this a normal behaviour?

Moreover, how should the scanner behave when we have more than one broadcast devices?

Parents
  • If you have the possibility it could be interesting to measure the current consumption during this period (e.g. using Nordic PPK2), to understand if it's actively scanning or if it's in sleep for some reason. When you start scanning, can you check if you have set BT_LE_SCAN_OPT_FILTER_DUPLICATE or BT_LE_SCAN_OPT_NONE? I recommend to try BT_LE_SCAN_OPT_NONE to ensure the packets are not filtered somehow.

    Kenneth

  • Hi Kenneth, 

    It is already BT_LE_SCAN_OPT_NONE, as below configuration

    struct bt_le_scan_param scan_param = {
    .type = BT_LE_SCAN_TYPE_PASSIVE,
    .interval = BT_GAP_SCAN_SLOW_INTERVAL_2,
    .window = BT_GAP_SCAN_SLOW_INTERVAL_2,
    .options = BT_LE_SCAN_OPT_NONE
    };

    About the PPK, I will check it and post it soon.

    Moreover, can you explain how should the scanner behave when we have more than one broadcast devices?

  • Hi Kenneth,

    Here is the ppk file where Digital Channel 0 toggling represents the arrival of filtered packet.

    It is observed in the start when the Advertiser is not active, the scanner scans for 100% time but once the advertiser starts sending the Extended ADV at an interval of 500ms, the scanner starts reducing the scan window automatically. At some point it also reduced to ~ 5 ms (check at 2:47 timestamp) and then back to 100% after ~500ms.

    I do not understand this behaviour, is it expected by the scanner?

    collision500mssingledevicesh.zip

  • Is there any different if you use the softdevice controller vs. the zephyr controller? E.g. in prj.conf

    CONFIG_BT_LL_SOFTDEVICE=y

    vs.

    CONFIG_BT_LL_SW_SPLIT=y

    You may also need to enable CONFIG_BT_CTLR_ADV_EXT=y to support extended advertising with the zephyr controller.

    Best regards,
    Kenneth

Reply Children
Related