Central configuration - Discovery fail at MAX_CONNECTION_INTERVAL 50ms, passes at max 20ms

Hi

I am using nRF51822 for central and peripheral, S132, Based SDK12

Attempting to configure the nRF51822 as a central, I am experiencing issues with Discovery process failure, my peripheral connection interval is defined between 20ms-75ms

I have noticed that this is dependent on MAX_CONNECTION_INTERVAL, when I set up interval connection between 10-20ms it works, but if, for example I set it up 10-50ms discovery fails, not all services are discovered upon connection, why is that? is there a way around it?

Thanks

Parents Reply
  • Hi Kenneth,

    You were right, It returned and re-entered the same loop, calling ble_db_discovery_start() again, I fixed that now.

    However, There is another issue, after connection and discovery (seems to) finish successfully , a certain service notification stopped working, after some tests I figured out that

    1. the only change that matters to the occurrence of this missing notification is the MAX_CONNECTION_INTERVAL change to 50ms. 

    2. On the Wireshark sniffer, the event never been sent from the peripheral, when debugging on peripheral side, it seems error (0x3401) returned by sd_ble_gatts_hvx(), which I understand means BLE_ERROR_GATTS_SYS_ATTR_MISSING, (on the central side, after discovery, notifications are enabled with cccd_configure() returns with no error).

    I am adding logs successful results (with 20ms max interval) and the problematic results (with 50ms)

    DiscoveryAttempts_23_06_09_PassNotification.pcapngDiscoveryAttempts_23_06_09_FailNotification.pcapng

    Any ideas?

    Thanks!

Children
Related