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.
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.
-
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.
- Add the ability to scrub the log data of personally identifiable information. You can find these settings under the Project Settings page.
- 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
- The embedded Reboot Reason Tracking guide has been improved.
- A new page on embedded logging has been created which shows how the SDK can be used to collect and show logs within the Issue view.