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

Problems after DFU on IOS

Hi,

We developed our device with KEIL 5, SDK15.2 and SoftDevice 6.1.1. After we upgrade the SDK on our device from version 14 to 15, our IOS phone encountered the following problem:

Use nRF connect on IOS to do DFU successfully and connected with the device again on the same IOS phone, the nRF connect couldn't search any service except the DFU service, but meanwhile, all the other phones can search all the service normally. On this situation, I only turn of the bluetooth and turn on it manually on the IOS phone, then nRF connect can search all the service.


Best regards,
Richard

Parents
  • Hi,

    When you have a changing GATT table you should also have a "Service Changed" characteristic, and you should handle it properly both in bootloader and application. Otherwise the peer device may assume that the GATT table did not change, which is exactly what iOS does. (Most smart phones do service discovery every time regardless, which explains why they get the new GATT table without problem.)

    iOS does not display the Service Changed characteristic, but if you use nRF Connect for Android or for Desktop you can check to see if your application (before and after) and DFU bootloader does use this characteristic. See for instance the thread Buttonless DFU Error: Enabling indications failed.

    Regards,
    Terje

  • Hi Terje,

    I'm a iOS developer, I tried using nRF Connect for Android and enabled "Service Changed" characteristic, and it's still enabled in DFU mode and after DFU success, but nothing changed if I enabled this characteristic, nRF Connect still not received any GATT table update for both iOS and Android,Is this firmware issues or iOS issues?

    Best Regards

    Sirui

  • Hi,

    I do not quite understand what you have done and where, but on the application you need both to enable the characteristic and to actually trigger an update notification (e.g. with pm_local_database_has_changed(), see my other recent reply.)

    Regards,
    Terje

Reply Children
No Data
Related