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

Bluetooth pairing problem with iOS

Hi,

I am developing a product, based on nrf52840 soc with SDK v15.3 and softdevice V14. I have a pairing problem with the recently released iOS, version14. while my product works well with older iOS versions and all android devices.

The problem is in this manner that, my device sends a pairing request to the iOS14 but iOS doesn't respond to the request and the request encounter with a timeout. the same problem occurs when I try to pair with iOS14 with the nrfConnect desktop version (which uses PCA10056 as a BLE adaptor).

But I could pair iOS14 with the nrfConnect android version and windows BLE interface.

i have attached the sniffer log for 

1) My product fails to pair with iOS14. ->  3187.ios_pair_failure.pcapng

2) Windows pairs successfully with iOS14. ->8372.ios_pair_success_windows.pcapng

Could anyone help me to solve the problem?

thanks

Parents
  • Indeed, there is a pairing request, but no further information on the pairing process (which was what I referred to, sorry about any confusion). How have you set up your iOS device as a peripheral? If you're not already, please try using the nRFConnect app for iOS to set up the peripheral. Would it be possible for you to upload a snippet of your central code where you show me how your BLE_GAP_EVT_CONNECTED looks?

    Best regards,

    Simon

  • Hi,

     

    "How have you set up your iOS device as a peripheral"

    as the peripheral side, we have a specific application for iOS which has some services and is advertising specific UUID. (I didn't get the exact information that you are requesting. If you can, please, kindly indicate your requested information)

     

    "If you're not already, please try using the nRFConnect app for iOS to set up the peripheral."

    I have done this. Again the same problem occurs and iOS didn't show pairing dialogue and does not respond to the pairing request (like it did not receive it at all)

     

    "Would it be possible for you to upload a snippet of your central code where you show me how your BLE_GAP_EVT_CONNECTED looks"

    Currently, I don't have access to the iOS app code, but as I know whole pairing process in the iOS should be handled by the operating system (as the pairing in iOS is system-wide) and the app doesn't involve in it

     

    I am suspecting to two things,

    First) could you please compare this pairing requests:

    • Pair request which was sent by windows -> 
    • Pair request which was sent by nordic softdevice (our product) ->

    There are some differences in those requests, technically those differences could cause the problem?

    I have tried to change IO-Capabilities, AuthReq parts to be matched with windows request but it doesn't solve the problem. But I couldn't find any way to change the "Initiator-Key-Distribution" and "Responder Key Distribution" sections of the request to be matched with windows request. There is any API  to change those sections?

     

    Two) Right after sending the pairing request, iOS sends an LL_SLAVE_FEATURE_REQ and softdevice responds to this with LL_UNKNOWN_RSP. Could this cause the problem? There is any way to respond to this request in our app with a valid response?

    In end, I think that there should be a problem between iOS14 and Softdevice. Because nordic nrfConnect( Bluetooth low energy app) desktop version, which uses PCA10056 as BLE adapter (and surely use softdevice) has the exactly same problem with iOS14. In this manner that when nrfConnect sends a pair request, iOS does not show any reaction to the request and it fails with timeout error code.

     

    sorry for long script

Reply
  • Hi,

     

    "How have you set up your iOS device as a peripheral"

    as the peripheral side, we have a specific application for iOS which has some services and is advertising specific UUID. (I didn't get the exact information that you are requesting. If you can, please, kindly indicate your requested information)

     

    "If you're not already, please try using the nRFConnect app for iOS to set up the peripheral."

    I have done this. Again the same problem occurs and iOS didn't show pairing dialogue and does not respond to the pairing request (like it did not receive it at all)

     

    "Would it be possible for you to upload a snippet of your central code where you show me how your BLE_GAP_EVT_CONNECTED looks"

    Currently, I don't have access to the iOS app code, but as I know whole pairing process in the iOS should be handled by the operating system (as the pairing in iOS is system-wide) and the app doesn't involve in it

     

    I am suspecting to two things,

    First) could you please compare this pairing requests:

    • Pair request which was sent by windows -> 
    • Pair request which was sent by nordic softdevice (our product) ->

    There are some differences in those requests, technically those differences could cause the problem?

    I have tried to change IO-Capabilities, AuthReq parts to be matched with windows request but it doesn't solve the problem. But I couldn't find any way to change the "Initiator-Key-Distribution" and "Responder Key Distribution" sections of the request to be matched with windows request. There is any API  to change those sections?

     

    Two) Right after sending the pairing request, iOS sends an LL_SLAVE_FEATURE_REQ and softdevice responds to this with LL_UNKNOWN_RSP. Could this cause the problem? There is any way to respond to this request in our app with a valid response?

    In end, I think that there should be a problem between iOS14 and Softdevice. Because nordic nrfConnect( Bluetooth low energy app) desktop version, which uses PCA10056 as BLE adapter (and surely use softdevice) has the exactly same problem with iOS14. In this manner that when nrfConnect sends a pair request, iOS does not show any reaction to the request and it fails with timeout error code.

     

    sorry for long script

Children
No Data
Related