This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Production Programming - MAC Addresses - nRF52810

Dear Nordic guys,

We are going to produce large number of BLE beacon devices and would like to label the BLE address on each device.  We are using the default mac address (NRF_FICR->DEVICEADDR) of the device. What is the easy way to find out the MAC address of each device ? 

  • Hi,

    You can read the two DEVICEADDR registers for instance like this using nrfjprog:

    nrfjprog --memrd 0x100000a4 --n 8
    0x100000A4: A6B251CA 5984979B                     |.Q.....Y|

    For reference, the device address of this device is: D7:9B:A6:B2:51:CA. Note the endianness difference as Bluetooth use little endian. Also, the  two most significant bits are always 1. So, that means that  you read out the registers as I haw shown, swap the byte order (change endianness) and mask it so that you get the 46 bits from the DEVICEADDR and 2 additional '11' bits.

  • Hi Einar, Thank you for your reply. 

    But isn't it difficult to do this for a large number of boards (for eg:- 5000) ? It will take a long time to do this one by one. How does usually everyone do this ?

  • The DEVICEADDR is randomly generated in production and does not exist anywhere else, so there is no other way to obtain it than to read it from flash. You anyway need to connect a programmer to the IC at some point to program it, and then it could be convenient to do this at the same time in an automated way. That should not add much time in total. Exactly how this is most easily done depend on your production line, but the key is that the information is there in the chip and you need to read it out in a way that suits you.

Related