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:
- Device A: Connected with device B and receiving advertisement messages from device C.
- Device B: Connected with device A. Connection interval 1 second, slave latency 0, and supervision timeout 1 second.
- 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