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

Connection drops between two nRF52 devices

Hi everybody,

I am sending notifications from an nRF2832 (GATT Server) to another nRF52832 (GATT Client) and after some time (sometimes 1 minute, sometimes more minutes), the BLE connection drops.

The Custom Value Characteristic being updated has a size of 240 bytes and is updated every 50 ms and I'm using PHY 2M.

Below the relevant defines:

#define NRF_SDH_BLE_GAP_DATA_LENGTH     251
#define NRF_SDH_BLE_GAP_EVENT_LENGTH    400
#define NRF_SDH_BLE_GATT_MAX_MTU_SIZE   247
#define NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE 1408

#define MIN_CONN_INTERVAL               MSEC_TO_UNITS(7.5, UNIT_1_25_MS)    /**< Minimum acceptable connection interval. */
#define MAX_CONN_INTERVAL               MSEC_TO_UNITS(7.5, UNIT_1_25_MS)    /**< Maximum acceptable connection interval. */
#define SLAVE_LATENCY                   0                                   /**< Slave latency. */
#define CONN_SUP_TIMEOUT                MSEC_TO_UNITS(4000, UNIT_10_MS)     /**< Connection supervisory timeout (4 seconds). */

I've tried to repeat the test using an Android phone running nRF Connect as GATT Client and after 1 hour of continuous data transfer the problem never occurred. So probably there is something that can be improved in my code (and most likely on the GATT Client side): have you got any clue on which parameters should I change?

It seems that when the throughput is decreased (i.e. a 20 bytes characteristic is updated every second) the problem never occurs or occurs really rarely. 
Is it a normal behaviour or does this ring any bell?

Thank you very much for any help

Parents Reply Children
No Data
Related