Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Frequent disconnect from iPhone 7

Hello,

We have developed an nRF52840 based peripheral which works fine with Android. The SDK version is 16.0.0 and soft device version 7.0.1. It works fine with iPhone as well except iPhone 7/7+. We are unable to locate where the problem is. The same iPhone 7 works fine with SDK15 and soft device v6 on an nRF52832 device (another board).

We get following message just after connecting with peripheral:

Error: The connection has timed out unexpectedly.

I have been going through following forums but I'm not sure where I need to make adjustments, in iOS software or my nRF52840 firmware. If there are changes to be made in the firmware, what and where those changes need to be made. I have seen people have issues with other versions of iOS as well. In our case iPhone 8+ , iPhone X and iPad are working fine. Will the changes be compatible across all iPhone variants?

Here are the forums:

https://stackoverflow.com/questions/32588325/ios-bluetooth-le-code-6-the-connection-has-timed-out-unexpectedly

https://devzone.nordicsemi.com/f/nordic-q-a/9224/ios-8-disconnection-code-6-the-connection-has-timed-out-unexpectedly

Parents
  • Hello,

    I have not been able to replicate this with my iPhone 7 running iOS 13.3.0. I ran the ble_app_hrs example from SDK 16.0.0 on a 52840 DK. But you can try to increase the clock tolerance (NRF_SDH_CLOCK_LF_ACCURACY option in sdk_config) to 500 ppm, which is the most you can have for BLE, and see if it makes any difference. This setting will make the stacks account for a higher clock drift on the slow clock (ie. increase RADIO RX windows).

Reply
  • Hello,

    I have not been able to replicate this with my iPhone 7 running iOS 13.3.0. I ran the ble_app_hrs example from SDK 16.0.0 on a 52840 DK. But you can try to increase the clock tolerance (NRF_SDH_CLOCK_LF_ACCURACY option in sdk_config) to 500 ppm, which is the most you can have for BLE, and see if it makes any difference. This setting will make the stacks account for a higher clock drift on the slow clock (ie. increase RADIO RX windows).

Children
No Data
Related