Hello everyone,
I've got a three type of devices: 1 Central device, 2 Peripherial devices, and mulitple beacons.
Central is connected with two peripherial devices with connection interval 100ms ( Bluetooth 5.0 Long range ). I want central to collect non-connectable advertising packets from a multiple beacons. It works, but not every advertising packed is collected.
I think it's caused by switching the radio between tx (where central is sending massage to peripherials), and the rx (where central is scanning for advertising packets). Central can collect only 40-50% of all sent advertising packets by beacons. I made some tests with two options ( view current consumption on oscilloscope to visualise TX and RX state ):
1) Scan interval and scan window = 5ms
We can see the peak where central device is sending the message to peripherial and the slave latency (5). The problem with collecting advertising is where the advertising is sent where central is not scannig (for example "?" area). Second problem is the switching time between RX channels.
2) Scan interval and scan window = 100ms
What is the reason on this gap, marked with "?" ?
Few question:
1) In central device, when packed is sending to peryperial, Rx scanning is stopped in all scanning interval ( as we see on picture above for 5ms in first otion and 100ms for second option). Why scanning isn't immidietly started just aftrer Tx event.
2) How to maximilizeme scanning time witch two peryperial connected? How to set scan interval and window when connection interval is 100ms ?
3) Is there any mechanism to fix this problem? For example advertising with ack? (Beacon: if there is no ack, send adv once again?). I know that there is scan request mechanism - can I use it as "ack" mechanism? (Beacon: if there is no scan request, send adv once again).
Thank you