I have a new Bluetooth remote product in development that has a bluetooth stack that will incorporate HID, BAS, NUS, ANCS, and buttonless DFU services. I have the HID and DFU services in place and working but I'm having issues with the ability to have more than one central device capable of connect to my peripheral and to be clear I'm don't mean having more than one simultaneous connections.
For example, I can connect my iPhone to my device right after a fresh firmware upload but when I disconnect and remove the pairing from my iPhone and try to connect from a different iPhone or computer it doesn't work. I'm using SDK 16 and based my bluetooth stack from the blue_app_hids_keyboard_pca10056_s140 example and can reproduce the same issue with the SDK example.
The device in development is a new Bluetooth remote. When in production I expect the device to be able to connect to an iPhone or iPad but at any time be able to remove the device from one iPhone or iPad and connect it to another phone. The current SDK examples provided doesn't allow that. I believe the issue is around whitelisting and bonding but I'm so deep into the different aspects of this firmware and the accompanying modules that I need assistance solving this issue. I replicated the SDK examples provided into my own code. I'm willing to share my project privately if it helps speed up resolution. It's a self contained project out side the SDK directory targeted for the nRF52840 DK so there should be no to very little issues running it.
Questions that may be relative to resolution of issue
1.) How do I go about enabling the ability for more than one phone to connect to my remote? (Not Simultaneous Connections)
1.) Is there a way to have just bonding enabled with no whitelisting as I believe I want any device to connect? (Going of other support questions)
2.) In the real world when the peer manager can only store say 8 peer bond information and there isn't a way for users to manually delete bonds, what is a way to mange this? Does there need to be some type of ring storage where the oldest information is removed so the new can come in? Should I just work to incorporate some type of reset button into the product that deletes the bonds and all stored information?
If I wasn't clear enough with my questions please let me know.
Thanks
- Matt Wilson