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

What mechanism randomizes the BLE address that gets hashed with the IRK?

I can't seem to find where/how the BLE address gets randomized so it changes periodically when using the BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE address type.

-It seems trivial to manually change the address but how about the hashing of this address with the IRK?

-Is this mechanism exposed outside the softdevice?

-Does the softdevice support this address type?


  • Hi Anders,

    The S110 currently use BLE_GAP_ADDR_TYPE_RANDOM_STATIC address type.

    EDITED: the following information provided earlier was not correct.

    [u] As you know you can set BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE type in sd_ble_gap_address_set()

    The current S110 stack provides no API to generate address from IRK, and you would need to do that by your application. You can have a look at section at Part C, Vol 3 in the Bluetooth Core Spec v4.0 to know how to generate the random resolvable address from IRK.[/u]

    Corrected information:

    Current S110 softdevice (v6.x and v7.0.0 alpha) doesn't have a way to distribute the IRK when bonding. Therefore BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE is not usable with the current S110 softdevice.

    This may change in S110 v7.x, but I can't say for sure when it will be available.

    I am sorry for the confusion.

  • Dear Hung Bui,

    We are also interested in this function for our projects using nRF51822. Do you have any update for S110 version?

    "This may change in S110 v7.x, but I can't say for sure when it will be available."

    Best Regards, Matt

  • Hi Matt, It's is supported on S110 v7.0 production. You can have a look at the release note to find more information. Please note that to add the custom IRK in you would need to use the sd_ble_opt_set API.