Skip to content

Commit 25ea383

Browse files
author
Memfault Inc
committed
Memfault Firmware SDK 1.25.0 (Build 14245)
1 parent 53f70b2 commit 25ea383

File tree

82 files changed

+3061
-1434
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+3061
-1434
lines changed

CHANGELOG.md

Lines changed: 182 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,183 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to
77
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
88

9+
## [1.25.0] - 2025-06-09
10+
11+
This is a feature release of the Memfault Firmware SDK. The main new feature
12+
released in this version is support for tracking metrics through deep sleep on
13+
ESP32 devices. Full release notes are below.
14+
15+
### 📈 Added
16+
17+
- Zephyr:
18+
19+
- Add a new choice config `CONFIG_MEMFAULT_REBOOT_REASON_GET`. By default,
20+
`CONFIG_MEMFAULT_REBOOT_REASON_GET_HWINFO=y`, which is supported by
21+
`imply CONFIG_HWINFO` in the overarching `MEMFAULT` symbol. This default
22+
enables better reboot reasons out-of-the-box via Zephyr's `hwinfo` module.
23+
The fall-back option is `CONFIG_MEMFAULT_REBOOT_REASON_GET_BASIC`, which
24+
provides a simple implementation. As before, users can override the default
25+
implementations with `CONFIG_MEMFAULT_REBOOT_REASON_GET_CUSTOM=y`.
26+
27+
- Add a new Kconfig setting, `CONFIG_MEMFAULT_ENABLE_REBOOT_DIAG_DUMP`, to
28+
print the reboot reason code on system boot, for debugging purposes. This
29+
feature is enabled by default. It can be disabled with
30+
`CONFIG_MEMFAULT_ENABLE_REBOOT_DIAG_DUMP=n`.
31+
32+
- Add a `boot_time_ms` metric, which tracks how long the system takes to boot
33+
the application. Can be disabled with `CONFIG_MEMFAULT_METRICS_BOOT_TIME=n`.
34+
35+
- Add new builtin Wi-Fi metrics, enabled by default when `CONFIG_WIFI=y`, and
36+
can be disabled with `CONFIG_MEMFAULT_METRICS_WIFI=n`:
37+
38+
- `wifi_beacon_interval`
39+
- `wifi_dtim_interval`
40+
- `wifi_frequency_band`
41+
- `wifi_primary_channel`
42+
- `wifi_security_type`
43+
- `wifi_sta_rssi`
44+
- `wifi_standard_version`
45+
- `wifi_twt_capable`
46+
- `wifi_tx_rate_mbps` (Zephyr 4.1.0+ only)
47+
48+
These add on top of the existing Zephyr Wi-Fi metrics:
49+
50+
- `wifi_ap_oui`
51+
- `wifi_connected_time_ms`
52+
- `wifi_disconnect_count`
53+
54+
- Add an option to upload logs by default when using
55+
`MEMFAULT_HTTP_PERIODIC_UPLOAD`, controlled with the Kconfig symbol
56+
`MEMFAULT_HTTP_PERIODIC_UPLOAD_LOGS`. This can also be controlled at runtime
57+
with the included API
58+
`memfault_zephyr_port_http_periodic_upload_logs(bool enable)`
59+
60+
- Add a new Kconfig option, `CONFIG_MEMFAULT_PLATFORM_TIME_SINCE_BOOT_CUSTOM`,
61+
to provide a custom implementation of
62+
`memfault_platform_get_time_since_boot_ms()` in your application. The
63+
default is an implementation using `k_uptime_get()`.
64+
65+
- ESP-IDF:
66+
67+
- Add a `boot_time_ms` metric, which tracks how long the system takes to boot
68+
the application. Can be disabled with `CONFIG_MEMFAULT_METRICS_BOOT_TIME=n`.
69+
70+
- Add support for tracking metrics across ESP32 deep sleep cycles, enabled
71+
with the Kconfig `CONFIG_MEMFAULT_DEEP_SLEEP_SUPPORT=y`. To utilize this
72+
feature, these functions must be called by the application:
73+
74+
- `memfault_platform_deep_sleep_save_state()`
75+
76+
Must be called just prior to entering deep sleep
77+
(`esp_deep_sleep_start()`)
78+
79+
- `memfault_platform_deep_sleep_restore_state()`
80+
81+
Must be called before `memfault_platform_boot()` in the application
82+
startup sequence.
83+
84+
This feature includes built-in metrics for tracking deep sleep:
85+
86+
- `deep_sleep_time_ms` - time spent in deep sleep
87+
- `active_time_ms` - time spent out of deep sleep
88+
- `deep_sleep_wakeup_count` - number of times the device woke up from deep
89+
sleep
90+
91+
There are several Kconfig options for controlling the deep sleep feature,
92+
including controlling the heartbeat trigger and HTTP periodic upload. See
93+
`menuconfig` "Memfault deep sleep support" or
94+
[`ports/esp_idf/memfault/Kconfig`](ports/esp_idf/memfault/Kconfig) for
95+
details.
96+
97+
- Add new metrics tracking flash usage:
98+
99+
- `flash_spi_erase_bytes`
100+
- `flash_spi_write_bytes`
101+
- `flash_spi_total_size_bytes`
102+
103+
- Add capture of the ESP-IDF Task Watchdog stuck task list in coredumps. This
104+
is enabled by default if ESP-IDF Task Watchdog is enabled, and can be
105+
disabled with the Kconfig
106+
`CONFIG_MEMFAULT_COREDUMP_CAPTURE_TASK_WATCHDOG=n`.
107+
108+
### 🛠️ Changed
109+
110+
- nRF Connect SDK:
111+
112+
- `CONFIG_MEMFAULT_REBOOT_REASON_GET_CUSTOM` is now a choice in the new choice
113+
config `CONFIG_MEMFAULT_REBOOT_REASON_GET`. As a result, it will be the
114+
default choice if `CONFIG_MEMFAULT_NRF_CONNECT_SDK=y` instead of being
115+
`imply`-ed by `CONFIG_MEMFAULT_NRF_CONNECT_SDK` to work around the
116+
restriction that choice configs cannot be selected. As before, users can
117+
override this behavior with `CONFIG_MEMFAULT_REBOOT_REASON_GET_CUSTOM=n`.
118+
119+
- ESP-IDF:
120+
121+
- Rename `CONFIG_MEMFAULT_TIME_SINCE_BOOT_CUSTOM` ->
122+
`CONFIG_MEMFAULT_PLATFORM_TIME_SINCE_BOOT_CUSTOM`. A new ESP-IDF port choice
123+
Kconfig `CONFIG_MEMFAULT_PLATFORM_TIME_SINCE_BOOT` now supports 3 settings
124+
for platform time since boot:
125+
126+
1. `MEMFAULT_PLATFORM_TIME_SINCE_BOOT_ESP_TIMER` default, suitable for most
127+
applications
128+
2. `MEMFAULT_PLATFORM_TIME_SINCE_BOOT_DEEP_SLEEP` applicable for deep-sleep
129+
applications
130+
3. `MEMFAULT_PLATFORM_TIME_SINCE_BOOT_CUSTOM` disable builtin
131+
implementations and implement a custom
132+
`memfault_platform_get_time_since_boot_ms()`
133+
134+
- Renamed the `spi_flash_chip_id` metric (added in `1.23.0`) to
135+
`flash_spi_manufacturer_id`.
136+
137+
- Renamed the `wifi_auth_mode` metric to `wifi_security_type` to more
138+
accurately indicate the property being measured.
139+
140+
- General:
141+
142+
- Add the `demo` component to the default set of components added to an
143+
Eclipse project when using the
144+
[`eclipse_patch.py`](scripts/eclipse_patch.py) utility. The default
145+
components can be overridden with the `--components` argument.
146+
147+
- Coredumps no longer include the device serial by default. The uploading
148+
serial (passed to the chunks endpoint) is instead used to identify the
149+
device associated with the coredump. Enabling
150+
`#define MEMFAULT_EVENT_INCLUDE_DEVICE_SERIAL 1` in
151+
`memfault_platform_config.h` will include the device serial in coredumps.
152+
153+
### 🐛 Fixed
154+
155+
- ESP-IDF:
156+
157+
- Remove debug logging from `memfault_platform_time_get_current()`. When log
158+
timestamps are enabled, and debug level logs are enabled, this function can
159+
infinitely recurse.
160+
161+
- Fix Memfault Build ID insertion when
162+
`CONFIG_SECURE_BOOT_BUILD_SIGNED_BINARIES=y`. Previously, the build ID was
163+
inserted at the wrong build step, resulting in a missing build ID in the
164+
flashable image.
165+
166+
- Zephyr:
167+
168+
- Remove debug logging from the RTC-backed
169+
`memfault_platform_time_get_current()` (enabled when
170+
`CONFIG_MEMFAULT_SYSTEM_TIME_SOURCE_RTC=y`). When log timestamps are
171+
enabled, logging from this function can result in infinite recursion under
172+
certain conditions.
173+
174+
- Update the west module allowlist to include `cmsis_6` in the
175+
[Zephyr QEMU Sample App](examples/zephyr/qemu/qemu-app). The `cmsis_6`
176+
module is now used for TF-M and Cortex-M as of
177+
[this PR](https://github.com/zephyrproject-rtos/zephyr/pull/89370/files).
178+
179+
- Update the Memfault Zephyr logging backend to properly capture log lines
180+
when `CONFIG_LOG_MODE_IMMEDIATE=y` on Zephyr 3.7.0+.
181+
182+
- Wiced:
183+
184+
- Fix broken symlinks in the [Wiced example](examples/wiced).
185+
9186
## [1.24.0] - 2025-05-06
10187

11188
### 📈 Added
@@ -145,6 +322,11 @@ and this project adheres to
145322
- Set the User-Agent to `MemfaultSDK/<version>` when sending HTTP requests to
146323
Memfault.
147324

325+
- Zephyr:
326+
327+
- Improve support for flushing data cache prior to reboot, for SOCs with
328+
`CONFIG_DCACHE` enabled.
329+
148330
### 🛠️ Changed
149331

150332
- General:

VERSION

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
BUILD ID: 13888
2-
GIT COMMIT: 58d5865404
3-
VERSION: 1.24.0
1+
BUILD ID: 14245
2+
GIT COMMIT: 78b1f7da0b
3+
VERSION: 1.25.0

0 commit comments

Comments
 (0)