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

nRF8001 Bonding procedures

Hi,

I've studied the "ble_HID_template.ino" example and I've come up with some doubts and need some clarifications in some points, they are listed below:

1 - Does nRF8001 D support Out of Band (OOB) Pairing? From the nRFgo Studio I can check only "Just works" and "Passkey".

2 - Can I change the security settings, from the initial ones configured in nRFgo Studio, dynamically? I am asking this because my product will have no I/O capabilities and after the first device bond and configure it (Just works pairing), then it is suppose to work with Out of Band (OOB) Pairing for the next devices (the first device will be able to configure it and create keys for the next devices).

3 - What is the content of the DynamicData stored in the nRF8001 (Data retrieved using the ReadDynamicData command) ? It is just bond related information (Like shared keys, device address and etc...). How big can it be? and how many bond device addresses can it store? (I need to fit it to my MCU EEPROM, since I am using it for other purposes as well)

4 - If I define the minimum and maximum encryption key size to 16 (or some other number) can I deduce the size of the DynamicData block?

Now for the BLE HID Template 5 - From my understanding the "lib_aci_bond" is to create bonds with new devices and "lib_aci_connect" is to connect to previously bonded devices. Is this correct?

6 - The only thing that I could differentiate that will define that "lib_aci_connect" will only connect to previously bonded devices is the variable "aci_state.bonded" when it's equal to "ACI_BOND_STATUS_SUCCESS". Is this correct? How different is the behavior of "lib_aci_connect" when you have security enabled or not? Does this behavior of only accepting previously bonded device is because of security enabled configuration or aci_state.bonded variable?

7 - When can I consider that the data packets exchanged between the paired devices are encrypted? After receiving a "ConnectedEvent" ?

Sorry for the long post, I couldn't figure out this answers by my own.

Thanks in advance!

Related