Hi Folks,
Using SDK17.1.0 & S140
Currently developing firmware for a product that needs a serial number. I could happily use the random number in the FICR regs. This would fit my needs just fine.
This would mean 1 firmware image would be uploaded to the product and it would be ready to sell. Simple. Cheap. Easy.
But there is a concern amoung a couple of my colleagues that this leaves us vulnerable to counterfeighting etc. while we would never knowingly use an untrustworthy partner, apparently manufacturing partners have in the past been known to do such things.
A safety mechanism for this, would be to have some way of inserting (via debug port) a non-volatile serial number at a second geographical location. it is likely we will have a second location for final test/boxing/some-assembly. Without a valid serial number, the product will not be compatible with it's mobile application.
My quesiton is:
What would be a simple way to store around ~128bits of data that the firmware could easily read. Ideally i want to just run a small program on a windows PC to replace these few bits of memory with a valid serial number.
Ideally such a memory location should not need special treatment during a DFU (this would invoke more work!).
I think someone previously recommended the FICR regs, or what about the UICR regs? Are these more appropriate? Where are these each ACTUALLY stored on the NRF52840, exactly? Hex address? - Struggling to find a reference to this!
This is a fairly small peice of work so ideally i'd like to avoid learning to use an entire flash library for the sake of reading a mere 128bits.
If you have any other suggested location, feel free to share? I'm looking for some small location, tucked away, intended for this sort of use. Ideally NOT the start of a 128KB page of flash that i may later want to use for much bigger things! :)
Open to suggestions, emphasis on quick, & simple, minimal work...
Thanks
Sean