Memfault's Embedded Linux Over-the-Air updates (OTA) solution is hawkBit Direct Device Integration (DDI) API compatible. For information on Linux OTA, please see Embedded Linux OTA Integration Guide.
For general information about Memfault OTA, including all the features available, please see our OTA Update docs.
Differences between hawkBit and Memfault
For migrations to Memfault, hawkBit Clients on the device remain unchanged but need to be configured to point to Memfault; Memfault acts as a hawkBit update server by implementing the hawkBit DDI API.
Memfault relies on the Gateway Security Token Authentication system as defined by hawkBit.
Here is an overview of hawkBit concepts and how they map to Memfault:
|hawkBit||Memfault||What it's used for|
|Provisioning Target||Device||System to update.|
|Controller ID||Device ID||Identifying specific devices. This value must be unique per Project.|
|Software Module / Artifact||OTA Payload||The binary to be downloaded to the device. The combination of hawkBit Software Modules and Artifacts describe a hiararchy of files to be distributed to devices. A Memfault Release contains OTA Payload(s), each of which can target a specific hardware version.|
|Distribution / Rollout||Release||Instruction to start releasing binaries to devices. A hawkBit Distribution is a versioned set of Software Modules. A Memfault Release is a versioned set of OTA Payloads.|
|Target Filter||Cohort||Identifying which devices to update in a Release.|
|Gateway Security Token Authentication||Project key||Authenticating devices to the update server.|
Comparing Memfault to hawkBit's Management UI
Using Memfault's OTA features allows you to manage releases through the Memfault interface. Let's look at a comparison between the hawkBit management UI and Memfault. The goal of this section is to visually connect hawkBit's management UI and Memfault concepts. If you're familiar with navigating hawkBit you'll be able to find the equivalent fleet data in Memfault.
According to the hawkBit docs:
The hawkBit Management UI provides several views for the different use cases:
- Deployment Management view for target administration and manual deployment.
- Distribution Management view software repository metadata management.
- Artifact Management view to manage the artifacts.
- Target Filter Management view to manage target filters that can be used both in Deployment and Rollout Management views.
- Rollout Management for large scale rollout orchestration.
Some data may not exist because Memfault doesn't have every hawkBit feature implemented yet.
hawkBit provisions important things including authentication tokens in the System Config view.
Memfault project-level settings operate as hawkBit's system config data model.
Notably, every device requires an auth token for receiving updates from
Memfault. You can find the
Project Key which acts like hawkBit's Gateway Token
Settings tab. Provide the token in each device configuration.
Create multiple projects for a multi-tenant approach. Each project is considered
a different tenant.
The hawkBit management UI combines some device and release information in a single view.
In Memfault, navigate to
Fleet/Devices to see your devices, similar to the
Targets column hawkBit provides with more information density. You can view the
current software version of every device in your fleet.
We can do better. Devices are managed in Cohorts, which are logical groups
of devices. Cohorts are similar to hawkBit Target Filters. Navigate to
default cohort is available for every new project. You can
also create your own cohorts.
Click on any cohort and you'll find a version matrix, distribution, and settings for cohort management. Version management tracks different versions deployed within a cohort.
The distribution tab in a Memfault cohort shows the breakdown of software versions deployed across the cohort.
hawkBit Distributions provide high-level information about releases.
The Memfault equivalent of a hawkBit Distribution is a Release. Releases are
Software/OTA Releases on the sidebar.
Select a release for more information about it. Keep in mind there's naming overlap where hawkBit and Memfault concepts don't align. For example the Memfault details widget isn't meant to exactly match hawkBit's Distribution set details tab.
hawkBit's view for managing Artifacts.
Memfault stores an OTA Payload which is similar to hawkBit Artifacts.
Software/OTA Releases and select a release. You can add an OTA
Payload through the UI if no OTA Payloads are available.
hawkBit has two views for managing Rollouts.
A list of Rollouts.
A single Rollout.
Memfault uses the term Release to describe a deployment of a software
version to devices. Navigate to
Software/OTA Releases and notice that the page
shows any active releases.
You can track the progress of a release by clicking on the name. The compact audit log has visibility into release progress and history.
If you select a cohort with an active release, the version management tab within a cohort contains a progress percentage of the release.
A Cohort distribution tab contains the current deployment.
Target Filter Management
hawkBit's view for managing Target Filters.
Memfault uses Cohorts for managing groups of devices. The
has top-level data for observing individual device health.
Clicking into a device will yield more information.