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?
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?
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
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