<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="atom.xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://docs.memfault.com/changelog</id>
    <title>Memfault Docs Blog</title>
    <updated>2026-03-31T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://docs.memfault.com/changelog"/>
    <subtitle>Memfault Docs Blog</subtitle>
    <icon>https://docs.memfault.com/img/memfault-favicon.png</icon>
    <entry>
        <title type="html"><![CDATA[March 2026]]></title>
        <id>https://docs.memfault.com/changelog/2026/03/31</id>
        <link href="https://docs.memfault.com/changelog/2026/03/31"/>
        <updated>2026-03-31T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Highlights]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="highlights">Highlights<a href="https://docs.memfault.com/changelog/2026/03/31#highlights" class="hash-link" aria-label="Direct link to Highlights" title="Direct link to Highlights" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="export-device-vitals">Export Device Vitals<a href="https://docs.memfault.com/changelog/2026/03/31#export-device-vitals" class="hash-link" aria-label="Direct link to Export Device Vitals" title="Direct link to Export Device Vitals" translate="no">​</a></h3>
<p>Device Vitals columns are now included in
<a class="" href="https://docs.memfault.com/docs/platform/device-inventory#bulk-action-export">device CSV exports</a>.</p>
<p>You can also <strong>export data directly from a single device's detail page</strong>, making
it easier to pull a single device's history for offline analysis or sharing with
hardware teams.</p>
<figure class="figure_SMyf" style="--figure-bg-color:transparent"><a href="https://docs.memfault.com/img/blog/2026-03-device-vitals-export.png" target="_blank" class="link_rHrz"><img src="https://docs.memfault.com/img/blog/2026-03-device-vitals-export.png" class="image_e9uR" alt="Exporting device vitals from the Device Detail page"></a></figure>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="trace-count-by-software-version">Trace Count Grouped by Software Version<a href="https://docs.memfault.com/changelog/2026/03/31#trace-count-by-software-version" class="hash-link" aria-label="Direct link to Trace Count Grouped by Software Version" title="Direct link to Trace Count Grouped by Software Version" translate="no">​</a></h3>
<p>Issue Chart: Trace Count Over Time cards now support a <strong>"Software Version"
group-by option</strong>, letting you see trace volume broken down by the versions of
software running across your fleet. This makes it easy to confirm whether a bug
affects a specific release or spans multiple versions.</p>
<figure class="figure_SMyf" style="--figure-bg-color:transparent"><a href="https://docs.memfault.com/img/blog/2026-03-issue-chart-group-by-version.png" target="_blank" class="link_rHrz"><img src="https://docs.memfault.com/img/blog/2026-03-issue-chart-group-by-version.png" class="image_e9uR" alt="Issue chart grouped by software version"></a></figure>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="general">General<a href="https://docs.memfault.com/changelog/2026/03/31#general" class="hash-link" aria-label="Direct link to General" title="Direct link to General" translate="no">​</a></h2>
<ul>
<li class=""><strong>Device Vitals</strong> columns are now included in CSV device exports, and a single
device's data can be exported directly from the Device Detail page.</li>
<li class="">Issue Chart cards now support <strong>grouping by Software Version</strong>, making it easy
to see trace distribution across releases.</li>
<li class="">The <strong>Upload Traces modal</strong> now correctly detects and handles MAR files in
addition to ZIPs.</li>
<li class="">For nRF Cloud customers, <strong>account registration, user invites, and team
permissions</strong> are now managed in app.memfault.com.</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="device-sdk-updates">Device SDK Updates<a href="https://docs.memfault.com/changelog/2026/03/31#device-sdk-updates" class="hash-link" aria-label="Direct link to Device SDK Updates" title="Direct link to Device SDK Updates" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="mcu-march-2026">MCU: [1.37.1] - 2026-03-24, [1.37.0] - 2026-03-23, and [1.36.0] - 2026-03-11<a href="https://docs.memfault.com/changelog/2026/03/31#mcu-march-2026" class="hash-link" aria-label="Direct link to MCU: [1.37.1] - 2026-03-24, [1.37.0] - 2026-03-23, and [1.36.0] - 2026-03-11" title="Direct link to MCU: [1.37.1] - 2026-03-24, [1.37.0] - 2026-03-23, and [1.36.0] - 2026-03-11" translate="no">​</a></h3>
<p>See the full
<a href="https://github.com/memfault/memfault-firmware-sdk/blob/master/CHANGELOG.md" target="_blank" rel="noopener noreferrer" class="">MCU SDK changelog</a>.</p>
<ul>
<li class="">Added a
<a href="https://docs.memfault.com/docs/mcu/mcumgr" target="_blank" rel="noopener noreferrer" class="">Memfault MCUmgr command group</a> for
Zephyr, enabling FOTA via MCUmgr (SMP over BLE) without a secondary interface</li>
<li class="">Improved nRF Cloud CoAP: data now uploads directly to the <code>/chunks</code> endpoint
without requiring <code>CONFIG_MEMFAULT_HTTP_ENABLE</code>, and supports automatic
project routing via Project Key</li>
<li class="">Refactored Zephyr HTTP client to use native <code>zsock_</code> socket functions,
removing the POSIX API compatibility layer requirement</li>
<li class="">Added optional watchdog interrupt return behavior via
<code>MEMFAULT_FAULT_HANDLER_WATCHDOG_RETURN</code>, and ESP-IDF v6 compatibility</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="android-march-2026">Android: [v5.8.0] - 2026-03-26 and [v5.7.0] - 2026-03-10<a href="https://docs.memfault.com/changelog/2026/03/31#android-march-2026" class="hash-link" aria-label="Direct link to Android: [v5.8.0] - 2026-03-26 and [v5.7.0] - 2026-03-10" title="Direct link to Android: [v5.8.0] - 2026-03-26 and [v5.7.0] - 2026-03-10" translate="no">​</a></h3>
<p>See the full
<a href="https://github.com/memfault/bort/blob/master/CHANGELOG.md" target="_blank" rel="noopener noreferrer" class="">Android SDK changelog</a>.</p>
<ul>
<li class="">Added support for <a href="https://github.com/memfault/bort/tree/master" target="_blank" rel="noopener noreferrer" class="">Android 16</a></li>
<li class="">Added <code>uptime</code> and <code>boot_id</code> to metrics and reports, with optional
uptime-based timestamp adjustment for more accurate metric aggregation across
reboots</li>
<li class="">Added Bluetooth disconnect metrics (<code>bluetooth.disconnect</code>,
<code>bluetooth.disconnect_reason</code>, <code>bluetooth.disconnects</code>) collected via statsd</li>
<li class="">Fixed battery metrics over-writing on unchanged values (reducing up to ~500
MB/day of unnecessary storage) and fixed diskstats bytes-written being
over-reported by 8×</li>
</ul>
<h1>Linux</h1>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="linux-march-2026">[1.26.1] - 2026-03-26 and [1.26.0] - 2026-03-06<a href="https://docs.memfault.com/changelog/2026/03/31#linux-march-2026" class="hash-link" aria-label="Direct link to [1.26.1] - 2026-03-26 and [1.26.0] - 2026-03-06" title="Direct link to [1.26.1] - 2026-03-26 and [1.26.0] - 2026-03-06" translate="no">​</a></h2>
<p>See the full
<a href="https://github.com/memfault/memfault-linux-sdk/blob/kirkstone/CHANGELOG.md" target="_blank" rel="noopener noreferrer" class="">Linux SDK changelog</a>.</p>
<ul>
<li class="">Added automatic sysfs battery metrics when a battery node is present, plus a
new <code>battery_soh_pct</code> State of Health metric, with no extra configuration
needed</li>
<li class=""><strong>Log filter configuration can now be pushed from the server</strong> via device
config, allowing log verbosity to be adjusted remotely without changing
on-device settings</li>
<li class="">Added min/max tracking option for individual metric keys alongside averages</li>
<li class="">Fixed a crash in journald log collection when encountering empty or malformed
cursor files</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="sdk-180---2026-03-06">SDK: [1.8.0] - 2026-03-06<a href="https://docs.memfault.com/changelog/2026/03/31#sdk-180---2026-03-06" class="hash-link" aria-label="Direct link to SDK: [1.8.0] - 2026-03-06" title="Direct link to SDK: [1.8.0] - 2026-03-06" translate="no">​</a></h3>
<p>See the full
<a href="https://pypi.org/project/memfault-cli/#description" target="_blank" rel="noopener noreferrer" class="">CLI changelog</a>.</p>
<ul>
<li class="">
<p>Add the <code>--org-token</code> option for authenticating with an Organization Auth
Token (OAT). This is now the recommended way to pass OATs to the CLI.
Previously, the documented approach was to pass the OAT via <code>--password</code>:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:#282c34;--prism-color:#ffffff"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="background-color:#282c34;color:#ffffff"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#ffffff"><span class="token plain">memfault --password "$ORGANIZATION_AUTH_TOKEN" ...</span><br></span></code></pre></div></div>
<p>This should now be updated to use <code>--org-token</code>:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:#282c34;--prism-color:#ffffff"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="background-color:#282c34;color:#ffffff"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#ffffff"><span class="token plain">memfault --org-token "$ORGANIZATION_AUTH_TOKEN" ...</span><br></span></code></pre></div></div>
<p>Passing an OAT via <code>--password</code> is deprecated and will be removed in a future
release.</p>
</li>
<li class="">
<p>Update <code>virtualenv</code> dependency to <code>&gt;=20.36.1</code> to address
<a href="https://nvd.nist.gov/vuln/detail/CVE-2024-53899" target="_blank" rel="noopener noreferrer" class="">this security disclosure</a>.</p>
</li>
</ul>]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[February 2026]]></title>
        <id>https://docs.memfault.com/changelog/2026/02/28</id>
        <link href="https://docs.memfault.com/changelog/2026/02/28"/>
        <updated>2026-02-28T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Highlights]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="highlights">Highlights<a href="https://docs.memfault.com/changelog/2026/02/28#highlights" class="hash-link" aria-label="Direct link to Highlights" title="Direct link to Highlights" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="linked-devices-bar">Linked Devices Always Visible on Device Detail<a href="https://docs.memfault.com/changelog/2026/02/28#linked-devices-bar" class="hash-link" aria-label="Direct link to Linked Devices Always Visible on Device Detail" title="Direct link to Linked Devices Always Visible on Device Detail" translate="no">​</a></h3>
