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

Does nRF51822 SDK support resolvable private address broadcast?

Hi,

Does the nRF51822 SDK support the generation and broadcast of dynamically changing MAC address (i.e. resolvable private address, Bluetooth 4.0 specs, Volume 3, Part C, Sections 10.8.2.2 and 10.8.2.3)?

If so, which SDK versions support the above? I am needing this because of BLE piggybacking concerns via the use of static MAC addresses to associate BLE location for Android apps.

Hope to hear from the experts here, thanks!

Parents
  • The SoftDevice needs to support it, and at least S110 v7.1.0 does.

    Please see the documentation of sd_ble_gap_address_set():

     * If the address cycle mode is @ref BLE_GAP_ADDR_CYCLE_MODE_AUTO, the address type is required to
     * be @ref BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE or
     * @ref BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_NON_RESOLVABLE. The given address is ignored and the
     * SoftDevice will generate a new private address automatically every time advertising is
     * (re)started, and every @ref BLE_GAP_DEFAULT_PRIVATE_ADDR_CYCLE_INTERVAL_S seconds. If this API
     * call is used again with the same parameters while advertising, the SoftDevice will immediately
     * generate a new private address to replace the current address.
    

    Just do like this:

    ble_gap_addr_t gap_address;
    
    gap_address.addr_type = BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE;
    
    err_code = sd_ble_gap_address_set(BLE_GAP_ADDR_CYCLE_MODE_AUTO, &gap_address);
    APP_ERROR_CHECK(err_code);
    
Reply
  • The SoftDevice needs to support it, and at least S110 v7.1.0 does.

    Please see the documentation of sd_ble_gap_address_set():

     * If the address cycle mode is @ref BLE_GAP_ADDR_CYCLE_MODE_AUTO, the address type is required to
     * be @ref BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE or
     * @ref BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_NON_RESOLVABLE. The given address is ignored and the
     * SoftDevice will generate a new private address automatically every time advertising is
     * (re)started, and every @ref BLE_GAP_DEFAULT_PRIVATE_ADDR_CYCLE_INTERVAL_S seconds. If this API
     * call is used again with the same parameters while advertising, the SoftDevice will immediately
     * generate a new private address to replace the current address.
    

    Just do like this:

    ble_gap_addr_t gap_address;
    
    gap_address.addr_type = BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE;
    
    err_code = sd_ble_gap_address_set(BLE_GAP_ADDR_CYCLE_MODE_AUTO, &gap_address);
    APP_ERROR_CHECK(err_code);
    
Children
No Data
Related