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

Getting 0x3D/61/MIC_FAILURE disconnect reason during connection MTU exchange

I'm getting a disconnect reason of 0x3D / BLE_HCI_CONN_TERMINATED_DUE_TO_MIC_FAILURE during a connection attempt. It does not happen for all my phones except one. It appears to be during the MTU exchange at the time of connecting. This is not related to the other issue of not setting ble_conn_params_init_t.start_on_notify_cccd_handle, that can affect some phones.  Also, no pairing is used. If I set the NRF_SDH_BLE_GATT_MAX_MTU_SIZE to 23 in the sdk_config.h then it works (because MTU exchange is not initiated in nrf_ble_gatt.c::on_connected_evt since p_link->att_mtu_desired == p_link->att_mtu_effective). 

To repro, I used the ble_app_hrs example on SDK 15, and connect using the nRFConnect app on Android 6.0.1 on a Samsung Galaxy J7 Sky Pro (sm-s727vl). On a rare occasion, it works but 98+% of the time it fails. The phone can connect fine using nRFConnect to other non nRF BLE devices. Any ideas? Thanks.

Related