---json
{
"name": "Backup & updates"
}
---
====== Backing up, sharing and removing your library ======
Keep a copy of your device library, restore it after a firmware update, reuse it on other Axioms, share it with others, or remove it to go back to Axiom's built-in profiles.
{{ :axiom:device_library:devlib-recovery.png?nolink&800 |}}
===== Where your work is kept =====
^ Copy ^ Where it lives ^ How to save it ^
| **Your draft** | In this browser, on this computer. It survives closing the page, but not clearing browser data or switching computers. | **Advanced JSON → Export draft** |
| **Axiom's library** | The file ''/local/devlib.json'' on Axiom. | **Install → Export Axiom's library** |
Neither is a backup on its own. **Export a copy of any library that works before you change it.** There is no undo or automatic rollback on Axiom.
Removing the library from Axiom does **not** clear your browser draft or unsaved editor text. They remain available when you reload or reopen this page. Nothing is automatically sent back to Axiom; you must explicitly write and restart to reinstall a draft.
===== Before a firmware update =====
==Firmware updates erase your library==
A normal firmware update from the [[https://updates.robotical.io/axiom/web-updater/|web updater]] replaces all files stored on Axiom, including your device library. Afterwards Axiom has only its built-in profiles.
- Connect Axiom to the Device Library and open the **Install** tab.
- Click **Export Axiom's library** and keep the ''.json'' file somewhere safe.
- Update the firmware as usual (see [[axiom:device_library:getting_started|Getting started]]).
- Reconnect the Device Library. On the **Advanced JSON** tab, click **Import JSON** and choose the file you exported. It replaces your draft.
- On the **Install** tab, review the changes, click **Write to Axiom**, then **Restart Axiom**.
- Check **What Axiom did with the file it has**. A different firmware version may accept or reject profiles differently, so make sure **rejected** is 0.
The web updater has a developer option, **Flash application only**, which leaves stored files alone. Export your library anyway, in case it's needed.
===== Using the same library on another Axiom =====
- Export the library from the first Axiom (**Export Axiom's library**) or export your draft.
- Connect the second Axiom, import the file in **Advanced JSON**, then write and restart from the **Install** tab.
- Check the boot result and scan the bus on the second Axiom. Profiles are portable between Axioms, but results can differ if the firmware versions differ.
The Device Library checks that it is still talking to the Axiom you reviewed before it writes anything. If you swap Axioms while the page is open, connect the new one and review again.
===== Sharing profiles =====
Libraries and single profiles are ordinary JSON files, so you can email them or keep them in a repository.
* To use a file you've been sent, click **Import JSON** in **Advanced JSON**.
* To load one from the web, click **Import from URL** and enter an ''https://'' address. The server must allow browser access (CORS), e.g. a raw file link from a code-hosting site. If a URL won't load, download the file and use **Import JSON** instead.
Only import profiles from people you trust, and review them in **What will change** before writing. A profile can claim any device at its addresses.
===== Starting from what's on Axiom =====
On **Install**, click **Reset draft from Axiom** to discard browser-only changes and start again from the current stored library file. This was previously labelled **Use Axiom's library as draft**.
- The page reads Axiom again before asking you to confirm. If there is a readable library file, it copies that file into your browser draft, including disabled entries. This uses the **stored file**, even if it has not yet been applied by restarting.
- If Axiom has **no custom library file**, the confirmation offers to reset the draft to empty. This does not copy the built-in firmware profiles into the draft.
- Confirm **Reset draft**. If the editor has unsaved changes, a second confirmation asks whether to discard them. Cancel at either confirmation keeps your browser work.
The reset changes only the browser draft: it does not write, delete or restart anything on Axiom. A file that cannot be read or parsed is not treated as an empty library; refresh or recover it before resetting. Export browser work first if you want to keep a copy (save unsaved edits before exporting).
A fresh browser starts with an empty draft rather than automatically importing Axiom's file. Resetting from Axiom is the way to start from that unit's stored profiles. **Write to Axiom** later replaces the whole file with your draft.
===== Removing your library =====
To go back to Axiom's built-in profiles, open the **Install** tab and click **Remove library & restart**, then confirm. Axiom deletes the library file and restarts, and the page confirms //Removed. Axiom is using its built-in device definitions.//
**Your browser work is kept.** After removing the whole library, profiles may still appear in **Advanced JSON** and in the proposed changes on **Install**. These are your local draft, not profiles still installed on Axiom. You can keep editing or export the draft; save any unsaved editor changes before exporting.
To remove just one stored profile without editing JSON:
- Open **Devices** and click **Remove from library** beside that profile. Entries present only in the stored file are also listed, even if Axiom did not load them.
- Confirm **Prepare removal**. The page reads Axiom’s current file and replaces your browser draft with that file minus the chosen entry, preserving all other stored entries. Export browser-only work first if you want to keep it. Unsaved editor changes have a separate discard confirmation; Cancel keeps them.
- On **Install**, review the removal, click **Write to Axiom**, then restart. If it was the last entry, the page opens the **Remove library & restart** action instead.
Preparing removal changes only the browser draft. Axiom is unchanged until you apply it. Removing a custom copy leaves any same-name built-in definition available; built-in definitions cannot be deleted. The **Advanced JSON → Remove custom** action remains available for editing the draft directly.
==Deleting isn't enough on its own==
Axiom keeps running the profiles it started with until it restarts. If the status strip shows //Removed — restart to restore built-ins//, click **Restart Axiom**.