Often times I’ve been faced with boards that have come back with issues. Doesn’t matter what it is. Usually, a sticker or some other indicator is used to remind me what the issue was so I can address it. As long as I have the board, it’s all good and I can keep track. But what happens when I ship it back to assembly or to the client? Stickers peel off. I have also written on the boards themselves. But these solutions are not ideal. A unique serial ID accessible by firmware is necessary. It allows me to track the board throughout its lifetime. Whenever possible, I’ve added such an identifier to a nonvolatile storage. But this requires programmings and other modifications. Another solution I’ve adopted for some boards I develop myself is to use one of Maxim’s 1-Wire Serial Number ICs. These little devices come in SOT23 and require VCC, GND and one data line. The DS2411, for example, has a 64-bit ROM with a unique 48-bit serial number, an 8-bit CRC, and an 8-bit family code. It’s hard not to justify 50 cents and a bit of programming (which is usually reusable).
Another major benefit of such devices is that board revisions can be be linked with software revisions, so that the right firmware is used for a board.