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

What happens when Bluetooth SoftDevice is scanning and collision takes place. [SDK16, SD140 v7.0.1]

I am scanning for advertisements and in scan_evt_handler() in the case NRF_BLE_SCAN_EVT_NOT_FOUND, I am printing the packet received using  NRF_LOG_INFO().

I have also implemented a UUID filter and Softdevice does filters the relevant UUIDs.

There are two observations,

1. Beacon transmitting UUID @100ms is not always filtered by the SoftDevice S140. [1 out of 4 is filtered by SD and NRF_BLE_SCAN_EVT_FILTER_MATCH case processed]

2. In the case NRF_BLE_SCAN_EVT_NOT_FOUND while printing the packet using p_adv_report->data.p_data, Incomplete UUID is seen

Base UUID: adf400013db14f7abb04382f31288809

Print seen: 0201061aff4c000215adf400013db14f7abb04382f310000000001

What could be the cause? Is it due to collision?

Thank you,

MO

Parents
  • Hi Simon,

    Thank you for your reply. I will be sharing the code shortly. Can you confirm that softdevice SD140 (observer role), filtering UUID always reports every advertising iBeacon with relevant UUID. Meaning our broadcaster transmitting at 100ms will always be filtered successfully and NRF_BLE_SCAN_EVT_FILTER_MATCH will execute @100ms.

    What happens in a noisy environment with over 1024 broadcasters in the vicinity? Will the packet be received or dropped due to collision in the advertisement channels.

    Best Regards,

    MO

  • Take a look at this answer given by RK, which provides you a way of calculating the probability of collisions between N broadcaster.

    Regarding your initial problem, if you haven't resolved it yet could you upload your project? Make sure to use relative paths in your project and that it runs out of the box.

    Best regards,

    Simon

Reply Children
No Data
Related