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

There is a period during which advertise packet cannot be received

There is a period during which advertise packet cannot be received

Central info
   SDK: 15.3
   nRF52840

Peripheral info
   SDK: 13.1
   nRF52832

Running device
   Central * 2
   Peripheral * 10

Scan multiple Peripheral advertisements in 2 Centrals.
Scan is filtered by UUID, and NRF_BLE_SCAN_EVT_FILTER_MATCH event is generated only when advertisement of own device is received.
Both Centrals expect NRF_BLE_SCAN_EVT_FILTER_MATCH events to occur for 10 Periperals in 3 seconds.

All Perioheral Advertise Interval is 1000ms.
The value of ScanWindow in Central is 160, and the value of ScanInterval is 160.

I want to pick up 10 Peripheral advertisements every time I scan.
However, there are a few things missing.
I don't know why it's missing.

Is the parameter value bad?

  • Hi Ryuto, 

    All though you set the scan window equal to the scan interval you will not be scanning 100% of the time. The nRF52832 only has one RADIO peripheral that scans each advertisment channel in sequence, which means that the RADIO must be reconfigured to a new frequency, which may take up to 760uS, see https://devzone.nordicsemi.com/f/nordic-q-a/25553/nrf52832-scan-channel-switch-time

    In addition you need to take into account that the Central will use a certain percentage of the time to process the incoming ADV report event for each packet where it stops scanning and scanning must be restarted from SW. 

    Lastly, there may be interference from other 2.4GHz devices and/or there might occur packet collisions due to the beacons transmitting at the same time, which will lead to packet loss. 

    If you need loss-less behavior, then you will have to have the 10 peripherals connected to the Centrals as the SoftDevice will ensure that lost packets are re-transmitted.  

    Best regards

    Bjørn

Related