Skip to content

1.31.0

Choose a tag to compare

@memfault-bot memfault-bot released this 23 Nov 16:32

This is a minor feature and bugfix release. Key updates:

  • Fix for compact log serialization error when logs exceed max length
  • Handle an upcoming Zephyr API change that renames BLE connection interval
    field (used in built-in Bluetooth metrics)

📈 Added

  • Zephyr:

    • Added CPU temperature metrics support for additional platforms:

      • Devices with a die temp device tree node with
        compatible = "nordic,nrf-temp";

      • Platforms using die_temp or die_temp0 aliases, a temp nodelabel, or
        the memfault_cpu_temp alias. This support is enabled out of the box for
        the nRF54L15-DK board.

    • Add a new demo CLI command, mflt get_reboot_reason, which displays the
      device reboot reason and the prior stored reboot reason. Example output:

      uart:~$ mflt get_reboot_reason
      Current Reboot Reason Reg: 0x0008
      Prior Stored Reboot Reason: 0x0002

🛠️ Changed

  • Zephyr:

    • Updated the mflt export command to print out chunk data using
      shell_print() instead of printk(). Using printk() can lead to dropped
      chunk data when CONFIG_LOG_PRINTK=y and CONFIG_LOG_MODE_DEFERRED=y.
      Using shell_print() avoids this issue.

    • Change the precedence of reboot reason bits when decoding the Zephyr hwinfo
      reset reason register. This improves the accuracy of reboot reasons on STM32
      platforms, where the Pin Reset and Software Reset bits can be set
      simultaneously with other reset reasons.

    • Support an
      upcoming change
      in Zephyr v4.4.0 / nRF Connect SDK v3.2.0, where the
      bt_conn_le_info.interval field changes to bt_conn_le_info.interval_us.
      Thanks to @weeTike for providing this patch in
      #97 🎉!

      This removes the existing metric bt_connection_interval, replacing with
      bt_connection_interval_us. Please reach out if you need support for the
      previous metric (which was added in SDK v1.29.0)

  • General:

    • Fix a few new warnings when building with clang 21.0.0+.

🐛 Fixed

  • General:

    • Fixed an error in Compact Log serialization that resulted in invalid log
      data, which caused decoding to fail when processing the log in the Memfault
      cloud. This issue only impacted compact logs that were within 4 bytes of the
      MEMFAULT_LOG_MAX_LINE_SAVE_LEN limit; longer compact logs were silently
      dropped but did not cause decoding failures.

      This fix will now insert a placeholder log line when a compact log exceeds
      the maximum length:
      [MFLT] compact log serialized length exceeds MEMFAULT_LOG_MAX_LINE_SAVE_LEN: 1234 bytes (path/to/source/file.c:218) (where 1234
      is the serialized log entry length that exceeded the limit).

  • FreeRTOS

    • Fixed an undefined macros build error on FreeRTOS versions < V11.0.0 in the
      FreeRTOS thread metrics port. Thread metric collection is enabled by default
      on FreeRTOS platforms but can be disabled with
      #define MEMFAULT_FREERTOS_COLLECT_THREAD_METRICS 0.