<p>A new <strong>Linked Devices bar</strong> on the Device Detail page makes related devices
permanently visible without expanding the header. For products where a gateway,
companion app, or companion hardware are paired to the primary device, this
surfaces those relationships right where you need them during debugging.</p>
<figure class="figure_SMyf" style="--figure-bg-color:transparent"><a href="https://docs.memfault.com/img/blog/2026-02-linked-devices-bar.png" target="_blank" class="link_rHrz"><img src="https://docs.memfault.com/img/blog/2026-02-linked-devices-bar.png" class="image_e9uR" alt="Linked Devices bar on the Device Detail page"></a></figure>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="log-explorer-copy">Log Explorer Copy Improvements<a href="https://docs.memfault.com/changelog/2026/02/28#log-explorer-copy" class="hash-link" aria-label="Direct link to Log Explorer Copy Improvements" title="Direct link to Log Explorer Copy Improvements" translate="no">​</a></h3>
<p>Copying from the <strong>Log Explorer</strong> now produces clean, tab-separated output
(timestamp, level, message) ready to paste into a spreadsheet or bug report.
Multi-row selection with keyboard shortcuts is also supported, making it faster
to grab exactly the lines you need.</p>
<figure class="figure_SMyf" style="--figure-bg-color:transparent"><a href="https://docs.memfault.com/img/blog/2026-02-log-explorer-copy.png" target="_blank" class="link_rHrz"><img src="https://docs.memfault.com/img/blog/2026-02-log-explorer-copy.png" class="image_e9uR" alt="Log Explorer copy improvements"></a></figure>
<div class="language-log codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:#282c34;--prism-color:#ffffff"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-log codeBlock_bY9V thin-scrollbar" style="background-color:#282c34;color:#ffffff"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#ffffff"><span class="token plain">2026-04-07T05:00:04+00:00	INFO	Ready for sync with companion app	MFLT0000619	661431	1994933	Production	1.1.0	pvt	sync_prep:45</span><br></span><span class="token-line" style="color:#ffffff"><span class="token plain">2026-04-07T05:00:04+00:00	INFO	Ready for sync with companion app	MFLT0000612	661431	1994270	Production	1.1.0	pvt	sync_prep:45</span><br></span><span class="token-line" style="color:#ffffff"><span class="token plain">2026-04-07T05:00:04+00:00	INFO	Ready for sync with companion app	MFLT0000631			Production	1.1.0	pvt	sync_prep:45</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="general">General<a href="https://docs.memfault.com/changelog/2026/02/28#general" class="hash-link" aria-label="Direct link to General" title="Direct link to General" translate="no">​</a></h2>
<ul>
<li class="">A new <strong>Linked Devices bar</strong> on the Device Detail page shows paired devices at
a glance without expanding the header.</li>
<li class=""><strong>Log Explorer</strong> copy now produces clean tab-separated output (timestamp,
level, message); multi-row keyboard selection added.</li>
<li class=""><strong>Organization Auth Tokens</strong> can now be created with restricted permission
sets, giving Org Admins finer-grained access control - especially useful for
SSO integrations.</li>
<li class=""><strong>Alerts can now be archived</strong>, and the alerts UI can be hidden per-project as
a contract setting.</li>
<li class="">Charts that previously supported only a single segment now have a <strong>segment
selector</strong> in the footer, letting you switch the applied comparand without
recreating the chart.</li>
<li class="">The <strong>nRF Cloud Pricing Calculator</strong> is now available at
nrfcloud.com/pricing/calculator, using the same logic as invoicing and the
Cost Control Center.</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="device-sdk-updates">Device SDK Updates<a href="https://docs.memfault.com/changelog/2026/02/28#device-sdk-updates" class="hash-link" aria-label="Direct link to Device SDK Updates" title="Direct link to Device SDK Updates" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="android-february-2026">Android: [v5.6.0] - 2026-02-04<a href="https://docs.memfault.com/changelog/2026/02/28#android-february-2026" class="hash-link" aria-label="Direct link to Android: [v5.6.0] - 2026-02-04" title="Direct link to Android: [v5.6.0] - 2026-02-04" translate="no">​</a></h3>
<p>See the full
<a href="https://github.com/memfault/bort/blob/master/CHANGELOG.md" target="_blank" rel="noopener noreferrer" class="">Android SDK changelog</a>.</p>
<ul>
<li class="">Added support for <a href="https://github.com/memfault/bort/tree/7" target="_blank" rel="noopener noreferrer" class="">Android 7.1</a></li>
<li class="">Fixed missing Bluetooth metrics coming from statsd</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="cli-february-2026">CLI: [1.7.2] - 2026-02-05<a href="https://docs.memfault.com/changelog/2026/02/28#cli-february-2026" class="hash-link" aria-label="Direct link to CLI: [1.7.2] - 2026-02-05" title="Direct link to CLI: [1.7.2] - 2026-02-05" translate="no">​</a></h3>
<p>See the full
<a href="https://pypi.org/project/memfault-cli/#description" target="_blank" rel="noopener noreferrer" class="">CLI changelog</a>.</p>
<ul>
<li class="">Fix a bug where <code>upload-yocto-symbols</code> and <code>upload-elf-symbols</code> would fail on
Python 3.14 with <code>tarfile.AbsoluteLinkError</code> when extracting tarballs that
contain absolute symlinks (e.g. Yocto's <code>/etc/localtime</code>).</li>
</ul>]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[January 2026]]></title>
        <id>https://docs.memfault.com/changelog/2026/01/31</id>
        <link href="https://docs.memfault.com/changelog/2026/01/31"/>
        <updated>2026-01-31T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[General]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="general">General<a href="https://docs.memfault.com/changelog/2026/01/31#general" class="hash-link" aria-label="Direct link to General" title="Direct link to General" translate="no">​</a></h2>
<ul>
<li class="">New self-serve customers signing up on <strong>app.nrfcloud.com</strong> are now
automatically redirected into the Memfault experience after signup,
streamlining onboarding for nRF Cloud customers.</li>
<li class="">When using
<a class="" href="https://docs.memfault.com/docs/platform/device-inventory#importing-devices-from-csv">Bulk Device Upload</a>,
<strong>CSV device upload error messages</strong> are now clearer when specified hardware
versions don't yet exist.</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="device-sdk-updates">Device SDK Updates<a href="https://docs.memfault.com/changelog/2026/01/31#device-sdk-updates" class="hash-link" aria-label="Direct link to Device SDK Updates" title="Direct link to Device SDK Updates" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="mcu-january-2026">MCU: [1.35.0] - 2026-01-29, [1.34.0] - 2026-01-26, and [1.33.0] - 2026-01-07<a href="https://docs.memfault.com/changelog/2026/01/31#mcu-january-2026" class="hash-link" aria-label="Direct link to MCU: [1.35.0] - 2026-01-29, [1.34.0] - 2026-01-26, and [1.33.0] - 2026-01-07" title="Direct link to MCU: [1.35.0] - 2026-01-29, [1.34.0] - 2026-01-26, and [1.33.0] - 2026-01-07" translate="no">​</a></h3>
<p>See the full
<a href="https://github.com/memfault/memfault-firmware-sdk/blob/master/CHANGELOG.md" target="_blank" rel="noopener noreferrer" class="">MCU SDK changelog</a>.</p>
<ul>
<li class=""><strong>ESP8266 support has been removed</strong> from the SDK; Memfault's cloud no longer
processes ESP8266 data. <a href="https://mflt.io/contact-support" target="_blank" rel="noopener noreferrer" class="">Contact support</a> if
you need migration assistance.</li>
<li class="">Added Ambiq Apollo4/Apollo510 coredump storage via MRAM, enabled with
<code>CONFIG_MEMFAULT_COREDUMP_STORAGE_AMBIQ_MRAM=y</code></li>
<li class="">Added ESP-IDF support for chunked OTA HTTP downloads to reduce RAM usage
(automatically enabled with <code>CONFIG_ESP_HTTPS_OTA_ENABLE_PARTIAL_DOWNLOAD=y</code>)</li>
<li class="">Added <code>memfault_zephyr_port_http_periodic_upload_enable()</code> to toggle periodic
uploads at runtime, and <code>memfault_zephyr_port_http_periodic_upload_enabled()</code>
to query upload state</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="cli-171---2026-01-20">CLI: [1.7.1] - 2026-01-20<a href="https://docs.memfault.com/changelog/2026/01/31#cli-171---2026-01-20" class="hash-link" aria-label="Direct link to CLI: [1.7.1] - 2026-01-20" title="Direct link to CLI: [1.7.1] - 2026-01-20" translate="no">​</a></h3>
<p>See the full
<a href="https://pypi.org/project/memfault-cli/#description" target="_blank" rel="noopener noreferrer" class="">CLI changelog</a>.</p>
<ul>
<li class="">Update urllib3 dependency to &gt;=2.6.3 to address this security disclosure.</li>
</ul>]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[December 2025]]></title>
        <id>https://docs.memfault.com/changelog/2025/12/31</id>
        <link href="https://docs.memfault.com/changelog/2025/12/31"/>
        <updated>2025-12-31T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Highlights]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="highlights">Highlights<a href="https://docs.memfault.com/changelog/2025/12/31#highlights" class="hash-link" aria-label="Direct link to Highlights" title="Direct link to Highlights" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="issue-trends-at-a-glance">Issue Trends at a Glance<a href="https://docs.memfault.com/changelog/2025/12/31#issue-trends-at-a-glance" class="hash-link" aria-label="Direct link to Issue Trends at a Glance" title="Direct link to Issue Trends at a Glance" translate="no">​</a></h3>
<p>The Issue List page now shows <strong>trace volume trend charts</strong> for each issue,
covering the last 14 days, 8 weeks, or 12 months. You can now spot growing
problems, stable regressions, and recovering issues without opening each one
individually.</p>
<figure class="figure_SMyf" style="--figure-bg-color:transparent"><a href="https://docs.memfault.com/img/blog/2025-12-issue-list-trends.png" target="_blank" class="link_rHrz"><img src="https://docs.memfault.com/img/blog/2025-12-issue-list-trends.png" class="image_e9uR" alt="Issue trace volume trends on the issue list page"></a></figure>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="improved-software-version-filter">Improved Software Version Filtering in Device Search<a href="https://docs.memfault.com/changelog/2025/12/31#improved-software-version-filter" class="hash-link" aria-label="Direct link to Improved Software Version Filtering in Device Search" title="Direct link to Improved Software Version Filtering in Device Search" translate="no">​</a></h3>
<p>The software version filter in
<a href="https://docs.memfault.com/docs/platform/device-inventory#device-search" target="_blank" rel="noopener noreferrer" class="">Device Search</a>
has been overhauled. It now lives in a dedicated filter panel with support for
<strong>AND conditions</strong>, regex, semver comparison operators, and "any of" / "not any
of" matching - making it much easier to precisely target device populations
across complex version landscapes.</p>
<figure class="figure_SMyf" style="--figure-bg-color:transparent"><a href="https://docs.memfault.com/img/blog/2025-12-device-search-version-filter.png" target="_blank" class="link_rHrz"><img src="https://docs.memfault.com/img/blog/2025-12-device-search-version-filter.png" class="image_e9uR" alt="Improved software version filter in device search"></a></figure>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="general">General<a href="https://docs.memfault.com/changelog/2025/12/31#general" class="hash-link" aria-label="Direct link to General" title="Direct link to General" translate="no">​</a></h2>
<ul>
<li class="">Added <strong>issue trend sparklines</strong> on the Issue List page (14 days, 8 weeks, or
12 months), making it easy to spot growing or recovering issues at a glance.</li>
<li class="">Rebuilt the <strong>software version filter</strong> in Device Search with a dedicated
panel supporting AND conditions, regex, semver operators, and "any of" / "not
any of" matching.</li>
<li class=""><strong>Sessions can now be archived</strong> from Project Settings to hide them from the
Timeline (visible in debug mode only).</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="device-sdk-updates">Device SDK Updates<a href="https://docs.memfault.com/changelog/2025/12/31#device-sdk-updates" class="hash-link" aria-label="Direct link to Device SDK Updates" title="Direct link to Device SDK Updates" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="mcu-december-2025">MCU: [1.32.0] - 2025-12-03<a href="https://docs.memfault.com/changelog/2025/12/31#mcu-december-2025" class="hash-link" aria-label="Direct link to MCU: [1.32.0] - 2025-12-03" title="Direct link to MCU: [1.32.0] - 2025-12-03" translate="no">​</a></h3>
<p>See the full
<a href="https://github.com/memfault/memfault-firmware-sdk/blob/master/CHANGELOG.md" target="_blank" rel="noopener noreferrer" class="">MCU SDK changelog</a>.</p>
<ul>
<li class="">Added battery metrics port for Nordic nPM1300/nPM1304 PMICs, powering the
<a href="https://docs.memfault.com/docs/platform/memfault-core-metrics?platform=MCU#battery" target="_blank" rel="noopener noreferrer" class="">Battery Device Vital</a>
via the nRF Fuel Gauge API</li>
<li class="">Added a CoAP client for uploading Memfault data via nRF Cloud on nRF91x
devices - enable with <code>CONFIG_MEMFAULT_USE_NRF_CLOUD_COAP=y</code></li>
<li class="">Added <code>CONFIG_MEMFAULT_METRICS_BATTERY_SOC_PCT_SCALE_VALUE</code> for configurable
battery state-of-charge precision (default: 3 decimal places)</li>
<li class="">Fixed compiler warnings and build errors on Zephyr v4.1 and nRF Connect SDK
v3.2.0-rc1</li>
</ul>]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[November 2025]]></title>
        <id>https://docs.memfault.com/changelog/2025/11/30</id>
        <link href="https://docs.memfault.com/changelog/2025/11/30"/>
        <updated>2025-11-30T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Highlights]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="highlights">Highlights<a href="https://docs.memfault.com/changelog/2025/11/30#highlights" class="hash-link" aria-label="Direct link to Highlights" title="Direct link to Highlights" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="reboot-gaps-in-timeline">Reboot Gaps in the Device Timeline<a href="https://docs.memfault.com/changelog/2025/11/30#reboot-gaps-in-timeline" class="hash-link" aria-label="Direct link to Reboot Gaps in the Device Timeline" title="Direct link to Reboot Gaps in the Device Timeline" translate="no">​</a></h3>
