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