2020-08-11 05:24 AM
I'm trying to allow re-connects only for whitelisted devices.
I have a phone which is bonded (pass key security) and connected with no problems.
On device disconnect i do the following:
aci_gap_configure_whitelist();
aci_gap_set_undirected_connectable(Advertising_Interval_Min, Advertising_Interval_Max, 0, WHITE_LIST_FOR_ALL);
I'm trying to connect again with the same device, but it's not able to.
No one is able to connect at this point, even though device is discoverable.
I have verified with aci_gap_is_device_bonded before calling aci_gap_configure_whitelist and the device is bonded, so the call to aci_gap_configure_whitelist should have added the device to whitelist. I also tried adding the device to whitelist with hci_le_add_device_to_white_list but got same results.
Using BLE FW Stack: 1.8.0
2020-12-17 05:27 AM
Would be really nice if ST could provide a working whitelist example project.
Thanks.
2020-12-17 08:32 AM
The workaround mostly works, though it seems to only work after it's connected to something in general advertising mode once in a given power cycle (or after restarting the firmware) first.
I've tried so many permutations of possible function calls that it seems possible this is broken somewhere behind the scenes.
I have a case open with support, and will update this thread if I get a good answer.
2022-02-23 11:56 PM
Is there a solution for this already?
2022-09-08 03:03 AM
Any solution?
2024-05-08 12:51 PM
I am having the exact same issue described above. Has anyone found a solution?
ST: A working example of a whitelist application would be very helpful.
2024-05-08 01:40 PM
Something I've just noticed, and I'm wondering if it's relevant. When I connect to my peripheral using a mobile device, I see the following as part of the debug output:
Connection established with Central: @:59:65:27:a4:c0:c4
Address type: 01
But then later, when I dump the output of `aci_gap_get_bonded_devices`, I get:
Address: @:0c:d7:46:74:1f:d3
Address type: 00
It looks like the central device is using a random device address (address type 0x01), but in the results from `aci_gap_get_bonded_devices`, a different public device address (address type 0x00) is shown. These may correspond with the same central device, but I wanted to make sure that the whitelist will work with devices that are using random device addresses without additional configuration.
In PM0271, section 5.3.1, an example is given using controller-based privacy *and* device filtering. I guess what I'm wondering is if it's possible to use *just* device filtering without controller-based privacy, if the peripheral will need to connnect to devices using random addresses.