Skip to main content

Comparison: Memfault OTA and hawkBit

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

Let's compare the hawkBit management UI and Memfault for managing OTA updates. The goal of this section is to help transition from using hawkBit to Memfault. If you're familiar with navigating hawkBit you'll be able to find the equivalent fleet data in Memfault.

warning

Not all hawkBit concepts have a corresponding Memfault counterpart.

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 functions 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.

info

Using a Gateway Token is the only authentication method Memfault supports right now.

Deployment Management

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

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

Memfault displays device and release data differently. Navigate to Fleet/Devices to see your devices. You can learn more about organizing and managing devices in the Memfault docs.

Click on any cohort and you'll find version management options available.

Unlike hawkBit, the distribution tab in a cohort view shows the breakdown of software versions deployed across those devices.

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. OTA Releases will guide you through finding releases.

warning

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.

Artifact Management

hawkBit's view for managing Artifacts.

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

Memfault stores and distributes OTA Payload's to devices.

warning

Memfault doesn't support multiple OTA payloads per release.

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 implements a Staged Rollout to describe a deployment of a software version to devices. Unlike hawkBit, all rollouts are anchored around a cohort. Navigate to Software/OTA Releases and notice that the page shows any active releases.

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 a comprehensive device search available which can filter devices on complex dimensions unavailable in hawkBit.

Reference