NordicPlayground/nRF51-ble-bcast-mesh

Unable to connect to BLE gateway from iOS devices due to missing MTU response

thedjnK opened this issue · 1 comments

Attempting to connect to a BLE gateway (I've tested on an nRF52 with the latest master branch and softdevice v3) from an iOS device fails, using lightblue for example gets stuck on interrogating then disconnects after a period of time. This is because the iOS device sends an MTU exchange request and the nRF52 doesn't respond. Solution is to add this to mesh_gatt.c in the mesh_gatt_sd_ble_event_handle function:

else if (p_ble_evt->header.evt_id == BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST)
{
    //MTU exchange request
    sd_ble_gatts_exchange_mtu_reply(p_ble_evt->evt.gap_evt.conn_handle, GATT_MTU_SIZE_DEFAULT);
}

I don't have this setup as a git repository and I've made many changes to get it working since DFU mode just does not work at all and the nrfutil provided is incomplete so I'm putting this as an issue instead of as a pull request, will probably need tweaking as it's a new addition to SDv3 so won't be in SDv2 or earlier or the nRF51.

Thanks for the detailed feedback, we'll incorporate it into the repo.

We're aware of several issues in the DFU procedure, and are in the progress of fixing it, to bring DFU into a more reliable state. You can follow the development in the develop/DFU branch, which should be working okay at this point, but we're still pretty far from finishing it. I'm sorry for any inconvenience this has caused.