
Development Tools — Pertech Knowledge Center
A Keil MDK User-Based License (UBL) is a software license type from Arm/Keil that links the license to a user's Arm account instead of a specific computer's hardware ID. This allows the user to activate and utilize the same license across multiple personal workstations, enhancing flexibility. To install a Keil MDK UBL, users register their product serial number on the Arm UBL portal to generate an activation code, which is then entered into the MDK µVision software.
How to Install a Keil MDK User‑Based License (UBL)
A User‑Based License (UBL) is the license type Arm/Keil uses for MDK today. Instead of locking your license to one PC's hardware ID, UBL ties it to your Arm account — so once it's activated, you can use the same license on any computer you personally work from. Below is the simple, first‑time setup, followed by what to do when you already have one or more licenses installed and need to add another.
Part 1Installing Your First MDK UBL License
- Install Keil MDK. Install µVision (version 5.37 or later) or the MDK6 extension for VS Code, if you haven't already.
- Locate your Serial Number. When you purchase MDK, Arm/Keil (or your distributor) provides a Certificate of Authenticity containing a product Serial Number and a link to the UBL activation portal.
- Log in to the UBL portal. Open the link from your certificate and sign in with your Arm account — or create one if this is your first purchase.
- Add your product. On the portal, choose Add a product and enter the Serial Number from your certificate to register it to your account.
- Generate an activation code. The portal will generate a unique activation code for that product — copy it.
- Enter the code in µVision. Open File → License Management, select the UBL tab, click Activate/Deactivate, and paste in your activation code.
- Done. The tool now shows as licensed. Because the license belongs to your Arm account rather than one specific PC, you can use the same activation code to activate MDK on any other computer you personally work from.
Part 2Installing an Additional License
Already have one or more MDK licenses activated and just purchased another seat or product? You don't need to remove or redo anything — just add the new one alongside what's already there.
- Get the new Serial Number. Your new purchase (an additional seat, or a different product/tool) comes with its own Certificate of Authenticity and Serial Number.
- Return to the same UBL portal. Log in with the same Arm account that already holds your existing license(s) — don't create a second account.
- Add the product again. Choose Add a product and enter the new Serial Number.
- Generate a new activation code for this newly added product.
- Enter it in µVision. Open File → License Management → UBL tab, click Activate/Deactivate, and paste in the new activation code.
- Result: your original license stays exactly as it was, and the new one now appears alongside it — both active under the same account, ready to use.
Part 3Proxy Activation (No Internet on the Target PC)
Some development or lab machines — an isolated test bench, a secure network, a CI build machine — never get direct internet access. Proxy activation lets you generate the license on a different, internet-connected PC, then carry it over to the offline one as a file.
- On the networked PC, open a terminal in the product's
binfolder and runarmlm activate --code <activation_code> --as-user <your_username> --to-file <transfer_filename>(use--server <server_URL> --product <product_code>instead of--codeif your organization activates through a License Server rather than individual codes). - Optional — extend how long it lasts. By default the license is only valid for 7 days. Add
--borrow-period <days>to the same command (any value from 7 up to 365) to make it last up to a full year before you need to repeat this process — handy for a lab bench or CI machine you don't want to touch every week. - Copy the generated transfer file to the offline machine — a USB drive or an internal network share both work, since this step needs no internet access.
- On the offline PC, run
armlm import --file <transfer_filename>to activate the license locally. - Renewal is off by default. A proxy-activated license won't try to reach the network on its own. If the target machine does get occasional network access and you'd rather it try to auto-renew every 24 hours, add
--enable-renewalto the import command — just note that each successful renewal resets validity back down to 7 days, overriding whatever--borrow-periodyou set. - Repeat before it expires. Whether that's every 7 days (default) or up to 365 days (with
--borrow-period), generate a fresh transfer file and import it again before the current one runs out.







