hi, I am updating the sdk from 12.2.0 to 14.2.0, and using softdevice s132. I get a problem by connecting device using ios devices, but it works fine with android device. do you know what should I do?
hi, I am updating the sdk from 12.2.0 to 14.2.0, and using softdevice s132. I get a problem by connecting device using ios devices, but it works fine with android device. do you know what should I do?
You'll need to handle ATT MTU and Data Length negotiation.
There is a library in the SDK to facilitate that, called nrf_ble_gatt, it is used in ble_app_hrs.
I tried that, but it still not works for me. also the example ble_app_multiperipheral do not set ATT MTU, but that works fine.
Can you post a sniffer trace and the softdevice version that you are using ?
I am using S132 5.0.0 with SDK14.2.0. what's sniffer trace?
The answer is here, at devzone. I personally faced the same issue. The problem is that iOS devices require MTU negotiation.
Just add the following into ble_evt_handler():
case BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST: err_code=sd_ble_gatts_exchange_mtu_reply(p_ble_evt->evt.gatts_evt.conn_handle, 23); APP_ERROR_CHECK(err_code); break;