Where in UICR is it suitable to store product serial number?

Hi,

We are using ANNA-B112 module with nRF52832 chip and trying to store the product serial number in UICR. From the description of UICR, it seemed that the CUSTOMER area starting from address 0x10001080 would be suitable for this. However, we found out that this seems to be the area where the preprogrammed 6 bytes of BLE address are stored and writing the serial number there would overwrite the BLE address. I would like to know if it is safe to use the rest of the CUSTOMER area or is it also already used for something? If not, what would be the suitable place for storing the serial number?

Thanks!

Parents
  • Hi Mellow, 

    Could you please provide more information about the SDK you are using ?
    Also please point me to where you find your information about the location of the BLE address. It may be varied depends on the software/application configuration.

  • Hi and thanks for responding,

    I am using NRF5 SDK 17.1.0 but this is not related to the SDK as I'm using nrfjprog to program/erase the UICR.

    Now I actually found this https://www.mouser.com/pdfDocs/Using-Public-IEEE-Address-From-UICR_AppNote_UBX-190553032.pdf with information about the BLE address so I guess this is related to the ANNA-B112 module and I should go through that document more carefully. I guess otherwise it should be safe to erase the UICR?

  • You may find some of my notes helpful:

    /*
     * Rigado has defined a MAC address stored within NRF_UICR, which matches the address inscribed on
     * the Rigado BMD350 module. The Nordic examples (eg NUS uart) use the Unique Device Id in NRF_FICR
     * to form a MAC address, which is different and fixed.
     * The 6-byte BLE Radio MAC address is stored in the nRF52832 UICR at NRF_UICR_BASE+0x80 LSB first.
     * address during programming. Rigado BMD350 Modules with factory firmware AA and AB are provided
     * with full memory protection enabled, not allowing the UICR to be read via the SWD interface. If
     * performing a full-erase, the MAC can then only be recovered from the 2D barcode and humanreadable
     * text. Modules with factory firmware code AC and later no longer enable read-back protection
     * from the factory, allowing the MAC address to be read with an SWD programmer.
     * UICR Register (94:54:93:XX:YY:ZZ) see BMD-350 Data Sheet v2.0:
     * NRF_UICR + 0x80 (0x10001080): MAC_Addr [0] (0xZZ)
     * NRF_UICR + 0x81 (0x10001081): MAC_Addr [1] (0xYY)
     * NRF_UICR + 0x82 (0x10001082): MAC_Addr [2] (0xXX)
     * NRF_UICR + 0x83 (0x10001083): MAC_Addr [3] (0x93)
     * NRF_UICR + 0x84 (0x10001084): MAC_Addr [4] (0x54)
     * NRF_UICR + 0x85 (0x10001085): MAC_Addr [5] (0x94)
     *
     * Last 2 bits in 48-bit stream - top 2 bits in last byte of Device Address
     * 00 Public
     * 01 Static
     * 10 Resolvable
     * 11 Non-Resolvable
     *
     * Note that even though the address is "Random", for examples it is invariant and never changes
     * for a specific Nordic device as the NRF_FICR->DEVICEADDR registers are Read-Only
     */
    

    Edit:

    "2.2.6 Saving Bluetooth MAC address and other production data ANNA-B112-0XB comes with a Bluetooth MAC address programmed. See also section 2.3.2.2. This address is used by the customer application – if needed. ANNA-B112-70B module comes with an empty flash. The MAC address is programmed in the CUSTOMER[0] and CUSTOMER[1] user information configuration registers of the of the nRF52832 chip. The address can be read and written using either Segger J-Link utilities or the Nordic nrfjprog utility.$ nrfjprog.exe --memrd 0x10001080 --n 8 The memory area can be saved and, if the flash is erased, later written back using the savebin and loadbin utilities in the Segger J-link tool suite."

    "2.3.2.2 Reading the Bluetooth device address Flashing the software can erase the Bluetooth device address, which must then be manually rewritten to the module after flashing. Make a note of your Bluetooth device address before continuing with the flashing procedure."

  • Hi Mellow, 

    Yes you are correct. It's specifically for UBlox where they provide a IEEE address for each module that you can use, instead of using our Nordic's random address in the FICR. 

    I don't see any problem using other address of UICR for your application. You can erase the UICR if you want. If you want to retain the data you stored to UICR (and the BLE address from UBLOX) you can back up the data before you erase UICR and then re-write it after that. 

Reply
  • Hi Mellow, 

    Yes you are correct. It's specifically for UBlox where they provide a IEEE address for each module that you can use, instead of using our Nordic's random address in the FICR. 

    I don't see any problem using other address of UICR for your application. You can erase the UICR if you want. If you want to retain the data you stored to UICR (and the BLE address from UBLOX) you can back up the data before you erase UICR and then re-write it after that. 

Children
No Data
Related