We have a design that uses a simple custom board with an NRF52832 chip, button, accelerometer and onboard battery. For many phones, the operation is quite stable - we connect, bond, and subscribe to notifications and don't see any unusual behavior. However sometimes (especially with Android 7), we connect, bond, and then after a while get disconnected with the timeout. Even though nothing changed in the setup.
Some more information is included below:
/* Configuring BLE enabled services */
#define BLE_LBS_ENABLED 0
#define BLE_BAS_ENABLED 1
#define NRF_SDH_BLE_VS_UUID_COUNT 4
#define NRF_SDH_BLE_GATT_MAX_MTU_SIZE 247
#define NRF_SDH_BLE_GAP_DATA_LENGTH 32
#define NRF_SDH_BLE_GAP_EVENT_LENGTH 10
#define BLE_ADVERTISING_ENABLED 1
#define NRF_BLE_CONN_PARAMS_MAX_SLAVE_LATENCY_DEVIATION 5
#define TX_POWER (-16)
#define CONN_SUP_TIMEOUT MSEC_TO_UNITS(6000, UNIT_10_MS) /**< Connection supervisory time-out. */
We used the nRF Sniffer to capture the disconnect:
This error only happens sporadically, we do not see a pattern. On some phones - as the one with device information below that was used for the sniffer trace - it happens more frequently.
We do not know what to change to improve the connection stability at the moment, so every hint would be helpful.
Thank you in advance for helping us out!