- SDK: 15.2
- SoftDevice: s140_nrf52_6.1.0
- FreeRTOS
- Hardware: nRF52840 (Custom boards)
Hello,
I am having difficulty finding clear and concise information regarding BLE bonding, even on YouTube. I am hoping someone can help me answer some questions. My high-level understanding is that bonding just saves the keys exchanged during the pairing process so that the pairing process doesn't need to occur each time the devices reconnect.
- Can you limit the number of Central devices that can bond with a Peripheral? Ideally, I am looking to bond at most 2 Centrals to 1 Peripheral.
- Can you enable bonding only on specific links or from specific devices? Ie, if we have Central1, Central2, and Peripheral1, can the link between Central1 and Peripheral1 be bonded, while the link between Central2 and Peripheral1 not be bonded?
- Can you enable bonding for only certain BLE services or characteristics, but not all?
- Once a Peripheral is bonded to a Central, and the maximum number of bonds have been reached (but bonded devices may not currently be connected), will the Peripheral automatically block connection requests from non-bonded devices, or does a whitelist need to be used?
- Once two devices are bonded, but are disconnected, does the Peripheral still send discoverable advertising packets to allow a bonded Central to reconnect? If not, what does the connection process look like for bonded devices?
-
From the Peripheral side, can you clear bonds for specific devices only, or are you required to clear all bonds?
-
Do the encryption keys generated during the pairing process ever expire once bonded? Can the same keys be used for the life of the product?
If you have any documentation that covers the topics above in more detail, please feel free to link those here!
Thanks!
Derek