July 2020

Support for Complex Upgrade Paths#

Many firmware projects have complex firmware upgrade paths. This might be to enable binary differential updates to save bandwidth or maybe to allow for a project to remove backwards-incompatible code.

For example, when upgrading a firmware from a 1.x to a 2.x release, the device might need to go through a migration firmware as shown below.

must-pass-through

To use this, the Memfault CLI provides a --must-pass-through flag. The flag is also documented in the API docs

$ memfault upload-ota-payload --help
...
--must-pass-through When the release is deployed to a Cohort, forces a
device to update through this version even if a
newer version has also been deployed to the Cohort.

General Improvements#

  • Improve usability of filtering for Issues, including the ability to search for Issues that affect a particular device.
  • Improve usability of the Issue distributions when projects have many software versions.
  • Fix a bug which would cause an Issue to have a "Last Seen" date in the future.

Embedded#

  • When a Trace was received from a device but no symbol file has been uploaded for the corresponding firmware, Memfault will now show a warning in the Issues page.

    missing-symbol-file

  • The Memfault CLI tool can now post a chunk that is encoded in base64, raw bytes, or was printed by the SDK through logs.

    $ memfault post-chunk --help
    Usage: memfault post-chunk [OPTIONS] DATA
    Sends data generated by the memfault-firmware-sdk ("chunks") to the
    Memfault cloud.
    The command can operate on binary data encoded in the following formats:
    1. Hex String:
    memfault --project-key ${YOUR_PROJECT_KEY} post-chunk --encoding hex 0802a702010301076a5445535453455249414c0a6d746573742d736f667477617265096a312e302e302d74657374066d746573742d686172647761726504a101a1726368756e6b5f746573745f737563636573730131e4
    2. Base64 Encoded String
    memfault --project-key ${YOUR_PROJECT_KEY} post-chunk --encoding base64 CAKnAgEDAQdqVEVTVFNFUklBTAptdGVzdC1zb2Z0d2FyZQlqMS4wLjAtdGVzdAZtdGVzdC1oYXJkd2FyZQShAaFyY2h1bmtfdGVzdF9zdWNjZXNzATHk
    3. Binary File
    memfault --project-key ${YOUR_PROJECT_KEY} post-chunk --encoding bin chunk_v2_single_chunk_msg.bin
    4. memfault-firmware-sdk data export
    memfault --project-key ${YOUR_PROJECT_KEY} post-chunk --encoding sdk_data_export data_export.txt
  • For more details on the changes to the Firmware SDK that didn't make the changelog, check out the Memfault Firmware SDK changelog.

Android#

  • Traces now show up within the Bug Report timeline view. Hover over each dot to see exact reason for failure.

    traces-timeline

  • Add the ability to scrub the log data of personally identifiable information. You can find these settings under the Project Settings page.

    app-id-scrubbing

  • Improved Java exception parsing and de-duplication.

  • For more details on the changes to the Android Bort SDK that didn't make the changelog, check out the Memfault Bort SDK changelog.

Documentation#