Skip to main content

July 2021

Compact Logs in Memfault's Firmware SDK#

Memfault's Firmware SDK now includes support for what we are calling "Compact Logs". It is similar to Zephyr's dictionary-based-logging and a few other implementations in other RTOS's, but we think we've hit the perfect balance of performance, features, ease-of-use, and size compression.

Let's walk through a quick example of what compact logs are. Here is a log line that a user of the Memfault SDK could write:

MEMFAULT_TRACE_EVENT_WITH_LOG("QSPI Flash Erase Failure: error code: 0x%x", 0x5);

With a generic formatted string implementation such as printf, we would need to include the entire string contents in our log buffer or storage. In total, this requires 41 bytes.

00000000: 5153 5049 2046 6c61 7368 2045 7261 7365 QSPI Flash Erase
00000010: 2046 6169 6c75 7265 3a20 6572 726f 7220 Failure: error
00000020: 636f 6465 3a20 3078 35 code: 0x5

Once developers run out of firmware code space, a common pattern is to start shortening log lines or removing them entirely. We believe this is a bad practice! We should be able to keep our useful log lines and make the messages as long as necessary!

This is why we created compact logs. With compact logs, every log "string" is placed in a special section in the ELF file and we just need to reference each log line with an index, or ID.

For a compact log, we just need to encode an integer ID for the string portion and the arguments to be serialized. In this example, this information requires just 5 bytes.

00000000: 8218 8805 ....

In this example, we can reduce the storage occupied by 88%! For a firmware that contains 100-1000 log lines, these savings are dramatic.

Check out our documentation for more information on how to enable compact logs in your firmware.

Along with compact logs, we've been busy adding more ways to filter and slice the data in our application and building up some exciting features related to Custom Events and State. More news to come next month.

June 2021

Nordic nRF Connect SDK Memfault Integration#

Nordic Semiconductor's nRF Connect SDK now has Memfault's SDK built-in, allowing for customers and users of Nordic's chips and tools to integrate and use Memfault in minutes.

Check out our press release for more information!

As for new Memfault features, we made improvements to symbol-file uploading and downloading, added favorite projects, and sped everything up a bit.

May 2021

Heartbeat Metric Improvements#

One of Memfault's most capable features is Metrics. With Metrics, you can determine how specific metrics on a single device correlate with each other to root cause performance and power regressions, or aggregate them on a fleet level and determine whether the health of your fleet of devices is improving over time!

We're announcing new features today which should help make our metrics feature more usable.

First, users can now view all the Metric names that have been received from heartbeat events in the Settings -> Metrics page. This allows for easy auditing of metric names and configrations.

If you find any that are stale or shouldn't be tracked anymore, you can archive them.

When Edit is clicked, users can configure the valid ranges for the metric, which will improve the displayed charts by normalizing the Y-axis to possible values. An example of where this could be useful is battery life, where the min and max values are 0-100.

Users can also specify a single value for Memfault to ignore, such as 0xffffffff, which can represent the absence of a value.

These new features will enable developers and customer support representatives to more easily dig into the health of a single device and the entire fleet.

That's not all though! We've made more improvements to symbol file uploading, bugreport filtering, and the archiving of software versions.

April 2021

Memfault Now Offering Free Trial#

The day you have all (maybe) been waiting for is here! Anyone can now sign up for a free trial of Memfault! There is no sales team in your way of getting your devices integrated with Memfault and monitoring your fleet of devices.

Check out our press release to learn more.

March 2021

User Management Improvements#

You can now view, invite, remove, and set roles for all users in your Organization!

You can find this setting under Admin -> Users. This feature is only available for admins of an Organization.

February 2021

Android Timeline Improvements#

Many improvements have been happening on the Android side of the product, primarily when viewing Caliper data within the Timeline view. We now include almost every type of data a device can send in the timeline view, such as drop box manager entries, log files, traces, and more.

View the timeline by day, drill into specific hours, and navigate to the pieces of data that you want to investigate!

January 2021

Issue Merging#

Make your Issue list more organized and concise with the new Issue merging feature! Users can now merge Issues together by clicking the Merge button on the detail page of an Issue and then selecting which Issue to be its parent.

This workflow is especially useful when there are multiple Issues stemming from the same root cause, such as a stack overflow that presents itself with different backtraces.

This feature is available for both Android and Real-Time products.

December 2020

Memfault's Android SDK hits v3.0!#

Memfault's Bort SDK v3.0 has been released, which includes Memfault Caliper.

The Caliper system supports trace collection from various subsystems, as well as per device and fleet-wide metrics collection via the Android batterystats subsystem. Additional data sources, such as logs and system properties, are in development and are coming soon!

Memfault's Caliper is designed to have minimal effects on runtime performance, as well as consume less bandwidth and storage than sending bug reports.

To compare and contrast how Bug Reports and Memfault Caliper differ, please refer to the Bort SDK Reference docs page.

November 2020

Logging Improvements#

  • Power up your log searching capabilities with filtering by log level, tags, regular expressions. This helps you find offending log lines faster than ever. Works for both Android and Real-Time products.

    log-filtering

October 2020

General Improvements#

  • It is now possible to give Issues a new title with the UI.

    issue-rename