This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2640R2F: Optimizing BLE scan parameters for receiving non-connectable advertisement messages

Part Number: CC2640R2F


Hi,

I have a question regarding how to optimize BLE scan parameters. I am using SDK: simplelink_cc2640r2_sdk_1_50_00_58.

The setup has three devices as follows:

  1. Device A: Connected with device B and receiving advertisement messages from device C.
  2. Device B: Connected with device A. Connection interval 1 second, slave latency 0, and supervision timeout 1 second.
  3. Device C: At random times transmits non-connectable advertisement messages to device A. Once advertisement is initiated device C transmits advertisements with an interval of 100ms (fastest interval for BLE 4.2 non-connectable advertising) for 1 second resulting in approximately 10 advertisement messages. It is crucial that at least one of the 10 advertisement messages reaches device A.

From what I can see the connection between devices A and B is maintained as expected, but too often none of the 10 non-connectable advertisement messages from device C is received in device A. Using a sniffer I have verified that device C does in fact transmit the advertisement messages.

I read that the scanning window should be the advertising interval + 10ms so I set it to 111ms. As filtering is active on the received advertisement messages, I set the scan duration to 1100ms - I assume the filter is cleared after each scan duration and this is why I don’t set it to scan indefinitely. I set the scan interval to the same as the scanning window.

As I want to make sure that device A always receives one of the advertisement messages from device C, I have tried to change the parameters in all kinds of combinations, but I cannot seem to find the correct combination for this purpose. Is there a parameter I did not think of or some other setting I forgot?

I hope someone can help me.

Best regards,

Annette

  • Hi,

    What configuration does device A have on it? Is it running peripheral or central or what? Does it have the observer capabilities built into it? Are you by chance filtering out non-connectable advertisements somehow?

    What example program did you base device A on and what GAP roles are enabled?
  • Hi Evan,

    Thank you for your quick response, I appreciate it.

    If you mean the host configuration it is PERIPHERAL_CFG+CENTRAL_CFG for device A. In the setup described above device A only functions as central and observer. In another setup the same device is used with its peripheral capabilities. As I understand it, e.g. from this post https://e2e.ti.com/support/wireless_connectivity/bluetooth_low_energy/f/538/t/576216?CC2640R2F-Role-switch-from-central-to-observer-on-CC2640R2F, the central configuration also covers the necessary observer capability.

    Device A is based on the multirole example.

    I don’t think I have a filter specifically on non-connectable advertisements as some of the non-connectable advertisements from device C does reach device A. How can I check this? I did try to both activate and deactivate filter on duplicate advertising reports using GAP_SetParamValue(TGAP_FILTER_ADV_REPORTS, FALSE) which did not change anything.

    Best regards,

    Annette