BlueNRG-2 Configuring Static Random Address issues with White-List Reconnection
Using the SDK's BLE_Privacy project as a base, I changed the Master & Slave programs to function with the static random address stored in NVM by commenting out the aci_hal_write_config_data function that was setting a public address and changing the address type to a Resolvable Private Address (0x02) in the following functions:
- master.c aci_gap_start_general_connection_establish_proc
- master.c aci_gap_create_connection
- slave.c - aci_gap_set_undirected_connectable
This functioned as expected with no issues.
I then attempted to set a static random address and not use the one in NVM by using the aci_hal_write_config_data with the offset set to CONFIG_DATA_STATIC_RANDOM_ADDRESS on both the master & slave in-place of where the CONFIG_DATA_PUBADDR_OFFSET write was occurring. The devices were unable to reconnect using the whitelist after the initial connection, pairing, bonding, & disconnect. I verified the bonded addresses of the master & slave matched the associated configured static random address of the slave & master respectively, and the address stored and then entered into the resolving list & whitelist.
- bonded_device_entry_53
- whitelist_identity_entry_62
The following sequence would occur following initial connection, pairing, bonding, & disconnection.
- Slave aci_gap_set_undirected_connectable(WHITE_LIST_FOR_ALL)
- Master aci_gap_create_connection() called with whitelist_identity_entry_62 from the aci_gap_get_bonded_devices()
- Master report hci_le_enhanced_connection_complete_event() event reporting the proper resolved slave address matching that of whitelist_identity_entry_62
- Immediately following that master would report hci_disconnection_complete_event() with the reason set to BLE_ERROR_CONNECTION_FAILED_TO_ESTABLISH (0x3E)
- 3 & 4 would repeat indefinitely
Any solution for this or something I am overlooking?