<p>The device Timeline now inserts <strong>visual gaps in swimlanes at reboot
boundaries</strong>, preventing misleading data interpolation across reboots. This
makes it immediately clear when a metric or session span crossed a device
restart, giving you a more accurate picture of device behavior over time.</p>
<figure class="figure_SMyf" style="--figure-bg-color:transparent"><a href="https://docs.memfault.com/img/blog/2025-11-timeline-reboot-gaps.png" target="_blank" class="link_rHrz"><img src="https://docs.memfault.com/img/blog/2025-11-timeline-reboot-gaps.png" class="image_e9uR" alt="Visual reboot gaps in the device timeline"></a></figure>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="release-notes-markdown">Release Notes Now Support Markdown<a href="https://docs.memfault.com/changelog/2025/11/30#release-notes-markdown" class="hash-link" aria-label="Direct link to Release Notes Now Support Markdown" title="Direct link to Release Notes Now Support Markdown" translate="no">​</a></h3>
<p>The <strong>Notes field on Releases</strong> now uses a rich Markdown editor and viewer.
Teams can format release notes with headers, lists, code blocks, and links -
making it easier to communicate what changed in each build to everyone on the
team.</p>
<figure class="figure_SMyf" style="--figure-bg-color:transparent"><a href="https://docs.memfault.com/img/blog/2025-11-release-notes-markdown.png" target="_blank" class="link_rHrz"><img src="https://docs.memfault.com/img/blog/2025-11-release-notes-markdown.png" class="image_e9uR" alt="Release notes editor showing markdown being authored"></a></figure>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="general">General<a href="https://docs.memfault.com/changelog/2025/11/30#general" class="hash-link" aria-label="Direct link to General" title="Direct link to General" translate="no">​</a></h2>
<ul>
<li class="">Inserted <strong>visual reboot gaps</strong> in Timeline swimlanes, preventing data
interpolation across device restarts.</li>
<li class="">Release <strong>Notes field</strong> now uses a Markdown editor/viewer for richer release
documentation.</li>
<li class="">A <strong>fleet sampling quota exceeded banner</strong> now appears when a project's
sampling quotas are exceeded, with links to upgrade or manage quotas.</li>
<li class="">A new <strong>device type metric</strong> is now auto-generated by parsing the User Agent
string (e.g., "Google Pixel 8"), with no SDK changes required.</li>
<li class=""><strong>Nickname device search</strong> is now partial-match and case-insensitive.</li>
<li class=""><strong>Dashboard filter panel</strong> is now collapsible via a Show/Hide details button.</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="device-sdk-updates">Device SDK Updates<a href="https://docs.memfault.com/changelog/2025/11/30#device-sdk-updates" class="hash-link" aria-label="Direct link to Device SDK Updates" title="Direct link to Device SDK Updates" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="mcu-november-2025">MCU: [1.31.0] - 2025-11-22<a href="https://docs.memfault.com/changelog/2025/11/30#mcu-november-2025" class="hash-link" aria-label="Direct link to MCU: [1.31.0] - 2025-11-22" title="Direct link to MCU: [1.31.0] - 2025-11-22" translate="no">​</a></h3>
<p>See the full
<a href="https://github.com/memfault/memfault-firmware-sdk/blob/master/CHANGELOG.md" target="_blank" rel="noopener noreferrer" class="">MCU SDK changelog</a>.</p>
<ul>
<li class="">Added CPU temperature metrics for additional Zephyr platforms, including
nRF54L15-DK (any devices with a <code>die_temp</code> or <code>nordic,nrf-temp</code> device tree
node)</li>
<li class="">Fixed a compact log serialization error producing invalid log data for logs
near the maximum length limit</li>
<li class="">Updated BLE metrics to handle the <code>bt_connection_interval_us</code> rename coming in
Zephyr v4.4.0 / nRF Connect SDK v3.2.0</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="android-november-2025">Android: [v5.5.0] - 2025-11-18<a href="https://docs.memfault.com/changelog/2025/11/30#android-november-2025" class="hash-link" aria-label="Direct link to Android: [v5.5.0] - 2025-11-18" title="Direct link to Android: [v5.5.0] - 2025-11-18" translate="no">​</a></h3>
<p>See the full
<a href="https://github.com/memfault/bort/blob/master/CHANGELOG.md" target="_blank" rel="noopener noreferrer" class="">Android SDK changelog</a>.</p>
<ul>
<li class="">Added Bluetooth quality metrics: RSSI, SNR, TX power, BLE scan results, and
retransmission counts</li>
<li class="">Added rich connectivity metrics: IPv4/IPv6 status, Wi-Fi RSSI moving average,
channel hop and roaming counters, Wi-Fi OUI, and Wi-Fi disconnect sessions</li>
<li class="">Added new heartbeat metrics for batterystats states (camera, video,
flashlight, bluetooth, cellular, screen wake, and more); added USB contaminant
and low memory kill event reporting</li>
<li class="">Added configurable WTF ignore patterns to suppress known-harmless Android
system log noise</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="linux-november-2025">Linux: [1.25.0] - 2025-11-04, [1.25.1] - 2025-11-12, and [1.25.2] - 2025-11-20<a href="https://docs.memfault.com/changelog/2025/11/30#linux-november-2025" class="hash-link" aria-label="Direct link to Linux: [1.25.0] - 2025-11-04, [1.25.1] - 2025-11-12, and [1.25.2] - 2025-11-20" title="Direct link to Linux: [1.25.0] - 2025-11-04, [1.25.1] - 2025-11-12, and [1.25.2] - 2025-11-20" translate="no">​</a></h3>
<p>See the full
<a href="https://github.com/memfault/memfault-linux-sdk/blob/kirkstone/CHANGELOG.md" target="_blank" rel="noopener noreferrer" class="">Linux SDK changelog</a>.</p>
<ul>
<li class="">Added coredump path filtering to exclude crashes from specified directories</li>
<li class="">Added per-data-type storage routing to independently assign coredumps,
reboots, and other data types to tmp or persistent storage</li>
<li class="">eMMC lifetime metrics now prefer <code>sysfs</code> on newer kernels with automatic
fallback to <code>ioctl</code>; fixed multi-disk <code>bytes_written</code> tracking and eMMC ioctl
bugs</li>
</ul>]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[October 2025]]></title>
        <id>https://docs.memfault.com/changelog/2025/10/31</id>
        <link href="https://docs.memfault.com/changelog/2025/10/31"/>
        <updated>2025-10-31T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[General]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="general">General<a href="https://docs.memfault.com/changelog/2025/10/31#general" class="hash-link" aria-label="Direct link to General" title="Direct link to General" translate="no">​</a></h2>
<ul>
<li class="">Improvements to the <strong>Cohort version UI</strong> to improve performance and
reliability when the project contains large numbers of versions.</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="device-sdk-updates">Device SDK Updates<a href="https://docs.memfault.com/changelog/2025/10/31#device-sdk-updates" class="hash-link" aria-label="Direct link to Device SDK Updates" title="Direct link to Device SDK Updates" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="mcu-october-2025">MCU: [1.30.3] - 2025-10-23, [1.30.2] - 2025-10-10, and [1.30.1] - 2025-10-03<a href="https://docs.memfault.com/changelog/2025/10/31#mcu-october-2025" class="hash-link" aria-label="Direct link to MCU: [1.30.3] - 2025-10-23, [1.30.2] - 2025-10-10, and [1.30.1] - 2025-10-03" title="Direct link to MCU: [1.30.3] - 2025-10-23, [1.30.2] - 2025-10-10, and [1.30.1] - 2025-10-03" translate="no">​</a></h3>
<p>See the full
<a href="https://github.com/memfault/memfault-firmware-sdk/blob/master/CHANGELOG.md" target="_blank" rel="noopener noreferrer" class="">MCU SDK changelog</a>.</p>
<ul>
<li class="">Patch release series fixing Kconfig compliance issues for nRF-Connect SDK and
boolean Kconfig prompts</li>
<li class="">Fixed a double-fault on nRF91 devices when panic logs are generated from ISRs
with immediate logging disabled</li>
<li class="">Disabled <code>LOG_PANIC()</code> during fault handling by default on Zephyr to prevent
double-faults when using deferred logging with shell backends</li>
<li class="">Added RRAM coredump storage support for Nordic nRF54LM20 without partition
manager</li>
</ul>]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[September 2025]]></title>
        <id>https://docs.memfault.com/changelog/2025/09/30</id>
        <link href="https://docs.memfault.com/changelog/2025/09/30"/>
        <updated>2025-09-30T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Highlights]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="highlights">Highlights<a href="https://docs.memfault.com/changelog/2025/09/30#highlights" class="hash-link" aria-label="Direct link to Highlights" title="Direct link to Highlights" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="saved-issue-search-digest-emails">Saved Issue Search Digest Emails<a href="https://docs.memfault.com/changelog/2025/09/30#saved-issue-search-digest-emails" class="hash-link" aria-label="Direct link to Saved Issue Search Digest Emails" title="Direct link to Saved Issue Search Digest Emails" translate="no">​</a></h3>
<p>Building on the saved issue search feature shipped in August, you can now
subscribe to <strong>daily or weekly email digests</strong> for any saved search. Each digest
highlights new and regressed issues in your search results, ranked by fleet
impact - so your team stays informed without having to check the dashboard
manually.</p>
<figure class="figure_SMyf" style="--figure-bg-color:transparent"><a href="https://docs.memfault.com/img/blog/2025-09-saved-search-digest.png" target="_blank" class="link_rHrz"><img src="https://docs.memfault.com/img/blog/2025-09-saved-search-digest.png" class="image_e9uR" alt="Saved issue search email digest settings"></a></figure>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="custom-device-overview-embedded-dashboards">🧪 Custom Device Overview with Embedded Dashboards<a href="https://docs.memfault.com/changelog/2025/09/30#custom-device-overview-embedded-dashboards" class="hash-link" aria-label="Direct link to 🧪 Custom Device Overview with Embedded Dashboards" title="Direct link to 🧪 Custom Device Overview with Embedded Dashboards" translate="no">​</a></h3>
<p>The Device Details <strong>Overview</strong> has experimental support for embedding a
dashboard with the slug <code>device-details</code>, automatically scoped to the individual
device. This unlocks fully custom per-device views - making the device detail
page as informative and tailored as your fleet-level dashboards. Please</p>
<p><a href="https://mflt.io/contact-support" target="_blank">contact us</a> if you'd like early access.</p>
<figure class="figure_SMyf" style="--figure-bg-color:transparent"><a href="https://docs.memfault.com/img/blog/2025-09-device-details-embedded-dashboard.png" target="_blank" class="link_rHrz"><img src="https://docs.memfault.com/img/blog/2025-09-device-details-embedded-dashboard.png" class="image_e9uR" alt="Custom device overview with embedded dashboard"></a></figure>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="general">General<a href="https://docs.memfault.com/changelog/2025/09/30#general" class="hash-link" aria-label="Direct link to General" title="Direct link to General" translate="no">​</a></h2>
<ul>
<li class="">Added <strong>daily and weekly email digest</strong> subscriptions for saved issue
searches, surfacing new, regressed, and top issues by fleet impact.</li>
<li class="">Device Details Overview tab has experimental support for <strong>embedding a custom
dashboard</strong> (slug: <code>device-details</code>) scoped to a single device, enabling SQL
Cards and per-device Metric Charts.</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="device-sdk-updates">Device SDK Updates<a href="https://docs.memfault.com/changelog/2025/09/30#device-sdk-updates" class="hash-link" aria-label="Direct link to Device SDK Updates" title="Direct link to Device SDK Updates" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="mcu-september-2025">MCU: [1.30.0] - 2025-09-23 and [1.29.0] - 2025-09-11<a href="https://docs.memfault.com/changelog/2025/09/30#mcu-september-2025" class="hash-link" aria-label="Direct link to MCU: [1.30.0] - 2025-09-23 and [1.29.0] - 2025-09-11" title="Direct link to MCU: [1.30.0] - 2025-09-23 and [1.29.0] - 2025-09-11" translate="no">​</a></h3>
<p>See the full
<a href="https://github.com/memfault/memfault-firmware-sdk/blob/master/CHANGELOG.md" target="_blank" rel="noopener noreferrer" class="">MCU SDK changelog</a>.</p>
<ul>
<li class="">Added 9 new built-in BLE connection metrics for Zephyr when <code>CONFIG_BT=y</code>,
including <code>bt_connection_rssi</code>, <code>bt_connected_time_ms</code>, <code>bt_disconnect_count</code>,
and more</li>
<li class="">Added <code>MEMFAULT_METRICS_SESSION_RESET()</code> API to discard an active session
without emitting a metric report</li>
<li class="">Added RRAM and MRAM coredump storage backends for Nordic nRF54L and nRF54H
series devices</li>
<li class="">Improved <code>FileSystem_BytesFree</code> metric to auto-detect mount points from Zephyr
device tree fstab entries; fixed potential WiFi stack overflow on nRF70 during
HTTP uploads</li>
</ul>]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[August 2025]]></title>
        <id>https://docs.memfault.com/changelog/2025/08/31</id>
        <link href="https://docs.memfault.com/changelog/2025/08/31"/>
        <updated>2025-08-31T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Improved Linux Support]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="improved-linux-support">Improved Linux Support<a href="https://docs.memfault.com/changelog/2025/08/31#improved-linux-support" class="hash-link" aria-label="Direct link to Improved Linux Support" title="Direct link to Improved Linux Support" translate="no">​</a></h2>
