what would be the cause of having EVENTS_SYNC missing sometime

To the kind attention of Nordic support team,

I'm running ble_app_hids_mouse_pca10100_s112 in a PCA10100 dev board. It is the sdk17 program, where:

1.I added 2 files (packet_error_rate.c and its header) from https://github.com/jimmywong2003/nrf52-ble-range-estimator ,

2.enabled the packet_error_rate_detect_enable (like in the screenshots)

3.set conn interval min = max = 7.5ms and slave_latency 0.

Basically this code is helping me doing ppi gpio monitoring of radio events. It seems that "often" (like in seconds, but sometime in hundreds of milliseconds) is very well possible that a NRF_RADIO->EVENTS_SYNC is missing. It is like very difficult to get in my environment a crc error, but I would say, it is like the device is completely missing master polling, sometime, without even computing any crc. Is it plausible what I am observing? And, if it is possible, what would be the cause? Device is just losing sync? I see this behavior using different boards, different softdevice versions and different timing sources (rc/external xtal).

Generally, events_sync is there (white signal)

Sometime, events_sync is there, the rx done evt is generated (brown signal) and a device tx is done. But after 7.5 ms there is no events_sync/no reception/no transmission. events_sync is received again after 2 - 3 connection intervals, in my case.  

Best regards

  • Hi

    What about EVENTS_ADDRESS or EVENTS_CRCOK?

    I am not very familiar with the SYNC event, but according to the documentation this event is meant to be used in coded phy or 802.15.4 mode only, not in the standard BLE modes. For a regular BLE connection I would suggest using a different event, such as the ADDRESS or CRCOK events. 

    Best regards
    Torbjørn

  • Hi ovrebekk, thank you. I put to the test those events you are mentioning. The result is very similar to the one I got using the sync. It is not representing a real issue for me for the moment. I was just trying to understand if it is the device missing something, or it is the master not always polling as it should. 

  • Hi 

    Interesting. 

    What kind of device are you using on the central side? 

    You could always try to capture a Bluetooth sniffer trace. Then you should be able to see whether or not the central is sending anything when the peripheral is not receiving. 
    Just keep in mind that the sniffer can also drop packets, so you can't trust the sniffer results 100% (keep the sniffer close to the two devices under test to minimize the packet loss). 

    It is possible that the master is skipping some events in order to handle other wireless connections etc, but it depends on what kind of device you have on the master side, and if it has a lot of other connections running at the same time. 

    Best regards
    Torbjørn

Related