---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. ===== 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 the **Install** tab, **Use Axiom's library as draft** copies the file that is on Axiom into your draft. You'll be asked to confirm first. Do this before making changes on a different computer, or whenever your draft has drifted from what's installed, because **Write to Axiom** 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.// To remove just one profile, remove it from your draft in **Advanced JSON** (**Remove custom**), then write and restart. ==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**.