Nowadays, if your mobile tries to scan on the target device, it would get a hundred of BLE devices nearby. In order to filter out the devices, the most straightforward is to use the whitelist approach. It means to put all the target device address inside the BLE scanner whitelist. However, the number of target devices is limited by the size of the whitelist. In Nordic BLE softdevice stack, the maximum size of the whitelist is 8. The method how to use a whitelist for BLE scanner is described in my previous blog (URL).

This blog is to introduce how to scan the number of target devices what are more than the maximum whitelist entry (8). The method is to use the resolvable random private address and put the whitelist with IRK.

What is Resolvable Random Private Address?
A Resolvable Random Private address is “resolvable” using a key shared with a trusted device. This key is referred to as the IRK (Identity Resolving Key). The address is originally generated using this IRK and a random number.

More details can be found at http://lpccs-docs.renesas.com/Tutorial-DA145x-BLE-Security/privacy.html#how-privacy-works-in-ble.
By using the API sd_ble_gap_privacy_set and sd_ble_gap_device_identities_set to set the resolvable private address,

And then, you can put the IRK on the whitelist as below,

Thanks for reading my blog. Hope that you have learnt how to generate the resolvable privacy address and use its corresponding IRK on the BLE whitelist scanner.