<p>We've introduced <strong>Python crash support</strong> and <strong>custom trace capture</strong> for Linux
devices. These updates close observability gaps where Python apps mix native
code or where failures don't trigger kernel crashes. With full Python stack
traces and structured custom traces integrated directly into Memfault Issues,
you can now capture a broader range of problems, see them grouped fleet-wide,
and get the same alerts and contextual data you rely on for other issues.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="saved-issue-search-and-summaries">Saved Issue Search and Summaries<a href="https://docs.memfault.com/changelog/2025/08/31#saved-issue-search-and-summaries" class="hash-link" aria-label="Direct link to Saved Issue Search and Summaries" title="Direct link to Saved Issue Search and Summaries" translate="no">​</a></h2>
<p>Managing issues across large and fragmented fleets just got much easier. You can
now save filtered issue searches, pin your favorites to the sidebar for fast
access, and even subscribe to <strong>scheduled email summaries</strong> that notify you of
changes in the issues that matter most. This ensures your team gets
higher-signal alerts without the noise.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/Mt7Jt6fu3qw" title="Feature Highlight: Saved issue search and notifications" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"></iframe>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="general">General<a href="https://docs.memfault.com/changelog/2025/08/31#general" class="hash-link" aria-label="Direct link to General" title="Direct link to General" translate="no">​</a></h2>
<ul>
<li class="">
<p>Enhanced <strong>Software Versions</strong> page with improved filtering, search, and
version details, making it easier to find and analyze relevant software
releases and active device usage.</p>
</li>
<li class="">
<p>Added normalization option for over-time metric charts, allowing device counts
to be displayed as a percentage of active devices for easier comparison across
segments and changing fleet sizes.</p>
</li>
<li class="">
<p>You can now tag team members in issue comments, automatically notifying them
by email with a direct link to the comment.</p>
</li>
<li class="">
<p>Added support for comparison operators in software version filters
<code>(&gt;, &gt;=, &lt;, &lt;=, !=)</code>, making it easier to search, filter, and analyze device
and issue data across version ranges.</p>
</li>
<li class="">
<p>Added the ability to save, share, and manage issue searches (with options to
pin personal favorites in the sidebar) for faster access and collaboration.</p>
</li>
</ul>
<h1>MCU</h1>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1280---2025-08-04">[1.28.0] - 2025-08-04<a href="https://docs.memfault.com/changelog/2025/08/31#1280---2025-08-04" class="hash-link" aria-label="Direct link to [1.28.0] - 2025-08-04" title="Direct link to [1.28.0] - 2025-08-04" translate="no">​</a></h2>
<p>This is a minor update release.</p>
<p>Highlights:</p>
<ul>
<li class="">added a new test command for simulating hangs in ISRs</li>
<li class="">improved NMI exception capture</li>
<li class="">fixed a build issue in the nRF-Connect SDK port</li>
</ul>
<h1>📈 Added</h1>
<ul>
<li class="">Zephyr:<!-- -->
<ul>
<li class="">Add a new test command, <code>mflt test isr_hang</code>, which will cause a busy loop
hang inside a <code>k_timer</code>, which normally is executing from an ISR context.
The system will only exit this condition if there is a watchdog or other
higher-priority interrupt capable of preempting the <code>k_timer</code> ISR. The
<a href="https://github.com/memfault/memfault-firmware-sdk/blob/master/examples/zephyr/qemu" target="_blank" rel="noopener noreferrer" class=""><code>qemu</code> sample app</a>
is updated to enable a watchdog which generates an NMI exception, caught by
Memfault.</li>
<li class="">Added a debug print when uploading data using
<code>CONFIG_MEMFAULT_HTTP_PERIODIC_UPLOAD</code> that shows the bytes sent:<!-- -->
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:#282c34;--prism-color:#ffffff"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="background-color:#282c34;color:#ffffff"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#ffffff"><span class="token plain">[00:09:45.821,000] &lt;dbg&gt; mflt: memfault_platform_log: Uploaded 118 bytes of Memfault data</span><br></span></code></pre></div></div>
<!-- -->Only enabled when debug level prints are enabled for Memfault
(<code>CONFIG_MEMFAULT_LOG_LEVEL_DBG=y</code>).</li>
</ul>
</li>
</ul>
<h1>🛠️ Changed</h1>
<ul>
<li class="">
<p>Zephyr:</p>
<ul>
<li class="">
<p>NMI exceptions are now properly handled. Prior to this change, a coredump
was captured on NMI exceptions but the MSP context was not fully unwound and
the NVIC state was not included in the trace data.</p>
</li>
<li class="">
<p>Add a new Kconfig option,
<code>CONFIG_MEMFAULT_COREDUMP_NVIC_INTERRUPTS_TO_COLLECT</code>, which controls the
existing <code>memfault_platform_config.h</code> setting
<code>MEMFAULT_NVIC_INTERRUPTS_TO_COLLECT</code> for Cortex-M targets. The default now
is to collect all <code>NUM_IRQS</code> as defined by Zephyr, which on many platforms
will increase from the previous default of <code>32</code>. This improves the
out-of-the-box information at the cost of 44 bytes in coredump storage
consumed per additional 32 interrupts. Some example deltas shown below,
including the byte delta in the stored coredump:</p>
<table><thead><tr><th>Platform</th><th>Previous Default</th><th>New Default</th><th>Byte Delta</th></tr></thead><tbody><tr><td>nRF52840</td><td>32</td><td>64 (*48, rounded up to nearest multiple of 32)</td><td>+44</td></tr><tr><td>nRF91</td><td>32</td><td>96 (*65 rounded up)</td><td>+88</td></tr><tr><td>nRF53</td><td>32</td><td>96 (*69 rounded up)</td><td>+88</td></tr><tr><td>STM32F407</td><td>32</td><td>96 (*82 rounded up)</td><td>+88</td></tr><tr><td>STM32H7B0</td><td>32</td><td>160 (*155 rounded up)</td><td>+176</td></tr><tr><td>STM32H563</td><td>32</td><td>160 (*155 rounded up)</td><td>+176</td></tr></tbody></table>
<p>To restore the previous default, set
<code>CONFIG_MEMFAULT_COREDUMP_NVIC_INTERRUPTS_TO_COLLECT=32</code>.</p>
</li>
</ul>
</li>
<li class="">
<p>nRF-Connect SDK:</p>
<ul>
<li class="">Fix a build issue impacting some nRF54 series chips related to reboot reason
decoding. Thanks to <a href="https://github.com/grochu" target="_blank" rel="noopener noreferrer" class="">@grochu</a> for providing the
fix in <a href="https://github.com/memfault/memfault-firmware-sdk/pull/94" target="_blank" rel="noopener noreferrer" class="">#94</a> 🎉!</li>
</ul>
</li>
</ul>
<h1>Android</h1>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="v542---august-4-2025">v5.4.2 - August 4, 2025<a href="https://docs.memfault.com/changelog/2025/08/31#v542---august-4-2025" class="hash-link" aria-label="Direct link to v5.4.2 - August 4, 2025" title="Direct link to v5.4.2 - August 4, 2025" translate="no">​</a></h2>
<h1>🚧<!-- --> Fixes</h1>
<ul>
<li class="">Fixed a bug where bugreports would not always be cleaned up due to incorrect
file permissions in the Bort app.</li>
</ul>
<h1>📈<!-- --> Improvements</h1>
<ul>
<li class="">Refactored the device config handlers into clearer interfaces and
implementations.</li>
<li class="">Added several more bugreport reply broadcasts (OK_REQUESTED, OK_GENERATING,
OK_GENERATED, ERROR_GENERATED_TIMEOUT).</li>
<li class="">Added optional constraints on bugreport requests through a multibind
interface.</li>
</ul>
<h1>Linux</h1>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1240---2025-08-18">[1.24.0] - 2025-08-18<a href="https://docs.memfault.com/changelog/2025/08/31#1240---2025-08-18" class="hash-link" aria-label="Direct link to [1.24.0] - 2025-08-18" title="Direct link to [1.24.0] - 2025-08-18" translate="no">​</a></h2>
<p>This release adds an example recipe for a <code>systemd</code> service that depends on
<code>memfaultd</code>. Additionally it changes the query frequency of eMMC lifetime
metrics.</p>
<h1>Added</h1>
<ul>
<li class="">Added an example service that depends on <code>memfaultd</code>. This is useful for when
you want to run some code after <code>memfaultd</code> has finished starting.</li>
</ul>
<h1>Changed</h1>
<ul>
<li class="">Changed the read interval for eMMC lifetime values to only happen once an hour
regardless of configuration. The lifetime values will change very
infrequently. Reading them at a lower frequency can help lower CPU utilization
and reduce eMMC controller wakeups without sacrificing any resolution. This
can improve battery life for battery powered devices.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1230---2025-08-11">[1.23.0] - 2025-08-11<a href="https://docs.memfault.com/changelog/2025/08/31#1230---2025-08-11" class="hash-link" aria-label="Direct link to [1.23.0] - 2025-08-11" title="Direct link to [1.23.0] - 2025-08-11" translate="no">​</a></h2>
<p>This release adds support for Python based stacktraces, as well as a few minor
changes. Additionally we've made some changes to flash lifetime metrics, and how
they're collected.</p>
<h1>Added</h1>
<ul>
<li class="">Add generic custom trace support<!-- -->
<ul>
<li class="">This allows you to send text based backtraces to memfaultd.</li>
<li class="">They can be sent via the <code>memfaultctl save-trace</code> command</li>
<li class="">They can also be sent via <code>/v1/trace/save</code> local endpoint</li>
</ul>
</li>
<li class="">Added Python stack trace support<!-- -->
<ul>
<li class="">Python stack traces utilize the above custom backtrace support</li>
<li class="">By integrating <a href="https://pypi.org/project/pyfault/" target="_blank" rel="noopener noreferrer" class="">pyfault</a> you can send
backtraces directly from a crashing python process.</li>
</ul>
</li>
<li class="">Add new virtual memory metrics from <code>/proc/vmstat</code>. These are represented as
the following keys:<!-- -->
<ul>
<li class=""><code>memory/vm/swaps_in_per_second</code></li>
<li class=""><code>memory/vm/swaps_out_per_second</code></li>
<li class=""><code>memory/vm/pages_in_per_second</code></li>
<li class=""><code>memory/vm/pages_out_per_second</code></li>
</ul>
</li>
<li class="">Added OUI (Organizationally Unique Identifier) collection for network device
identification and troubleshooting</li>
</ul>
<h1>Changed</h1>
<ul>
<li class="">Changed flash lifetime metrics to use <code>pct_remaining</code> format instead of
previous representation, providing clearer visibility into remaining device
lifespan</li>
</ul>
<h1>Fixed</h1>
<ul>
<li class="">Fixed MMC lifetime reading where <code>memfaultd</code> would attempt to read lifetime
values from older MMC devices that don't support this feature</li>
<li class="">Fixed handling of invalid individual lifetime values - they no longer cause
the entire lifetime collection to fail</li>
<li class="">Fixed overly verbose device info logging that was cluttering log output</li>
<li class="">Fixed build configuration for macOS by removing
<code>--compress-debug-sections=zlib</code> from cargo config that was causing
compilation issues</li>
<li class="">Fixed unit test reliability by properly mocking <code>boottime_ms</code> values</li>
</ul>]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[July 2025]]></title>
        <id>https://docs.memfault.com/changelog/2025/07/31</id>
        <link href="https://docs.memfault.com/changelog/2025/07/31"/>
        <updated>2025-07-31T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[A Summary of Fleet Health Delivered to your Inbox]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="a-summary-of-fleet-health-delivered-to-your-inbox">A Summary of Fleet Health Delivered to your Inbox<a href="https://docs.memfault.com/changelog/2025/07/31#a-summary-of-fleet-health-delivered-to-your-inbox" class="hash-link" aria-label="Direct link to A Summary of Fleet Health Delivered to your Inbox" title="Direct link to A Summary of Fleet Health Delivered to your Inbox" translate="no">​</a></h2>
