Customising and disabling built-in devices

Change how Axiom handles a device it already knows about. You can customise a copy of a built-in profile, for example to poll a sensor less often, or disable a device type so Axiom stops detecting it.

The Devices tab

Connect Axiom and open the Devices tab. Devices on this Axiom lists records in Axiom’s runtime type table, including custom and suppressed records. Search by name, address text, maker or class (e.g. TEMP or ACC).

The Possible I²C column shows the address expression reported by each indexed definition: one address, alternative addresses (e.g. 0x1d,0x53), or a range. These are possible profile addresses, not proof of a connected sensor and not physical port numbers. Use Test & tune → Scan bus for connected devices.

A dash means the record reports no I²C addresses, as with direct or RSAO-only definitions. Unavailable means Axiom returned only metadata without the full record. Rows marked Not listed in runtime table use the current stored file instead. Two records with the same name can have different addresses, so each row keeps its own indexed values. The list arrives progressively and is read again after Refresh device.

The State column describes the current stored file and your browser draft. It does not prove which records were compiled into firmware:

State Meaning
on Axiom Reported by Axiom, but this name is not in the current stored library file.
in stored library This name is in the current file on Axiom. The file may still be waiting for a restart.
disabled in draft Your draft will suppress this type after writing and restarting.
file unknown The current library file could not be inspected. Refresh before relying on its contents.

Some profiles belong to Axiom's own hardware. For example, the battery fuel gauge (MAX17048) is marked Required by Axiom and can't be disabled.

Changes you make here only affect your draft. They take effect after you write the library and restart Axiom from the Install tab.

Viewing a definition

Click Definition next to a profile to open it read-only in the Advanced JSON tab. The page says, for example, MCP9808 as this Axiom defines it. Read only until you customise it.

Devlib Definition

This is a good way to learn the profile format from working examples.

Customising a built-in profile

This example makes the MCP9808 temperature sensor poll every 10 seconds instead of every 5.

  1. On the Devices tab, click Definition next to MCP9808.
  2. Click Customise this profile. A copy goes into your draft, labelled custom draft in the profile list.
  3. In the JSON, find “pollInfo” and change “i”: 5000 to “i”: 10000. The value is in milliseconds.
  4. Click Save to draft. The page confirms Saved to local draft. Axiom has not been changed.

Devlib Customised Draft

How customised profiles are used: Axiom tries your copy first. If your copy doesn't identify the device, the built-in profile is still tried as a fallback. A mistake in your copy therefore usually leaves the device working with its built-in behaviour. The Library column on Test & tune reports file membership, not proof that your custom copy matched. Check the boot result and test the device’s behaviour after restarting. The firmware does not report a compiled/custom source flag for each record.

Just want to try a different polling rate?

You can change a device's polling interval temporarily on the Test & tune tab without editing or installing anything. See Testing and tuning devices. Customise the profile once you've found a value you want to keep.

Disabling a device type

Click Disable next to a profile to stop Axiom detecting that type. Its state changes to disabled in draft and the button becomes Enable type, which undoes it.

Disabling works on the type, not on one physical device. Every device of that type stops being detected, and so does any customised copy of it. If you had a customised copy, enabling the type again brings your copy back.

Installing your changes

Open the Install tab. What will change lists each change:

Devlib Install Changes

  • update: a profile already in the stored library file changes.
  • disable: Axiom will stop identifying this type.
  • add: a profile is added to the custom library file (see Adding a new sensor). It may customise a same-name built-in; the built-in stays as a fallback.
  • remove: an entry is dropped from the stored library file.
  • enable: a disabled type is enabled again.

Tick the review box, click Write to Axiom, then click Restart Axiom. Check What Axiom did with the file it has: your changes are counted under added and disabled, and rejected should be 0.

Undoing changes

  • One stored customisation or added profile: on Devices, click Remove from library beside the entry. Confirm preparing a draft from Axiom’s stored file minus that entry, then review and apply from Install. Other stored entries are preserved; browser-only changes are replaced only after confirmation. For the last entry, use the revealed Remove library & restart action. See Removing your library. Advanced JSON → Remove custom still removes an entry from the local draft.
  • One disabled type: click Enable type on the Devices tab. Then write and restart.
  • Everything: on the Install tab, click Remove library & restart. Axiom goes back to its built-in profiles. See Backing up, sharing and removing your library.
Custom-profile restrictions

The updated Catalogue labels eligibility Installable and gives a reason in Notes. This does not mean a profile is installed, detected or tested on your hardware. Older browser builds may still show Installs and a broader Reserved for Axiom's own hardware message.

Current Device Library firmware rejects custom profiles containing 0x36, even for an external sensor, to preserve its internal fuel gauge. It also treats 0x75 and 0x76 as multiplexer addresses. The updated browser no longer blocks 0x25, 0x70–0x74 or 0x77 merely because of their addresses. The browser still restricts these system-profile names: AxiomPowerV1, MAX17048, PCA9535, Power and LEDPixels. Axiom firmware separately protects MAX17048.

An address restriction does not mean the external sensor is part of Axiom. Supporting external 0x36 profiles needs a firmware follow-up; that support has not been added. Reserved I²C addresses outside 0x08–0x77 remain unavailable in the address-based catalogue.

Task Runner