I am developing a multilink central application on 52840 which would connect up to 6 peripherals.
The connected peripherals will send a connection params update to the central, requesting to change to a longer connection interval (min 380ms, max 1000ms) about one minutes after the connection established.
On the central application, I can see the BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST event comes in. In the event handler, sd_ble_gap_conn_param_update() is called and NRF_SUCCESS is returned.
case BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST: { NRF_LOG_DEBUG("BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST."); // Accept parameters requested by peer. err_code = sd_ble_gap_conn_param_update(p_gap_evt->conn_handle, &p_gap_evt->params.conn_param_update_request.conn_params); APP_ERROR_CHECK(err_code); } break;
But after the while, the central would receive BLE_GAP_EVT_DISCONNECTED event with reason 0x08 (BLE_HCI_CONNECTION_TIMEOUT)
I have try to connect the peripheral to Android Phone, no disconnection issue would occur. So I conclude the problem would most likely on the central side.
Where should I start to check to resolve this connection timeout issue?
Thanks!
Ray