Skip to main content

January 2025

Issue Charts Drilldown and Improved Tooltips

The recently added Trace and Issue summary charts now also support drilldown and we have added more details to the tooltips available on hover when viewing these charts in your dashboards.

This combination of improvements should make it easier to analyze Issue data at a glance and investigate when you spot something unexpected. You can read more about the new issue summary charts in our docs.

General

  • Improved the Device Alert Incidents chart to now also include counts for Offline Incidents.
  • Added support for LaTeX mathematical expressions in Markdown cards and fields, enhancing the ability to include complex mathematical notation in dashboard descriptions.
  • Improved UX on Issue Charts and Search with new drilldown capabilities, improved tooltips, streamlined filter options, and default settings.

MCU

SDK version 1.19.0 was released. Some highlights:

Added

  • Option to set the Self Test component output log level, MEMFAULT_SELF_TEST_OUTPUT_LOG, to control the verbosity of the Self Test output. Set it by selecting the Memfault Log macro to use, for example #define MEMFAULT_SELF_TEST_OUTPUT_LOG MEMFAULT_LOG_DEBUG. The default level is the same as before, MEMFAULT_LOG_INFO.
  • Implementation of memfault_reboot_reason_get() for the STM32U5xx series of MCUs, using the RCC-CSR register to determine the reset reason. Add the file to your Project to make use of it!
  • Implementation for flash-backed coredump storage for the STM32U5xx series of MCUs, using the internal flash memory to store coredumps. Add the file to your Project to make use of it!
  • Enabled the MPU (Memory Protection Unit) in the FreeRTOS QEMU example, to demonstrate Memfault's MPU region analysis feature. This feature is enabled in a Memfault Project by setting #define MEMFAULT_COLLECT_MPU_STATE 1 in memfault_platform_config.h. The MPU registers are captured as part of a coredump, and Memfault will analyze the configuration and include the result in the Trace viewer.
  • New reboot reason code, kMfltRebootReason_TaskWatchdog, for marking crashes due to a Task Watchdog. Memfault has a built-in Task Watchdog system, and Zephyr and ESP-IDF both implement Task Watchdog systems.
  • FreeRTOS:
    • Support for tracking per-thread stack usage in the Memfault FreeRTOS port. This feature is enabled by default and can be disabled by setting #define MEMFAULT_FREERTOS_COLLECT_THREAD_METRICS 0 in memfault_platform_config.h. The default threads monitored are IDLE and Tmr Svc. Threads are registered for tracking by defining MEMFAULT_METRICS_DEFINE_THREAD_METRICS() in the application.
    • Add tracking of libc heap usage via the memory_pct_max metric to the FreeRTOS QEMU example
  • Zephyr:
    • Add support for tracking per-thread stack usage in the Memfault Zephyr port. This feature is enabled by default and can be disabled by setting CONFIG_MEMFAULT_METRICS_THREADS=n. The default threads monitored are main and sysworkq. Threads are registered for tracking by defining MEMFAULT_METRICS_DEFINE_THREAD_METRICS() in the application.
    • Update to support removal of the global CSTD compiler property (deprecated in Zephyr v3.7.0, and just removed in Zephyr main), when CONFIG_MEMFAULT_COMPACT_LOG is enabled. Thanks to @fouge for providing this fix in #78 !
    • Built-in metric, cpu_usage_pct, which reports the percentage of the CPU used. This metric is enabled by default as part of the default set of Metrics, controlled with CONFIG_MEMFAULT_METRICS_DEFAULT_SET_ENABLE.
    • For ARM targets implementing and enabling the MPU, automatically capture the and analyze the MPU configuration as part of a coredump. This can be controlled with the CONFIG_MEMFAULT_COREDUMP_COLLECT_MPU_STATE Kconfig option.
    • New Kconfig option, CONFIG_MEMFAULT_METRICS_HEARTBEAT_INTERVAL_SECS, which should be used instead of #define MEMFAULT_METRICS_HEARTBEAT_INTERVAL_SECS xxx in memfault_platform_config.h. A build error will occur if the value is set in memfault_platform_config.h to enforce migrating the setting. Thanks to @JordanYates for reporting this feature request in #80
  • ESP-IDF:
    • Support for correctly marking crashes triggered due to a Task Watchdog. A test command, esp_task_watchdog <cpuid>, has been added to the esp32 sample app to trigger a Task Watchdog fault on the specified core. Be sure to enable the Kconfig option CONFIG_ESP_TASK_WDT_PANIC=y to have the system panic when a Task Watchdog fault occurs. Memfault will capture and tag the fault appropriately, as for other fault types.
    • Kconfig option, CONFIG_MEMFAULT_METRICS_HEARTBEAT_INTERVAL_SECS, which should be used instead of #define MEMFAULT_METRICS_HEARTBEAT_INTERVAL_SECS xxx in memfault_platform_config.h. A build error will occur if the value is set in memfault_platform_config.h to enforce migrating the setting.
  • nRF-Connect SDK:
    • Implementation for reboot reason tracking on the nRF54Lx series of MCUs, using the RESETREAS register to determine the reset reason. This will be automatically enabled when building for an nRF54Lx series Device (CONFIG_SOC_SERIES_NRF54LX=y).
    • Add example usage of per-thread stack usage support to the nRF9160 example for the idle, sysworkq, mflt http, WDT, and shell uart tasks.

Changed

  • The eclipse_patch.py utility -memfault-sdk-dir argument is now optional, and defaults to the parent directory of the script folder.
  • Renamed the FreeRTOS QEMU sample app heap metrics from Example_HeapFreeBytes and Example_HeapMinFreeBytes to FreeRTOS_HeapFreeBytes and `FreeRT

Fixed

  • On Zephyr, fixed the MEMFAULT_METRICS_CPU_TEMP Kconfig dependencies, to correctly check for presence of the DT die-temp0 alias, and remove the dependency on ADC, which doesn't apply to all boards implementing a temp sensor. Thanks to @JordanYates for reporting this issue in #79 !

Android

We did not publish a new version of the Memfault Android SDK in January 2025.

Linux

SDK versions 1.16.1 and 1.17.0 were released.

Added

  • Added coredump capture support for 32-bit ARM targets using musl libc.
  • New memfaultctl write-metrics command (see documentation).

Changed

  • The log message emitted when the MAR cleaner encounters an invalid MAR entry in the MAR staging area has been lowered from WARN level to DEBUG level.

Fixed

  • Fixed a sequencing issue with the cleaning of the MAR directory that could result in stranded logs files that would not get deleted nor uploaded.

CLI

We did not publish a new version of the memfault-cli in January 2025.