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

Valid BLE Random Static Address

I've been sending various BLE addresses to the nRF51 and am getting some inconsistencies of what addresses are being deemed valid.

I am using BLE_GAP_ADDR_TYPE_RANDOM_STATIC and sd_ble_gap_address_set to set the address. The value is being pulled from our flash memory chip on startup. Erased flash is all 0xFF, so if the address is not set in flash, 0xFFFFFFFFFFFF is passed into sd_ble_gap_address_set. According to v4.2, Vol 3, Part C, chapter 10.8 the address must meet the following criteria:

  • Two most significant bits of the static address shall be equal to 1
  • All bits of the random part of the static address shall not be equal to 1
  • All bits of the random part of the static address shall not be equal to 0

Doesn't 0xFFFFFFFFFFFF fail #2 as all bits are equal to 1? This address returns an NRF_SUCCESS and starts advertising with all FFs for the address.

Related