This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Bond to iOS

Hi

I've been able to include Device Manager to bond my peripheral to Master Control Panel, but testing with LightBlue runnining on an iOS 8 iPadI'm having several weird issues.

Everything is apparently correct, until I power off my peripheral or disconnect and reconnect the iPad. Looks that the connection context is not found on the table of previously bonded peripherals. In order to debug the problem, I've included several traces in device_manager_peripheral.c. What I'm detecting is these two issues:

  1. The iPad address is changing: When connecting to my peripheral, sometimes the Bluetooth address changes. This could be a problem to look into the table of previously bonded peripheral.

  2. The Bluetooth address I save into the bond table is different to the Bluetooth address. Example: When connecting the iPad to my peripheral, I look into the bond table for address 76 173 40 225 245 77. But when linking (or bonding), the address I save into the bond address is 120 130 205 114 224 60. I made the bond procedure in LightBlue by trying to read or write a encrypted characteristic (BLE_GAP_CONN_SEC_MODE_SET_ENC_NO_MITM).

These two problems don't happen in Android or Master Control Panel. So, what's the problem? What's makes iOS so special? Any suggestion??? :-(

Thanks in advance.

Cheers,

Elena

Update: Tags update

  • Yes, you're right. The problem is this: When using BLE_GAP_ADV_FP_ANY and BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE, the bonding process is not working for iOS (it is not loaded the connection context when reconnecting). When using BLE_GAP_ADV_FP_ANY and BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED same results. When using BLE_GAP_ADV_FP_FILTER_SCANREQ and BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED, works for iOS and Master Control, but not Android. When using BLE_GAP_ADV_FP_FILTER_SCANREQ and BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED, forces reset. When using BLE_GAP_ADV_FP_FILTER_SCANREQ with BLE_GAP_ADV_FLAGS_LE_ONLY_LIMITED_DISC_MODE or BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE forces reset....

    Should I ask for support to Nordic???? I love standards! :-( Thanks again

  • When using BLE_GAP_ADV_FP_ANY and BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE, the bonding process is not working for iOS (it is not loaded the connection context when reconnecting). When using BLE_GAP_ADV_FP_ANY and BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED same results.

    See this.

    [DeviceManager] Unable to re-connect to a bonded central that uses Resolvable Private Address (e.g iOS device) if the application doesn't do whitelist advertising.
    

    When using BLE_GAP_ADV_FP_FILTER_SCANREQ and BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED, works for iOS and Master Control, but not Android.

    Why are you using scan packet request filter BLE_GAP_ADV_FP_FILTER_SCANREQ if you want to filter connections? Use BLE_GAP_ADV_FP_FILTER_CONNREQ or both BLE_GAP_ADV_FP_FILTER_BOTH then.

    Don't know what may cause the problem with reset.

  • Thanks again. I didn't want to restrict the connections, I just only using the WhiteList to fix the issue of private address. The thread you mentioned has fixed the problems, so I have just removed the WhiteList advertising. Now looks it's working correctly!!!! Thanks for your help!!!

Related