<p>We have introduced a weekly summary email, sent to all users on an account, that
gives you visibility into the growth and health of your fleet, and your teams
usage of Memfault. This summary will keep you up-to-date without having to
navigate through multiple dashboards or between multiple projects.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/hJq6BjvCqw0" title="A Summary of Fleet Health Delivered to your Inbox" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"></iframe>
<p>The Fleet Health Summary includes key information on changes week over week,
including active devices, top software versions, most popular dashboards and,
critically, Device Vitals. The summary covers your top three projects (by device
count) and each project will be listed separately in the summary email.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="quickly-identify-a-list-of-devices-impacted-by-issues">Quickly Identify a List of Devices Impacted by Issues<a href="https://docs.memfault.com/changelog/2025/07/31#quickly-identify-a-list-of-devices-impacted-by-issues" class="hash-link" aria-label="Direct link to Quickly Identify a List of Devices Impacted by Issues" title="Direct link to Quickly Identify a List of Devices Impacted by Issues" translate="no">​</a></h2>
<p>We have added a new filter to
<a href="https://docs.memfault.com/docs/platform/device-inventory#device-search" target="_blank" rel="noopener noreferrer" class="">Device Search</a>
-'Impacted by Issues' - that lets users quickly identify a list of devices
impacted by any Issue, a specific Issue or a set of Issues. The filter also
includes the option to further refine your list by the number of traces of the
Issue(s) per device.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/sJBsxBfSp2k" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"></iframe>
<p>This filter adds another powerful tool for helping users gauge impact of issues
across the fleet and quickly identify and investigate devices that have been
impacted.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="general">General<a href="https://docs.memfault.com/changelog/2025/07/31#general" class="hash-link" aria-label="Direct link to General" title="Direct link to General" translate="no">​</a></h2>
<ul>
<li class="">
<p>Introduced a new "Impacted by Issues" device search filter, allowing users to
identify devices based on their issue impact status and view trace counts,
with customizable filtering options for enhanced device management.</p>
</li>
<li class="">
<p>Customers can now receive a "Weekly Summary" email highlighting key
organizational events, such as new active devices and popular dashboards, with
customizable content options.</p>
</li>
<li class="">
<p>Introduced a new Quotas system and interface, simplifying device entitlement
management with new visibility levels and plans, enhancing understanding of
resource usage through project and organization-level overview pages.</p>
</li>
<li class="">
<p>Linux trace signatures now include the running process name. This may result
in a temporary increase in new issue counts for existing projects.</p>
</li>
<li class="">
<p>You can now update issue filters directly on an issue chart card without
leaving the page or recreating the chart.</p>
</li>
<li class="">
<p>Released a new date picker dropdown with more human-readable relative date
formats for easier date selection.</p>
</li>
<li class="">
<p>Added a <strong>"Find Impacted Device"</strong> button on the issues list page to quickly
navigate to the device list with the impacted issues filter pre-applied.</p>
</li>
<li class="">
<p>Added the ability to create, edit, and delete tiles on the Device Detail Page,
including new Markdown and Device Attribute tiles, plus configurable
thresholds for Device Vital tiles with visual status indicators.</p>
</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="mcu">MCU<a href="https://docs.memfault.com/changelog/2025/07/31#mcu" class="hash-link" aria-label="Direct link to MCU" title="Direct link to MCU" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1261---2025-06-30">[1.26.1] - 2025-06-30<a href="https://docs.memfault.com/changelog/2025/07/31#1261---2025-06-30" class="hash-link" aria-label="Direct link to [1.26.1] - 2025-06-30" title="Direct link to [1.26.1] - 2025-06-30" translate="no">​</a></h2>
<p>This is a minor fix release, addressing one future compatibility issue with the
Zephyr port.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="️-changed-2">🛠️ Changed<a href="https://docs.memfault.com/changelog/2025/07/31#%EF%B8%8F-changed-2" class="hash-link" aria-label="Direct link to 🛠️ Changed" title="Direct link to 🛠️ Changed" translate="no">​</a></h3>
<ul>
<li class="">Zephyr:<!-- -->
<ul>
<li class="">Apply a compatibility fix for upcoming Zephyr 4.2.0, fixing the size of the
<code>net_mgmt</code> callback <code>mgmt_event</code> parameter. Thanks to @rlubos for providing
the fix in <a href="https://github.com/memfault/memfault-firmware-sdk/pull/91" target="_blank" rel="noopener noreferrer" class="">#91</a>
🎉!</li>
</ul>
</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1260---2025-06-26">[1.26.0] - 2025-06-26<a href="https://docs.memfault.com/changelog/2025/07/31#1260---2025-06-26" class="hash-link" aria-label="Direct link to [1.26.0] - 2025-06-26" title="Direct link to [1.26.0] - 2025-06-26" translate="no">​</a></h2>
<p>This is a feature release, primarily addressing future compatibility changes for
the next nRF-Connect SDK release.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-added-1">📈 Added<a href="https://docs.memfault.com/changelog/2025/07/31#-added-1" class="hash-link" aria-label="Direct link to 📈 Added" title="Direct link to 📈 Added" translate="no">​</a></h3>
<ul>
<li class="">Zephyr:<!-- -->
<ul>
<li class="">Add support for the ESP32 chip on Zephyr, adding to the existing support for
ESP32-S3 and ESP32 C series chips.</li>
<li class="">Add support for building the Memfault SDK on the <code>native_sim</code> board. Note
that Memfault does not support reboot tracking or coredumps on this target,
but other features are supported.</li>
</ul>
</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="️-changed-4">🛠️ Changed<a href="https://docs.memfault.com/changelog/2025/07/31#%EF%B8%8F-changed-4" class="hash-link" aria-label="Direct link to 🛠️ Changed" title="Direct link to 🛠️ Changed" translate="no">​</a></h3>
<ul>
<li class="">General:<!-- -->
<ul>
<li class="">Add a <code>MEMFAULT_ENABLE_WARNING(warning)</code> macro complementing the existing
<code>MEMFAULT_DISABLE_WARNING(warning)</code> macro. This macro is only implemented
for GCC + Clang.</li>
</ul>
</li>
<li class="">Zephyr:<!-- -->
<ul>
<li class="">Remove the External Module logic, used to support multiple Zephyr versions,
and instead use the normal Zephyr module Kconfig path specifier. There
should be no user-facing changes from this change. It addresses an issue
with Kconfig symbol linting.</li>
<li class="">In the
<a href="https://github.com/memfault/memfault-firmware-sdk/blob/master/examples/zephyr/qemu/qemu-app/prj.conf" target="_blank" rel="noopener noreferrer" class="">Zephyr QEMU sample app</a>,
add the <code>--param=min-pagesize=0x1000</code> compiler option, which will catch
dereferences to low memory addresses. This is only for static analysis
purposes and does not affect any behavior.</li>
</ul>
</li>
<li class="">ESP-IDF:<!-- -->
<ul>
<li class="">The heartbeat metrics timer is now enabled by default when
<code>CONFIG_MEMFAULT_DEEP_SLEEP_SUPPORT=y</code>. Version <code>1.25.0</code>, which added deep
sleep support, had disabled the normal heartbeat metrics timer by default.
The default behavior can be overridden with the Kconfig option
<code>CONFIG_MEMFAULT_METRICS_HEARTBEAT_TIMER_ENABLE</code>.</li>
</ul>
</li>
<li class="">nRF-Connect SDK:<!-- -->
<ul>
<li class="">Replace use of <code>LTE_LC_ON_CFUN</code> with <code>NRF_MODEM_LIB_ON_CFUN</code> for nRF-Connect
SDK v2.8.0+. This deprecated API is scheduled to be removed in the next
nRF-Connect SDK release.</li>
</ul>
</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1250---2025-06-09">[1.25.0] - 2025-06-09<a href="https://docs.memfault.com/changelog/2025/07/31#1250---2025-06-09" class="hash-link" aria-label="Direct link to [1.25.0] - 2025-06-09" title="Direct link to [1.25.0] - 2025-06-09" translate="no">​</a></h2>
<p>This is a feature release of the Memfault Firmware SDK. The main new feature
released in this version is support for tracking metrics through deep sleep on
ESP32 devices. Full release notes are below.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-added-2">📈 Added<a href="https://docs.memfault.com/changelog/2025/07/31#-added-2" class="hash-link" aria-label="Direct link to 📈 Added" title="Direct link to 📈 Added" translate="no">​</a></h3>
<ul>
<li class="">
<p>Zephyr:</p>
<ul>
<li class="">
<p>Add a new choice config <code>CONFIG_MEMFAULT_REBOOT_REASON_GET</code>. By default,
<code>CONFIG_MEMFAULT_REBOOT_REASON_GET_HWINFO=y</code>, which is supported by
<code>imply CONFIG_HWINFO</code> in the overarching <code>MEMFAULT</code> symbol. This default
enables better reboot reasons out-of-the-box via Zephyr's <code>hwinfo</code> module.
The fall-back option is <code>CONFIG_MEMFAULT_REBOOT_REASON_GET_BASIC</code>, which
provides a simple implementation. As before, users can override the default
implementations with <code>CONFIG_MEMFAULT_REBOOT_REASON_GET_CUSTOM=y</code>.</p>
</li>
<li class="">
<p>Add a new Kconfig setting, <code>CONFIG_MEMFAULT_ENABLE_REBOOT_DIAG_DUMP</code>, to
print the reboot reason code on system boot, for debugging purposes. This
feature is enabled by default. It can be disabled with
<code>CONFIG_MEMFAULT_ENABLE_REBOOT_DIAG_DUMP=n</code>.</p>
</li>
<li class="">
<p>Add a <code>boot_time_ms</code> metric, which tracks how long the system takes to boot
the application. Can be disabled with <code>CONFIG_MEMFAULT_METRICS_BOOT_TIME=n</code>.</p>
</li>
<li class="">
<p>Add new builtin Wi-Fi metrics, enabled by default when <code>CONFIG_WIFI=y</code>, and
can be disabled with <code>CONFIG_MEMFAULT_METRICS_WIFI=n</code>:</p>
<ul>
<li class=""><code>wifi_beacon_interval</code></li>
<li class=""><code>wifi_dtim_interval</code></li>
<li class=""><code>wifi_frequency_band</code></li>
<li class=""><code>wifi_primary_channel</code></li>
<li class=""><code>wifi_security_type</code></li>
<li class=""><code>wifi_sta_rssi</code></li>
<li class=""><code>wifi_standard_version</code></li>
<li class=""><code>wifi_twt_capable</code></li>
<li class=""><code>wifi_tx_rate_mbps</code> (Zephyr 4.1.0+ only)</li>
</ul>
<p>These add on top of the existing Zephyr Wi-Fi metrics:</p>
<ul>
<li class=""><code>wifi_ap_oui</code></li>
<li class=""><code>wifi_connected_time_ms</code></li>
<li class=""><code>wifi_disconnect_count</code></li>
</ul>
</li>
<li class="">
<p>Add an option to upload logs by default when using
<code>MEMFAULT_HTTP_PERIODIC_UPLOAD</code>, controlled with the Kconfig symbol
<code>MEMFAULT_HTTP_PERIODIC_UPLOAD_LOGS</code>. This can also be controlled at runtime
with the included API
<code>memfault_zephyr_port_http_periodic_upload_logs(bool enable)</code></p>
</li>
<li class="">
<p>Add a new Kconfig option, <code>CONFIG_MEMFAULT_PLATFORM_TIME_SINCE_BOOT_CUSTOM</code>,
to provide a custom implementation of
<code>memfault_platform_get_time_since_boot_ms()</code> in your application. The
default is an implementation using <code>k_uptime_get()</code>.</p>
</li>
</ul>
</li>
<li class="">
<p>ESP-IDF:</p>
<ul>
<li class="">
<p>Add a <code>boot_time_ms</code> metric, which tracks how long the system takes to boot
the application. Can be disabled with <code>CONFIG_MEMFAULT_METRICS_BOOT_TIME=n</code>.</p>
</li>
<li class="">
<p>Add support for tracking metrics across ESP32 deep sleep cycles, enabled
with the Kconfig <code>CONFIG_MEMFAULT_DEEP_SLEEP_SUPPORT=y</code>. To utilize this
feature, these functions must be called by the application:</p>
<ul>
<li class=""><code>memfault_platform_deep_sleep_save_state()</code> Must be called just prior to
entering deep sleep (<code>esp_deep_sleep_start()</code>)</li>
<li class=""><code>memfault_platform_deep_sleep_restore_state()</code> Must be called before
<code>memfault_platform_boot()</code> in the application startup sequence.</li>
</ul>
<p>This feature includes built-in metrics for tracking deep sleep:</p>
<ul>
<li class=""><code>deep_sleep_time_ms</code> - time spent in deep sleep</li>
<li class=""><code>active_time_ms</code> - time spent out of deep sleep</li>
<li class=""><code>deep_sleep_wakeup_count</code> - number of times the device woke up from deep
sleep</li>
</ul>
<p>There are several Kconfig options for controlling the deep sleep feature,
including controlling the heartbeat trigger and HTTP periodic upload. See
<code>menuconfig</code> "Memfault deep sleep support" or
<a href="https://github.com/memfault/memfault-firmware-sdk/blob/master/ports/esp_idf/memfault/Kconfig" target="_blank" rel="noopener noreferrer" class=""><code>ports/esp_idf/memfault/Kconfig</code></a>
for details.</p>
</li>
<li class="">
<p>Add new metrics tracking flash usage:</p>
<ul>
<li class=""><code>flash_spi_erase_bytes</code></li>
<li class=""><code>flash_spi_write_bytes</code></li>
<li class=""><code>flash_spi_total_size_bytes</code></li>
</ul>
</li>
<li class="">
<p>Add capture of the ESP-IDF Task Watchdog stuck task list in coredumps. This
is enabled by default if ESP-IDF Task Watchdog is enabled, and can be
disabled with the Kconfig
<code>CONFIG_MEMFAULT_COREDUMP_CAPTURE_TASK_WATCHDOG=n</code>.</p>
</li>
</ul>
</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="️-changed-5">🛠️ Changed<a href="https://docs.memfault.com/changelog/2025/07/31#%EF%B8%8F-changed-5" class="hash-link" aria-label="Direct link to 🛠️ Changed" title="Direct link to 🛠️ Changed" translate="no">​</a></h3>
<ul>
<li class="">nRF Connect SDK:<!-- -->
<ul>
<li class=""><code>CONFIG_MEMFAULT_REBOOT_REASON_GET_CUSTOM</code> is now a choice in the new choice
config <code>CONFIG_MEMFAULT_REBOOT_REASON_GET</code>. As a result, it will be the
default choice if <code>CONFIG_MEMFAULT_NRF_CONNECT_SDK=y</code> instead of being
<code>imply</code>-ed by <code>CONFIG_MEMFAULT_NRF_CONNECT_SDK</code> to work around the
restriction that choice configs cannot be selected. As before, users can
override this behavior with <code>CONFIG_MEMFAULT_REBOOT_REASON_GET_CUSTOM=n</code>.</li>
</ul>
</li>
<li class="">ESP-IDF:<!-- -->
<ul>
<li class="">Rename <code>CONFIG_MEMFAULT_TIME_SINCE_BOOT_CUSTOM</code> -&gt;
<code>CONFIG_MEMFAULT_PLATFORM_TIME_SINCE_BOOT_CUSTOM</code>. A new ESP-IDF port choice
Kconfig <code>CONFIG_MEMFAULT_PLATFORM_TIME_SINCE_BOOT</code> now supports 3 settings
for platform time since boot:<!-- -->
<ol>
<li class=""><code>MEMFAULT_PLATFORM_TIME_SINCE_BOOT_ESP_TIMER</code> default, suitable for most
applications</li>
<li class=""><code>MEMFAULT_PLATFORM_TIME_SINCE_BOOT_DEEP_SLEEP</code> applicable for deep-sleep
applications</li>
<li class=""><code>MEMFAULT_PLATFORM_TIME_SINCE_BOOT_CUSTOM</code> disable builtin
implementations and implement a custom
<code>memfault_platform_get_time_since_boot_ms()</code></li>
</ol>
</li>
<li class="">Renamed the <code>spi_flash_chip_id</code> metric (added in <code>1.23.0</code>) to
<code>flash_spi_manufacturer_id</code>.</li>
<li class="">Renamed the <code>wifi_auth_mode</code> metric to <code>wifi_security_type</code> to more
accurately indicate the property being measured.</li>
</ul>
</li>
<li class="">General:<!-- -->
<ul>
<li class="">Add the <code>demo</code> component to the default set of components added to an
Eclipse project when using the
<a href="https://github.com/memfault/memfault-firmware-sdk/blob/master/scripts/eclipse_patch.py" target="_blank" rel="noopener noreferrer" class=""><code>eclipse_patch.py</code></a>
utility. The default components can be overridden with the <code>--components</code>
argument.</li>
<li class="">Coredumps no longer include the device serial by default. The uploading
serial (passed to the chunks endpoint) is instead used to identify the
device associated with the coredump. Enabling
<code>#define MEMFAULT_EVENT_INCLUDE_DEVICE_SERIAL 1</code> in
<code>memfault_platform_config.h</code> will include the device serial in coredumps.</li>
</ul>
</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-fixed-2">🐛 Fixed<a href="https://docs.memfault.com/changelog/2025/07/31#-fixed-2" class="hash-link" aria-label="Direct link to 🐛 Fixed" title="Direct link to 🐛 Fixed" translate="no">​</a></h3>
<ul>
<li class="">ESP-IDF:<!-- -->
<ul>
<li class="">Remove debug logging from <code>memfault_platform_time_get_current()</code>. When log
timestamps are enabled, and debug level logs are enabled,</li>
</ul>
</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1240---2025-05-06">[1.24.0] - 2025-05-06<a href="https://docs.memfault.com/changelog/2025/07/31#1240---2025-05-06" class="hash-link" aria-label="Direct link to [1.24.0] - 2025-05-06" title="Direct link to [1.24.0] - 2025-05-06" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-added">📈 Added<a href="https://docs.memfault.com/changelog/2025/07/31#-added" class="hash-link" aria-label="Direct link to 📈 Added" title="Direct link to 📈 Added" translate="no">​</a></h3>
<ul>
<li class="">General:<!-- -->
<ul>
<li class="">Add a new API, <code>memfault_log_get_unsent_count()</code>, which returns the log
count and size in bytes of unsent logs in the log buffer. This can be used
inside <code>memfault_log_handle_saved_callback()</code> for example to drain the
packetized logs when a certain watermark is reached.</li>
</ul>
</li>
<li class="">ESP-IDF:<!-- -->
<ul>
<li class="">Add a Kconfig option, <code>CONFIG_MEMFAULT_TIME_SINCE_BOOT_CUSTOM</code>, which when
set <code>=n</code>, enables using a custom implementation of
<code>memfault_platform_get_time_since_boot_ms()</code>.</li>
<li class="">Add 2 new metrics for tracking raw network bytes rx / tx. These metrics
track network IO traffic on the default netif:<!-- -->
<ul>
<li class=""><code>network_rx_bytes</code></li>
<li class=""><code>network_tx_bytes</code> These metrics are enabled by default, and can be
disabled with <code>CONFIG_MEMFAULT_METRICS_NETWORK_IO=n</code></li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="️-changed">🛠️ Changed<a href="https://docs.memfault.com/changelog/2025/07/31#%EF%B8%8F-changed" class="hash-link" aria-label="Direct link to 🛠️ Changed" title="Direct link to 🛠️ Changed" translate="no">​</a></h3>
<ul>
<li class="">FreeRTOS (including ESP-IDF):<!-- -->
<ul>
<li class="">Rename the thread stack usage measurement variable included in coredumps
when <code>MEMFAULT_COREDUMP_COMPUTE_THREAD_STACK_USAGE</code> is enabled from
<code>high_watermark</code> to <code>stack_unused</code>. This change is to make the
implementation more readable. The Memfault backend is updated to process
both the old and new formats.</li>
<li class="">FreeRTOS-detected stack overflows (via <code>vApplicationStackOverflowHook</code>) will
now be correctly tagged as <code>Stack Overflow</code> for the trace reason in
Memfault, instead of <code>Assert</code>.</li>
</ul>
</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-fixed">🐛 Fixed<a href="https://docs.memfault.com/changelog/2025/07/31#-fixed" class="hash-link" aria-label="Direct link to 🐛 Fixed" title="Direct link to 🐛 Fixed" translate="no">​</a></h3>
<ul>
<li class="">Zephyr:<!-- -->
<ul>
<li class="">Fix a null dereference when calling
<code>memfault_coredump_storage_compute_size_required()</code> (eg the shell command
<code>mflt coredump_size</code>).</li>
</ul>
</li>
<li class="">General:<!-- -->
<ul>
<li class="">For the emlib WDOG port implementation,
<a href="https://www.notion.so/memfault/ports/emlib/wdog_software_watchdog.c" target="_blank" rel="noopener noreferrer" class=""><code>ports/emlib/wdog_software_watchdog.c</code></a>,
enable the WDOG when in EM1 mode for series2 chips.</li>
<li class="">Added support for <code>MEMFAULT_REBOOT_REASON_CLEAR</code> in the
<a href="https://www.notion.so/memfault/ports/nrf5_sdk/resetreas_reboot_tracking.c" target="_blank" rel="noopener noreferrer" class=""><code>ports/nrf5_sdk/resetreas_reboot_tracking.c</code></a>
implementation, by default enabled (like other ports). This permits opting
out of the auto-clearing of the <code>NRF_POWER-&gt;RESETREAS</code> register, in case the
user needs it after the function runs.</li>
</ul>
</li>
<li class="">FreeRTOS (including ESP-IDF):<!-- -->
<ul>
<li class="">Fix incorrect computation of per-thread stack usage metrics
(<code>MEMFAULT_FREERTOS_COLLECT_THREAD_METRICS</code>). Before this fix, the returned
values had 2 errors:<!-- -->
<ol>
<li class="">the value is the <em>unused</em> stack space, not the used stack space</li>
<li class="">on platforms where <code>sizeof(StackType_t)</code> is not 1 byte, the numerator
when computing percentage is incorrectly scaled down by
<code>sizeof(StackType_t)</code>, resulting in significant under-reporting of the
stack usage percentage. Users can apply device and software version
filtering on dashboards to filter out reports from devices that are
running an old version of the SDK.</li>
</ol>
</li>
</ul>
</li>
<li class="">ESP-IDF:<!-- -->
<ul>
<li class="">Fix a potential issue that would cause the wrong implementation of
<code>memfault_platform_time_get_current()</code> to be included in the final link,
when <code>CONFIG_MEMFAULT_SYSTEM_TIME=y</code> is enabled (default).</li>
</ul>
</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="️-changed-1">🛠️ Changed<a href="https://docs.memfault.com/changelog/2025/07/31#%EF%B8%8F-changed-1" class="hash-link" aria-label="Direct link to 🛠️ Changed" title="Direct link to 🛠️ Changed" translate="no">​</a></h3>
<ul>
<li class="">ESP-IDF:<!-- -->
<ul>
<li class=""><code>CONFIG_MEMFAULT_ENABLE_REBOOT_DIAG_DUMP</code> now defaults to <code>y</code> instead of
<code>n</code>, to print out the reboot reason on boot. Disable it with
<code>CONFIG_MEMFAULT_ENABLE_REBOOT_DIAG_DUMP=n</code>.</li>
</ul>
</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="android">Android<a href="https://docs.memfault.com/changelog/2025/07/31#android" class="hash-link" aria-label="Direct link to Android" title="Direct link to Android" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="v541---july-22-2025">v5.4.1 - July 22, 2025<a href="https://docs.memfault.com/changelog/2025/07/31#v541---july-22-2025" class="hash-link" aria-label="Direct link to v5.4.1 - July 22, 2025" title="Direct link to v5.4.1 - July 22, 2025" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="rocket-new-features">🚀<!-- --> New Features<a href="https://docs.memfault.com/changelog/2025/07/31#rocket-new-features" class="hash-link" aria-label="Direct link to rocket-new-features" title="Direct link to rocket-new-features" translate="no">​</a></h3>
<ul>
<li class="">Added new SDK Setting to upload collected Android Bugreports immediately
outside of the periodic MAR batch task. Added new <code>trace_id</code> and <code>extra_info</code>
fields to <code>BugReportRequest</code>s.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="construction-fixes">🚧<!-- --> Fixes<a href="https://docs.memfault.com/changelog/2025/07/31#construction-fixes" class="hash-link" aria-label="Direct link to construction-fixes" title="Direct link to construction-fixes" translate="no">​</a></h3>
<ul>
<li class="">Fixed reporting of the new Wi-Fi metrics to visualize on the device timeline
more appropriately. Fixed an error when recording null per second metrics.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="chart_with_upwards_trend-improvements">📈<!-- --> Improvements<a href="https://docs.memfault.com/changelog/2025/07/31#chart_with_upwards_trend-improvements" class="hash-link" aria-label="Direct link to chart_with_upwards_trend-improvements" title="Direct link to chart_with_upwards_trend-improvements" translate="no">​</a></h3>
<ul>
<li class="">Added some bort_cli.py comments.</li>
<li class="">Deleted unused code in Logger.kt.</li>
<li class="">Refactored Bugreport Intent logic.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="v540---july-1-2025">v5.4.0 - July 1, 2025<a href="https://docs.memfault.com/changelog/2025/07/31#v540---july-1-2025" class="hash-link" aria-label="Direct link to v5.4.0 - July 1, 2025" title="Direct link to v5.4.0 - July 1, 2025" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="rocket-new-features-1">🚀<!-- --> New Features<a href="https://docs.memfault.com/changelog/2025/07/31#rocket-new-features-1" class="hash-link" aria-label="Direct link to rocket-new-features-1" title="Direct link to rocket-new-features-1" translate="no">​</a></h3>
<ul>
<li class="">Added 3 more logs-to-metrics parser types.</li>
<li class=""><code>sum_matching</code> captures 1 integer, and sums all captured values in the
heartbeat.</li>
<li class=""><code>distribution_minmeanmax</code> captures 1 double, and generates a min/mean/max
distribution for all captured values in the heartbeat.</li>
<li class=""><code>string_property</code> captures 1 string, and reports the latest value for that
string.</li>
<li class="">Added tracking of the metered, temporarily unmetered, and roaming network
capabilities in HRT.</li>
<li class="">Added a <code>connectivity.metered.latest</code> heartbeat metric for tracking metered
network usage.</li>
<li class="">Added new disk wear and disk write Device Vital heartbeat metrics. eMMC/UFS
lifetime estimation and version stats are collected from the Health HAL
implementation, falling back to a hardcoded UFS or eMMC filepath if not
implemented. Bytes written each heartbeat is collected by reading the sectors
written value from <code>/proc/diskstats</code> for matching physical devices in
<code>/sys/block</code> multiplied by the sector size to get a value in bytes.</li>
<li class=""><code>disk_wear.&lt;source&gt;.lifetime_remaining_pct.latest</code> captures the lifetime
remaining estimation for type A flash in increments of 10%. The source can be
one of: "mmc0", "624000.ufshc", or "HealthHAL".</li>
<li class=""><code>disk_wear.&lt;source&gt;.lifetime_b_remaining_pct.latest</code> captures the lifetime
remaining estimation for type B flash in increments of 10%. The source can be
one of: "mmc0", "624000.ufshc", or "HealthHAL".</li>
<li class=""><code>disk_wear.pre_eol.latest</code> captures the pre-EOL status of consumed reserved
blocks, as "Normal", "Warning", or "Urgent".</li>
<li class=""><code>disk_wear.version.latest</code> captures the version as described from the vendor
implementation of the Health HAL.</li>
<li class=""><code>disk_wear.vdc.bytes_written</code> captures the bytes written for that heartbeat.</li>
<li class="">Added per-app CPU usage metrics. The CPU usage percentage for each heartbeat
is collected by parsing <code>/proc/&lt;pid&gt;/stat/</code> for system and user time
(<code>stime</code> + <code>utime</code>) divided by the total usage (sum of all fields from
<code>/proc/stat</code>).</li>
<li class="">By default, the SDK will only create heartbeat metrics for a defined set of
"interesting" processes. Please reach out to customer support to configure
this set.</li>
<li class="">Otherwise, the top 10 processes exceeding the 50% CPU usage threshold will
also be recorded. Please reach out to customer support to configure these
thresholds.</li>
<li class="">Added new general connectivity metrics reported by NetworkCapabilities.</li>
<li class=""><code>connectivity.roaming</code> captures whether the connected network is roaming. This
metric is only available in HRT, on API 28+.</li>
<li class=""><code>connectivity.unmetered_temporarily</code> captures whether the connected network
was temporarily unmetered. This metric is only available in HRT, on API 30+.</li>
<li class=""><code>connectivity.metered.latest</code> captures whether the connected network is
metered.</li>
<li class="">Added new basic Wi-Fi from the WifiInfo reported by NetworkCapabilities.</li>
<li class=""><code>connectivity.wifi.frequency</code> captures the Wi-Fi frequency of the associated
link in MHz.</li>
<li class=""><code>connectivity.wifi.link_speed_mbps</code> captures the current link speed of the
associated link with the highest RSSI in Mbps.</li>
<li class=""><code>connectivity.wifi.security_type</code> captures the security type of the current
802.11 network connection as a human-readable string.</li>
<li class=""><code>connectivity.wifi.standard_version</code> captures connection Wi-Fi standard as a
human-readable string.</li>
<li class=""><code>connectivity.wifi.lost_tx_packets_per_second</code> captures the average rate of
lost transmitted packets, in units of packets per second.</li>
<li class=""><code>connectivity.wifi.retried_tx_packets_per_second</code> captures the average rate of
transmitted retry packets, in units of packets per second.</li>
<li class=""><code>connectivity.wifi.successful_tx_packets_per_second</code> captures the average rate
of successfully transmitted unicast packets, in units of packets per second.</li>
<li class=""><code>connectivity.wifi.successful_rx_packets_per_second</code> captures the average rate
of received unicast data packets, in units of packets per second.</li>
<li class="">Added support for Android 15.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="chart_with_upwards_trend-improvements-1">📈<!-- --> Improvements<a href="https://docs.memfault.com/changelog/2025/07/31#chart_with_upwards_trend-improvements-1" class="hash-link" aria-label="Direct link to chart_with_upwards_trend-improvements-1" title="Direct link to chart_with_upwards_trend-improvements-1" translate="no">​</a></h3>
<ul>
<li class="">Added parsers for more HRT batterystats data.</li>
<li class=""><code>screen_doze</code> captures whether the display is dozing in a low power state
(<a href="https://cs.android.com/android/platform/superproject/main/+/main:frameworks/base/core/java/android/view/Display.java;l=491;drc=61197364367c9e404c7da6900658f1b16c42d0da;bpv=1;bpt=1?q=isDozeState" target="_blank" rel="noopener noreferrer" class="">link</a>).</li>
<li class=""><code>flashlight</code> captures whether the flashlight was turned on.</li>
<li class=""><code>bluetooth</code> captures whether Bluetooth was enabled.</li>
<li class=""><code>usb_data</code> captures whether a USB connection was established (as reported by
<code>android.hardware.usb.action.USB_STATE</code>).</li>
<li class=""><code>cellular_high_tx_power</code> captures whether the modem spent more of its time at
the highest power level versus any other level.</li>
<li class=""><code>nr_state</code> captures the service level of the 5G network that's connected
(<a href="https://cs.android.com/android/platform/superproject/main/+/main:frameworks/base/telephony/java/android/telephony/NetworkRegistrationInfo.java;l=147" target="_blank" rel="noopener noreferrer" class="">link</a>).</li>
<li class="">Updated comments on various batterystats fields. More improvements to come in
clarifying the name and use of batterystats metrics!</li>
<li class="">Dumped any existing logs when continuous logging starts, to retain logs
captured from before a reboot.</li>
<li class="">Added control over the maximum age of sampled data, to match the controls over
unsampled data.</li>
<li class="">Added support for parsing the binary log buffers (events, security, stats)
with continuous logs.</li>
<li class="">Modified dumpstate to write bugreports to /data/misc/MemfaultBugReports
instead of to Bort's app dir. This is necessary for Android 15 support and CTS
compliance to work around neverallow sepolicy rules. This also allowed
deleting the custom <code>bort_app_data_file</code> app label for the Bort app.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="construction-fixes-1">🚧<!-- --> Fixes<a href="https://docs.memfault.com/changelog/2025/07/31#construction-fixes-1" class="hash-link" aria-label="Direct link to construction-fixes-1" title="Direct link to construction-fixes-1" translate="no">​</a></h3>
<ul>
<li class="">Added explicit Android System AID mappings for more consistent system UID
attribution in tombstone and network stats parsing.</li>
<li class="">Added VPN and USB as explicitly defined network types using
<code>connectivity.network</code>.</li>
<li class="">Fixed a bug in PhoneState where the unknown <code>???</code> state was reported as
<code>null</code>.</li>
<li class="">Added exponential backoff for EAGAIN errors in continuous logs. Each write is
fsync'd immediately after write to reduce the likelihood of data loss.</li>
<li class="">Added missing ignore.cil files for SDKs 32,</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="v530---may-14-2025">v5.3.0 - May 14, 2025<a href="https://docs.memfault.com/changelog/2025/07/31#v530---may-14-2025" class="hash-link" aria-label="Direct link to v5.3.0 - May 14, 2025" title="Direct link to v5.3.0 - May 14, 2025" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-new-features">🚀 New Features<a href="https://docs.memfault.com/changelog/2025/07/31#-new-features" class="hash-link" aria-label="Direct link to 🚀 New Features" title="Direct link to 🚀 New Features" translate="no">​</a></h3>
<ul>
<li class="">Introduced a new crash reporting mechanism that provides more detailed stack
traces.</li>
<li class="">Added support for Android 15, ensuring compatibility with the latest Android
features.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-improvements">📈 Improvements<a href="https://docs.memfault.com/changelog/2025/07/31#-improvements" class="hash-link" aria-label="Direct link to 📈 Improvements" title="Direct link to 📈 Improvements" translate="no">​</a></h3>
<ul>
<li class="">Enhanced the performance of the metrics collection system, reducing overhead
by 15%.</li>
<li class="">Improved the accuracy of battery usage metrics by refining the data collection
process.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="fixes">🚧&nbsp;Fixes<a href="https://docs.memfault.com/changelog/2025/07/31#fixes" class="hash-link" aria-label="Direct link to 🚧&nbsp;Fixes" title="Direct link to 🚧&nbsp;Fixes" translate="no">​</a></h3>
<ul>
<li class="">Fixed an issue where certain log entries were not being captured correctly.</li>
<li class="">Resolved a bug that caused the app to crash on startup for some users.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-internal">🏠 Internal<a href="https://docs.memfault.com/changelog/2025/07/31#-internal" class="hash-link" aria-label="Direct link to 🏠 Internal" title="Direct link to 🏠 Internal" translate="no">​</a></h3>
<ul>
<li class="">Updated internal libraries to the latest versions for improved stability and
security.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="linux">Linux<a href="https://docs.memfault.com/changelog/2025/07/31#linux" class="hash-link" aria-label="Direct link to Linux" title="Direct link to Linux" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1220---2025-06-12">[1.22.0] - 2025-06-12<a href="https://docs.memfault.com/changelog/2025/07/31#1220---2025-06-12" class="hash-link" aria-label="Direct link to [1.22.0] - 2025-06-12" title="Direct link to [1.22.0] - 2025-06-12" translate="no">​</a></h2>
<p>This release adds an additional metric for tracking the health of eMMCs as well
as a change to how built-in and collectd-based metrics interact to improve the
user experience for teams using a combination of the two.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="added-1">Added<a href="https://docs.memfault.com/changelog/2025/07/31#added-1" class="hash-link" aria-label="Direct link to Added" title="Direct link to Added" translate="no">​</a></h3>
<ul>
<li class="">The Lifetime Estimation B value for monitored eMMCs is now reported as
<code>diskstats/&lt;disk&gt;/lifetime_b_pct</code></li>
<li class="">A warning is now emitted when there is an issue parsing the output from
<code>memfault-device-info</code> in <code>memfault-core-handler</code>. Previously, this would
cause coredump collection to fail silently.</li>
<li class="">Built-in CPU, memory, and thermal metrics can now be disabled individually
with the new <code>metrics.system_metric_collection.{cpu,memory,thermal}.enable</code>
boolean config.</li>
<li class=""><code>memfaultd</code>'s <code>.cargo/config.toml</code> now sets <code>--compress-debug-sections</code> to
<code>zlib</code> and <code>--force-unwind-tables</code> to <code>yes</code> by default. These settings enable
building efficient debug sections and binaries whose coredumps can be fully
processed. We strongly recommend using them with any Rust programs you intend
to monitor with Memfault.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="changed-1">Changed<a href="https://docs.memfault.com/changelog/2025/07/31#changed-1" class="hash-link" aria-label="Direct link to Changed" title="Direct link to Changed" translate="no">​</a></h3>
<ul>
<li class="">collectd-based metrics that overlap with built-in metrics will now be
selectively filtered out if both are enabled based on whether the overlapping
built-in metric group itself is enabled. This allows for using a mix of
collectd-based metrics and built-in metrics more easily.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="fixed-1">Fixed<a href="https://docs.memfault.com/changelog/2025/07/31#fixed-1" class="hash-link" aria-label="Direct link to Fixed" title="Direct link to Fixed" translate="no">​</a></h3>
<ul>
<li class="">A bug in which the values for the <code>MemfaultSdkMetric_os_name</code> and
<code>MemfaultSdkMetric_os_version</code> built-in Attributes were reversed.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1211---2025-05-21">[1.21.1] - 2025-05-21<a href="https://docs.memfault.com/changelog/2025/07/31#1211---2025-05-21" class="hash-link" aria-label="Direct link to [1.21.1] - 2025-05-21" title="Direct link to [1.21.1] - 2025-05-21" translate="no">​</a></h2>
<p>This is a patch release that fixes an overflow issue with the recently added
<code>diskstats/&lt;disk&gt;/bytes_written</code> metric.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="fixed">Fixed<a href="https://docs.memfault.com/changelog/2025/07/31#fixed" class="hash-link" aria-label="Direct link to Fixed" title="Direct link to Fixed" translate="no">​</a></h3>
<ul>
<li class="">Fixed an issue with the <code>diskstats/&lt;disk&gt;/bytes_written</code> metric where it would
overflow when the diskstats counter wrapped. This would cause very large
readings to be sent. Whenever there is a potential overflow now the reading
will be discarded.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1210---2025-05-08">[1.21.0] - 2025-05-08<a href="https://docs.memfault.com/changelog/2025/07/31#1210---2025-05-08" class="hash-link" aria-label="Direct link to [1.21.0] - 2025-05-08" title="Direct link to [1.21.0] - 2025-05-08" translate="no">​</a></h2>
<p>This release adds several new metrics for tracking flash wear, as well as a new
syslog log source. It also includes a config flag to enable legacy statsd metric
names, and a data retention check to the upload process. For more information on
the new metrics, check out the
<a href="https://docs.memfault.com/docs/linux/introduction" target="_blank" rel="noopener noreferrer" class="">docs</a>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="added">Added<a href="https://docs.memfault.com/changelog/2025/07/31#added" class="hash-link" aria-label="Direct link to Added" title="Direct link to Added" translate="no">​</a></h3>
<ul>
<li class="">Added metrics for tracking flash wear for mmc block devices like eMMC and SD
cards<!-- -->
<ul>
<li class=""><code>diskstats/&lt;disk_name&gt;/bytes_written</code></li>
<li class=""><code>diskstats/&lt;disk_name&gt;/lifetime_pct</code></li>
<li class=""><code>diskstats/&lt;disk_name&gt;/manufacturer_id</code></li>
<li class=""><code>diskstats/&lt;disk_name&gt;/name</code></li>
</ul>
</li>
<li class="">Added syslog as a logs source. This adds support for messages in both RFC5424
and RFC3164 format sent over UDP. This is enabled with the <code>syslog</code> feature
which defaults to enabled.</li>
<li class="">Added a config flag to enable legacy statsd metric names. This will generate
metrics that follow the format generated by the <code>collectd</code> statsd server. This
is a helpful option for people looking to remove <code>collectd</code> as a dependency,
but keep the legacy format for metric keys. The config value can be found in
<code>metrics</code>&gt;<code>statsd_server</code>&gt;<code>legacy_key_names</code>.</li>
<li class="">Added time-based data filtering: When upgrading multiple devices' visibility
levels, the Memfault backend now tells <code>memfaultd</code> to only upload data from
the time of the change forward. This prevents unexpected large data uploads
from device history.</li>
<li class="">Added <code>interface/&lt;interface&gt;/total_bytes/{tx,rx}</code> metrics. These allow us to
track the total bytes sent over an interface over the course of an hour.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="changed">Changed<a href="https://docs.memfault.com/changelog/2025/07/31#changed" class="hash-link" aria-label="Direct link to Changed" title="Direct link to Changed" translate="no">​</a></h3>
<ul>
<li class="">Added intelligent traffic distribution: Device initial connections now include
a random delay (up to 25% of the configured upload interval). This prevents
traffic spikes when many devices connect simultaneously, ensuring smoother
backend performance.</li>
<li class=""><code>ram</code> and <code>loop</code> disks are no longer tracked with diskstats in auto mode.
These are virtual disks, and provide little value when tracking metrics.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="cli">CLI<a href="https://docs.memfault.com/changelog/2025/07/31#cli" class="hash-link" aria-label="Direct link to CLI" title="Direct link to CLI" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="160---2025-04-23">[1.6.0] - 2025-04-23<a href="https://docs.memfault.com/changelog/2025/07/31#160---2025-04-23" class="hash-link" aria-label="Direct link to [1.6.0] - 2025-04-23" title="Direct link to [1.6.0] - 2025-04-23" translate="no">​</a></h3>
<ul>
<li class="">Add support for uploading ELF files without DWARF debug info.</li>
</ul>]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[April 2025]]></title>
        <id>https://docs.memfault.com/changelog/2025/04/30</id>
        <link href="https://docs.memfault.com/changelog/2025/04/30"/>
        <updated>2025-04-30T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[See the health of individual devices at a glance]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="see-the-health-of-individual-devices-at-a-glance">See the health of individual devices at a glance<a href="https://docs.memfault.com/changelog/2025/04/30#see-the-health-of-individual-devices-at-a-glance" class="hash-link" aria-label="Direct link to See the health of individual devices at a glance" title="Direct link to See the health of individual devices at a glance" translate="no">​</a></h2>
