nRF52 SDK16 device discovery problem in iOS

Hi Community, 

Recently I have started testing my BLE peripheral running HRS with iPhone. My device is running SDK16 on nRF52 SoC. This is working perfectly with Android mobiles. \

I searched the community for this issue and found below thread which mentioned MTU size exchange could be a problem.  

https://devzone.nordicsemi.com/f/nordic-q-a/66256/nrf52-sdk16-service-discovery-doesn-t-happen-on-ios

But MTU exchange is present in nrf_ble_gatt_on_ble_evt callback as shown below. 

case BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST:
on_exchange_mtu_request_evt(p_gatt, p_ble_evt);
break;

I have attached nRF connect log for reference. Can someone help me understand what could be the issue? 

Best

Lakshmikanth. 

Parents
  • Hi

    I just tried the Blinky example from nRF5 SDK v16.0.0 myself on an iPhone 11, iOS v15.2.1 with the nRFConnect app and did not have any issues connecting and discovering its services, so this seems very strange. Here's the .hex file I used:

    Could it be that the bonding information to this Dongle is already stored on your iPhone perhaps. If so please try deleting bonding information before trying to connect again. Since this is a Dongle, you can also try recovering the Dongle entirely as described in the bottom part of our Dongle Programming tutorial here. If that doesn't help either, what iPhone and iOS version are you using specifically?

    Best regards,

    Simon

Reply
  • Hi

    I just tried the Blinky example from nRF5 SDK v16.0.0 myself on an iPhone 11, iOS v15.2.1 with the nRFConnect app and did not have any issues connecting and discovering its services, so this seems very strange. Here's the .hex file I used:

    Could it be that the bonding information to this Dongle is already stored on your iPhone perhaps. If so please try deleting bonding information before trying to connect again. Since this is a Dongle, you can also try recovering the Dongle entirely as described in the bottom part of our Dongle Programming tutorial here. If that doesn't help either, what iPhone and iOS version are you using specifically?

    Best regards,

    Simon

Children
  • Thanks for the reply. 

    I am performing on and off Airplane mode to forget the bonding for every run. On every run iPhone starts scanning the devices and it only connects after I allow it to. Is there anything I need to perform to forget bonding? 

    I checked with the hex file provided by you. Observed same issue. I have attached nRF connect log from iOS for your reference. 

    Since this is a Dongle, you can also try recovering the Dongle entirely as described in the bottom part of our Dongle Programming tutorial here.
    I don't understand the above. Could you please let me know why do we need to do this? I am able to program the dongle after I put it in boot mode by pressing reset.

    I am using iPhone 6 with Software version is 12.5.5. 

    Best

    Lakshmi

Related