Мы используем внешнюю 1-wire memory с уникальным ID, заодно храним переменные, которые привязаны к этому прибору (при обновлении программы настройки остаются, не нужно под обновлении ПО прибора заново делать манипуляции, т.е. вести базу ПО). Еще можно использовать (опять же внешнюю мсх с уникальным MAC). По началу приходилось узнавать серийник пробора у пользоваателя и генерить новую "прошивку" ПО под этот серийник. А пользователь эелементарно может стереть все ПО, которjt в приборе и flash - пустая (нет там ничего) или замена МК к этому же приведет.