<p>We have updated the device Overview page to now include a snapshot of that
device's Vitals for the filtered time period. The Device Vitals visualizations
give both technical and non-technical users a quick and easy way to understand
the health and performance of that device without needing to track each metric
individually on the timeline.</p>
<figure class="figure_SMyf" style="--figure-bg-color:transparent"><a href="https://docs.memfault.com/img/blog/2025-05-19-device-details-vitals.png" target="_blank" class="link_rHrz"><img src="https://docs.memfault.com/img/blog/2025-05-19-device-details-vitals.png" class="image_e9uR"></a></figure>
<p>The overview will automatically display data for the Device Vitals being
collected in your project and can be filtered to show performance over a
specific time range using the date picker. If you want more guidance on how to
start collecting Device Vitals for your project, take a look at our
<a href="https://docs.memfault.com/docs/platform/memfault-core-metrics" target="_blank" rel="noopener noreferrer" class="">technical documentation</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="general">General<a href="https://docs.memfault.com/changelog/2025/04/30#general" class="hash-link" aria-label="Direct link to General" title="Direct link to General" translate="no">​</a></h2>
<ul>
<li class="">Introduced "Device Vitals" tiles on the device detail page's "Overview" tab
for projects collecting Device Vital core metrics, enhancing visibility into
key device performance indicators.</li>
<li class="">Organization Authentication Tokens can now be restricted to specific projects,
enhancing security by allowing access only to designated projects.</li>
<li class="">Updated Dashboard Filters to display specific Cohort or Hardware Version
descriptions, enhancing clarity over the previous "Filtered Devices" label.</li>
</ul>
<h1>MCU</h1>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1231---2025-04-17">[1.23.1] - 2025-04-17<a href="https://docs.memfault.com/changelog/2025/04/30#1231---2025-04-17" class="hash-link" aria-label="Direct link to [1.23.1] - 2025-04-17" title="Direct link to [1.23.1] - 2025-04-17" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-fixed">🐛 Fixed<a href="https://docs.memfault.com/changelog/2025/04/30#-fixed" class="hash-link" aria-label="Direct link to 🐛 Fixed" title="Direct link to 🐛 Fixed" translate="no">​</a></h3>
<ul>
<li class="">Modify the test command used in our public CircleCI job, to work around an
issue with
<a href="https://discuss.circleci.com/t/docker-executor-infrastructure-upgrade/52282" target="_blank" rel="noopener noreferrer" class="">CircleCI's v2 container runtime</a>,
which uses <code>cgroupv2</code> instead of <code>cgroupv1</code>.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1230---2025-04-16">[1.23.0] - 2025-04-16<a href="https://docs.memfault.com/changelog/2025/04/30#1230---2025-04-16" class="hash-link" aria-label="Direct link to [1.23.0] - 2025-04-16" title="Direct link to [1.23.0] - 2025-04-16" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-added">📈 Added<a href="https://docs.memfault.com/changelog/2025/04/30#-added" class="hash-link" aria-label="Direct link to 📈 Added" title="Direct link to 📈 Added" translate="no">​</a></h3>
<ul>
<li class="">General:<!-- -->
<ul>
<li class="">Improved support for run time tracking on FreeRTOS kernel version v11 and
later, by adding compile-time checks for possible configuration issues.</li>
<li class="">Add reboot reason decoding for the NXP RW61x chip series, using the
<code>PMU.SYS_RST_STATUS</code> register to determine the reset reason. Add the file at
<a href="https://www.notion.so/memfault/ports/nxp/rw61x/pmu_reboot_tracking.c" target="_blank" rel="noopener noreferrer" class=""><code>ports/nxp/rw61x/pmu_reboot_tracking.c</code></a>
to your project to make use of it!</li>
<li class="">Add reboot reason decoding for the SiLabs SiWx91x chip series. This
implementation supports <code>Power On Reset</code>, <code>Pin Reset</code>, and <code>Software Reset</code>
causes only. Please
<a href="https://www.notion.so/memfault/mflt.io/support" target="_blank" rel="noopener noreferrer" class="">reach out</a> if you are
interested in other reset reasons. Add the file at
<a href="https://www.notion.so/memfault/ports/silabs/wiseconnect/siwx91x/siwx91x_reboot_tracking.c" target="_blank" rel="noopener noreferrer" class=""><code>sdk/embedded/ports/silabs/wiseconnect/siwx91x/siwx91x_reboot_tracking.c</code></a>
to your project to make use of it.</li>
<li class="">Add an
<a href="https://www.notion.so/memfault/ports/stm32cube/h5/rcc_reboot_tracking.c" target="_blank" rel="noopener noreferrer" class="">implementation of <code>memfault_reboot_reason_get()</code></a>
for the STM32H5xx series of MCUs, using the <code>RCC-RSR</code> register to determine
the reset reason. Add the file to your project to make use of it!</li>
</ul>
</li>
<li class="">ESP-IDF:<!-- -->
<ul>
<li class="">Add 2 new out-of-box metrics:<!-- -->
<ul>
<li class=""><code>spi_flash_chip_id</code> : the 24-bit RDID value of the SPI flash chip, for
example <code>"c84017"</code> = GigaDevice GD25Q64 8MiB</li>
<li class=""><code>esp_chip_revision</code> : the ESP32 chip and revision, for example
<code>esp32c6-0.0</code> or <code>esp32s3-0.2</code></li>
</ul>
</li>
<li class="">For ESP-IDF v5.5 and later, enable <code>ggdb3</code> by default for enhanced
debugging. This is controlled with the Kconfig <code>CONFIG_MEMFAULT_GGDB3</code>.</li>
<li class="">Set the User-Agent to <code>MemfaultSDK/&lt;version&gt;</code> when sending HTTP requests to
Memfault.</li>
</ul>
</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="️-changed">🛠️ Changed<a href="https://docs.memfault.com/changelog/2025/04/30#%EF%B8%8F-changed" class="hash-link" aria-label="Direct link to 🛠️ Changed" title="Direct link to 🛠️ Changed" translate="no">​</a></h3>
<ul>
<li class="">General:<!-- -->
<ul>
<li class="">Updated the internally used <code>clang-format</code> version to 20.1.0, latest at time
of writing. This resulted in a few minor format changes in the SDK.</li>
</ul>
</li>
<li class="">Zephyr:<!-- -->
<ul>
<li class="">Update the
<a href="https://www.notion.so/memfault/examples/zephyr/qemu" target="_blank" rel="noopener noreferrer" class="">Zephyr QEMU example</a>
to use the latest Zephyr version, v4.1.0.</li>
</ul>
</li>
<li class="">nRF-Connect SDK:<!-- -->
<ul>
<li class="">Update the
<a href="https://www.notion.so/memfault/examples/nrf-connect-sdk" target="_blank" rel="noopener noreferrer" class="">nRF-Connect SDK examples</a>
to use the latest nRF-Connect SDK version, v2.9.1.</li>
<li class="">Update the
<a href="https://www.notion.so/memfault/examples/nrf-connect-sdk/nrf9160" target="_blank" rel="noopener noreferrer" class="">nRF91 example</a>
to enable the <code>DATETIME</code> subsystem, to tag SDK event and log data with
timestamps once the network connection is activated.</li>
</ul>
</li>
<li class="">ESP-IDF:<!-- -->
<ul>
<li class="">Update the <code>prv_panic_safe_putstr()</code> implementation to perform better on
modern ESP-IDF versions (&gt;=4.4.0). This function is used to output local
prints during panic handling.</li>
<li class="">Add a Kconfig <code>CONFIG_MEMFAULT_DATA_CHUNK_HANDLERS_CUSTOM</code> to allow
overriding <code>memfault_esp_port_data_available()</code> and
<code>memfault_esp_port_get_chunk()</code>. If other MCUs are forwarding data to an
ESP32 for transport, enable this option and provide definitions to handle
additional sources. By default, these functions only check the local device
for available chunks.</li>
</ul>
</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-fixed-1">🐛 Fixed<a href="https://docs.memfault.com/changelog/2025/04/30#-fixed-1" class="hash-link" aria-label="Direct link to 🐛 Fixed" title="Direct link to 🐛 Fixed" translate="no">​</a></h3>
<ul>
<li class="">ESP-IDF:<!-- -->
<ul>
<li class="">Correctly print the initial delay and period in seconds for the periodic
upload task. Previously, this info log print was using the value in
milliseconds.</li>
</ul>
</li>
</ul>
<h1>Android</h1>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="v4151---april-16-2024">v4.15.1 - April 16, 2024<a href="https://docs.memfault.com/changelog/2025/04/30#v4151---april-16-2024" class="hash-link" aria-label="Direct link to v4.15.1 - April 16, 2024" title="Direct link to v4.15.1 - April 16, 2024" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="improvements">Improvements<a href="https://docs.memfault.com/changelog/2025/04/30#improvements" class="hash-link" aria-label="Direct link to Improvements" title="Direct link to Improvements" translate="no">​</a></h3>
<ul>
<li class="">Fix an exception when parsing batterystats files with lines that have trailing
commas.</li>
</ul>
<h1>Linux SDK Updates</h1>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1200--2025-04-10"><a href="https://github.com/memfault/memfault-linux-sdk/releases/tag/1.20.0-kirkstone" target="_blank" rel="noopener noreferrer" class="">**1.20.0</a>&nbsp;- 2025-04-10**<a href="https://docs.memfault.com/changelog/2025/04/30#1200--2025-04-10" class="hash-link" aria-label="Direct link to 1200--2025-04-10" title="Direct link to 1200--2025-04-10" translate="no">​</a></h2>
<p>This release adds support for log filtering as well as a few bug fixes. Check
out the&nbsp;<a href="https://docs.memfault.com/docs/linux/logging" target="_blank" rel="noopener noreferrer" class="">logging docs</a>&nbsp;for more
information on log filtering!</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="added"><strong>Added</strong><a href="https://docs.memfault.com/changelog/2025/04/30#added" class="hash-link" aria-label="Direct link to added" title="Direct link to added" translate="no">​</a></h3>
<ul>
<li class="">Added support for log message filtering. This feature gives you the ability to
exclude log lines that are spammy or contain potentially sensitive information
from being uploaded to Memfault.</li>
<li class="">Added built-in&nbsp;<code>logs-to-metric</code>&nbsp;rules that increment counter metrics when
a&nbsp;<code>systemd_restarts</code>&nbsp;or&nbsp;<code>oomkill</code>&nbsp;event is detected. These are widely
applicable to most Linux distros, and represent a good base for metric
collection</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="fixed"><strong>Fixed</strong><a href="https://docs.memfault.com/changelog/2025/04/30#fixed" class="hash-link" aria-label="Direct link to fixed" title="Direct link to fixed" translate="no">​</a></h3>
<ul>
<li class="">Fixed a problem where large HRT files could take a long time to write. This
was due to the file writer not being buffered.</li>
<li class="">Fixed a race condition that caused the&nbsp;<code>journald</code>&nbsp;cursor to not be written.
This would lead to the&nbsp;<code>journald</code>&nbsp;log collector capturing duplicate log lines
if&nbsp;<code>memfaultd</code>&nbsp;is restarted.</li>
<li class="">Fixed a problem where daily heartbeats were being saved when they were not
enabled.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="removed"><strong>Removed</strong><a href="https://docs.memfault.com/changelog/2025/04/30#removed" class="hash-link" aria-label="Direct link to removed" title="Direct link to removed" translate="no">​</a></h3>
<ul>
<li class="">Combined the&nbsp;<code>regex</code>&nbsp;feature with the&nbsp;<code>logging</code>&nbsp;feature to simplify feature
management as log filtering and matching based on regexes becomes a key part
of our logging offering.</li>
</ul>
<h1>CLI</h1>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="160---2025-04-23">[1.6.0] - 2025-04-23<a href="https://docs.memfault.com/changelog/2025/04/30#160---2025-04-23" class="hash-link" aria-label="Direct link to [1.6.0] - 2025-04-23" title="Direct link to [1.6.0] - 2025-04-23" translate="no">​</a></h2>
<p>Add support for uploading ELF files without DWARF debug info.</p>]]></content>
    </entry>
</feed>