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

How to get 6 byte mac address at nrf51822

When I scan BLE device at nRF UARTv2.0 App in Android4.4, it is appar device name(Ex:Nordic_UART) and 6 byte device address(MAC address?). I want to include mac address in device name. How to get 6 byte mac address at nrf51822?

Parents
  • By default, the BLE address is derived from the NRF_FICR->DEVICEADDR[] and is of 48 bits length (6 bytes). This registers are randomly generated in our production, and they are unique for each device (2^46 different combinations, due to MSbits set to '11').

    You can read out the address using the API call, "sd_ble_gap_address_get(..);" or reading the FICR->DEVICEADDR[x] registers.

    Example: My device advertises with "0xE724 08C78790"

    DEVICEADDR[0] = 0x08C78790 DEVICEADDR[1] = 0xYYYYA724

    The reason why "A7" becomes "E7" is because the specification says that the 2 MSBit of the address must be set '11' (if you're very interested, see Bluetooth Core v4.0, Vol 3, Part C, chapter 10.8.1.)

    BR Håkon

  • Hi Jackson,

    You can only change the MAC on your local device. To change it on a peer-device, you will need to implement a "hook" (or a ble service) to do this.

    Cheers, Håkon

Reply Children
No Data
Related