How to implement a key usage protection similar to the Windows installation?

The DSO150 oscilloscope has a key, which the user must inform after performing the firmware update.

If your board is upgraded from an earlier version to -110 or later you need an activation code. Otherwise, the rotary encoder will appear malfunction. The activation code can be obtained by sending email to with your board PID (an 8 character code on a sticker at the main PCB or the bottom of the second splash screen).


I would like to implement something similar, for periodic activation of a data collection device.

The main idea is to prevent the device from being “forgotten” with the customer, and this key should force the customer to contact the supplier for registration updates, device location, device usage status, etc.

I understand that a key is not well regarded by users, but it can be quite useful for controlling vendor devices that are lent to their customers.

I thought about using some encryption formula, using the microcotroller UID serial number and / or EEPROM memory (W25Q64).

I’ve been thinking about a time count, the circuit has a DS3231, but the clock can be adjusted manually.

Or an independent time count, for example via timer?

Another alternative would be to count the number of use of the device.

Has anyone done something like that?

I have a device that uses the serial number(held in EEPROM), date & another component to validate a registration code. I have a database of serial numbers & info on the data from the component & use an algorithm to generate a valid reg code.

I can’t give you any more info than this without compromising the product!

1 Like