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

Pairing without the Bond Manager

I have a BLE peripheral and I'm not using the bond manager. Connecting and bonding with the "Master Control Panel" works fine but I'm having problems trying to use it with my iPhone app. I can connect, read the characteristics, initiate a pairing and everything works fine. The problem is that it won't reconnect after that. Or rather it takes a long time for the phone to connect with my device and once connected, it immediately disconnects. As soon as I open the iPhone's system preferences and select "Forget this Device" it will work fine again for a first session.

Is it possible to signal the iPhone that my peripheral didn't store the key and that it should re-pair?

The reason I'm not using the bond manager is that many different people might need to connect over a 2-3 year span and I don't have a button on the device to initiate deletion of the bonds. Even if I use the bond manager, once the NVM is full, I'll run into the same problem.

Parents
  • I have just started looking into this as well. From my understanding, although you can initiate a bond via softdevice calls its the bondmanager that stores the data. It is usually called on_ble_evt() and does storing or recalling of the bond info. With the little bit I have peaked at it, it seems necessary to include the bond manager.

    I do have a suggestion to correct your issue about not being able to delete bonds. I saw a bondmanager function that returns a specific value if it has filled up. You can check for that and delete all bonds before setting up that new pair. This may help you read into it as I would not advise taking my words as fact.

Reply
  • I have just started looking into this as well. From my understanding, although you can initiate a bond via softdevice calls its the bondmanager that stores the data. It is usually called on_ble_evt() and does storing or recalling of the bond info. With the little bit I have peaked at it, it seems necessary to include the bond manager.

    I do have a suggestion to correct your issue about not being able to delete bonds. I saw a bondmanager function that returns a specific value if it has filled up. You can check for that and delete all bonds before setting up that new pair. This may help you read into it as I would not advise taking my words as fact.

Children
Related