cancel
Showing results for 
Search instead for 
Did you mean: 

whitelist not working: Unable to connect after aci_gap_set_undirected_connectable

VVain.1
Associate II

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

15 REPLIES 15

Would be really nice if ST could provide a working whitelist example project.

Thanks.

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.

JPrin.3
Associate II

Is there a solution for this already?

sstel.1
Associate II

Any solution?

crwper
Senior

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.

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.