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

Unique Device ID

I have a radio board using a NRF51822 with a custom radio protocol. I need a unique identifier, ideally 24bit, 32bit but be acceptable.

I notice in the parameters there is:

Device ID 64bit unique ID for each unit. DEVICEID[0] DEVICEID[1]

Device address bit 64bit. DEVICEADDR[0] DEVICEADDR[1]

I cant think of a mathematical method of reducing the number of bits and presume there isnt a way (64bit to 24bit or 32bit)?

I presume the DEVICEID is unique for every chip? Unless the device ID is made of different fields that can be split?

  • Just apply a standard hash such as sha1 or md5 and then take the last 16 bits.

  • Thanks Paul. I thought of that but my understanding would be that statistically common IDs might be generated. I.e. if there are 10,000 of these devices being produced per year and they rely on a unique ID, the lower 16 bits of a hash may be common. Or am I misunderstanding this?

  • Yes, statistically you will have common IDs. But you won't be able avoid that no matter what if you scale down a "guaranteed" 64-bit number to 32-bit. Even you understand how Nordic compiles the IDs, there is no way you can "pick out" 32-bit still unique numbers over the years.

  • Yeah. So, I looked at the MAC address ICs which have a EUI-48 id whereby 24bit is said to be a unique id (the other 24bit is manufactures code). That said, if you buy in batches over years, and they are assigned contiguously by ATMEL, common IDs will be encountered. Unless they do it by account, which I doubt.

    URL: www.atmel.com/.../atmel-8807-seeprom-at24mac402-602-datasheet.pdf

    The obvious solution is post production programming of a contiguous ID, but is an timely step for manufacturing when production numbers are high.

  • No ID in the chip is guaranteed to be unique, as they are all randomly generated in production of the chip. If you need a value that's guaranteed to be unique, this is hence something you'll have to do yourself in your own production flow.

    You may also have use in taking a look at this question.

1 2