Skip to main content

Memfault OTA for hawkBit users

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.

This page is aimed at users who are already familiar with the hawkBit DDI API and Management UI.

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.

Users leverage the Memfault Web Application as a replacement of the hawkBit Management UI.

Memfault does not implement the hawkBit Management API; for headless OTA management, one should exercise the Memfault Releases 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:

hawkBitMemfaultWhat it's used for
Provisioning TargetDeviceSystem to update.
Controller IDDevice IDIdentifying specific devices. This value must be unique per Project.
Software Module / ArtifactOTA PayloadThe 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 / RolloutReleaseInstruction 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 FilterCohortIdentifying which devices to update in a Release.
Gateway Security Token AuthenticationProject keyAuthenticating 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.
warning

Some data may not exist because Memfault doesn't have every hawkBit feature implemented yet.

System Configuration

hawkBit provisions important things including authentication tokens in the System Config view.

/img/docs/linux/hawkbit-ui-system-config.png

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 under Memfault's Settings tab. Provide the token in each device configuration. Create multiple projects for a multi-tenant approach. Each project is considered a different tenant.

/img/docs/linux/memfault-settings.png

Deployment Management

The hawkBit management UI combines some device and release information in a single view.

/img/docs/linux/hawkbit-ui-deployment-mgmt.png

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.

/img/docs/linux/memfault-devices.png

We can do better. Devices are managed in Cohorts, which are logical groups of devices. Cohorts are similar to hawkBit Target Filters. Navigate to Fleet/Cohorts. A default cohort is available for every new project. You can also create your own cohorts.

/img/docs/linux/memfault-cohorts.png

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.

/img/docs/linux/memfault-default-cohort.png

The distribution tab in a Memfault cohort shows the breakdown of software versions deployed across the cohort.

/img/docs/linux/memfault-cohort-distribution.png

Distribution Management

hawkBit Distributions provide high-level information about releases.

/img/docs/linux/hawkbit-ui-distribution-management.png

The Memfault equivalent of a hawkBit Distribution is a Release. Releases are found under Software/OTA Releases on the sidebar.

/img/docs/linux/memfault-ota-releases.png

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.

/img/docs/linux/memfault-ota-release.png

Artifact Management

hawkBit's view for managing Artifacts.

/img/docs/linux/hawkbit-ui-artifact-management.png

Memfault stores an OTA Payload which is similar to hawkBit Artifacts. Navigate into Software/OTA Releases and select a release. You can add an OTA Payload through the UI if no OTA Payloads are available.

/img/docs/linux/memfault-ota-release-payload.png

Rollout Management

hawkBit has two views for managing Rollouts.

A list of Rollouts.

/img/docs/linux/hawkbit-ui-rollout-management-progress.png

A single Rollout.

/img/docs/linux/hawkbit-ui-rollout-management-complete.png

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.

/img/docs/linux/memfault-ota-releases.png

You can track the progress of a release by clicking on the name. The compact audit log has visibility into release progress and history.

/img/docs/linux/memfault-ota-release-payload.png

If you select a cohort with an active release, the version management tab within a cohort contains a progress percentage of the release.

/img/docs/linux/memfault-release-progress.png

A Cohort distribution tab contains the current deployment.

/img/docs/linux/memfault-release-distribution.png

Target Filter Management

hawkBit's view for managing Target Filters.

/img/docs/linux/hawkbit-ui-target-filter-management.png

Memfault uses Cohorts for managing groups of devices. The Fleet/Devices page has top-level data for observing individual device health.

/img/docs/linux/memfault-devices.png

Clicking into a device will yield more information.

/img/docs/linux/memfault-device.png

Reference