@@ -6,6 +6,183 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
and this project adheres to
7
7
[ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
8
8
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
+
9
186
## [ 1.24.0] - 2025-05-06
10
187
11
188
### 📈 Added
@@ -145,6 +322,11 @@ and this project adheres to
145
322
- Set the User-Agent to ` MemfaultSDK/<version> ` when sending HTTP requests to
146
323
Memfault.
147
324
325
+ - Zephyr:
326
+
327
+ - Improve support for flushing data cache prior to reboot, for SOCs with
328
+ ` CONFIG_DCACHE ` enabled.
329
+
148
330
### 🛠️ Changed
149
331
150
332
- General:
0 commit comments