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

How to improve beacon scan efficiency

Hello, I'm currently developing BLE_SCANNER(GATEWAY) for asset tracking or management.

My scan environment is,

[Our device -- same UUID]

  • The number of our beacons is 100.
  • Each of beacons has an interval of 1000 ms (1 second)
  • The BLE_SCANNER's scan interval/window is 100/50 ms. ---> Interval can be changed

[Other device -- different UUID]

  • The number of other beacons is 100.
  • Each of beacons has an interval of 300 ms.

[Common Info]

  • Manufacturer Type beacon.
  • Every beacon RSSI is -80 ~ -90

[Current use]

  • SDK15.0.0 - app_uart_c [central]
  • Scanner - nRF52832
  • Beacon - nRF51822

The scanner program modifies adv_report_parse to apply a filter from ble_evt_handle to the manufacturer's UUID.

In other words, all 200 beacons enter the event, and each event is filtering beacons.

As the number of beacons increases, I think there will be missing data (Not all our beacons are in ideal time now).

1. The scan module is newly configured in SDK15.3.0 (nrf_ble_scan_filter_set). If I upgrade and filter by Manufacturer UUID, is it possible to improve spped?

    --> Can I eliminate the time spent exporting to events?

    please give me an example if possible, Please how to filter by manufacturer 128 bit UUID. Do not use service UUID.

2. If Question 1 is not possible, how can I improve the scanning efficiency?

Thanks.

Parents
  • Hi,

    1. There is no option to filter by Manufacturer UUID when using nrf_ble_scan_filter_set(). I don't see this would have had any improvement in speed anyways as the event will still occur, and filtering is done inside the application.

    2. Increasing the scan window to 100% (scan window == scan interval) will help. The more beacons you have, the longer you have to scan to capture all of them.

    Best regards,

    Marjeris

Reply
  • Hi,

    1. There is no option to filter by Manufacturer UUID when using nrf_ble_scan_filter_set(). I don't see this would have had any improvement in speed anyways as the event will still occur, and filtering is done inside the application.

    2. Increasing the scan window to 100% (scan window == scan interval) will help. The more beacons you have, the longer you have to scan to capture all of them.

    Best regards,

    Marjeris

Children
Related