Z-Wave SDK Version 7.24.1 (July 21, 2025) - Release Notes#
Simplicity SDK Version 2025.6.1
Z-Wave and Z-Wave Long Range SDK is designed to meet the demands of the future smart home and beyond, where increasing needs for more sensors and battery-operated devices require both long range and low power. Context-aware environments are the next evolution in the smart home market, and they require technologies that have been optimized specifically for these applications.
Click here for earlier releases.
Release Summary#
Key Features | API Changes | Bug Fixes | Chip Enablement
Key Features#
Added in 7.24.1#
None.
Added in 7.24.0#
The Z-Wave stack and associated binary resources are compiled with the Link Time Optimization (LTO) option enabled.
S2v2 draft implementation supports the Supervision Command Class and is aligned with the latest proposed specification.
ZPAL watchdog refactoring.
Z-Wave Power Manager refactoring.
API Changes#
Added in 7.24.1#
The duration and delay configuration macros for the Button Press component were updated to include the time unit in their names.
Added in 7.24.0#
The watchdog is not enabled by stack anymore. It is the application's duty to enable it using zpal_watchdog_init and zpal_enable_watchdog. Application tasks should not block other tasks for more than 4 seconds.
Introduction of zw_power_manager_init(), zw_power_manager_lock(), zw_power_manager_relock(), zw_power_manager_lock_cancel(), to replace and wrap the ZPAL power manager functions. An application must use the zw_power_manager APIs rather than their ZPAL counterparts.
Aligned User Credential Command Class according to the 2025A specification changes by modifying the API of the
CC_UserCredential_move_credential_and_report()
function. The specification for the "User Credential Association Set" and "User Credential Association Report" commands was updated: the option to move a credential to a different slot was removed. Moving a credential to a different slot is still possible via the CLI; however, the lifeline group can no longer be notified about a credential slot change.App initialization is changed.
main.c
has been removed from the sample applications and is now generated automatically by the System Setup (sl_main) platform component instead of the sl_system. For more information, refer to the documentation for System Initialization and Action Processing.The Debug Print component was replaced by the ZPAL Log API, which allows filtering log messages by source component and log level.
Bug Fixes#
Below are important bugs fixed in the release. For a complete list, refer to this section.
Fixed in 7.24.1#
Fixed an issue preventing existing Z-Wave end devices updated to SDK version 7.24.0 via Over-the-Air firmware update to upgrade beyond this version.
Fixed an issue where a FLiRS end device would send a corrupted packet if it was not woken up by an EM2/EM3 capable source.
Fixed in 7.24.0#
Fixed an issue where the radio layer would stop receiving packet until the next TX radio event (1409388).
Fixed a rare occurrence where a null pointer led to a soft reset in the ZAF event queue (1425779).
Chip Enablement#
None.
Key Features#
New Features | Enhancements | Removed Features | Deprecated Features
New Features#
Added in 7.24.1#
None.
Added in 7.24.0#
The Z-Wave stack and associated binary resources are compiled with the Link Time Optimization (LTO) option enabled. (Quality: GA)
S2v2 draft implementation supporting the Supervision Command Class and aligned with the latest proposed specification. (Quality: Alpha)
Z-Wave Applications now support S2v2 commands NLS Node List Get/Report. (Quality: Alpha)
Enhancements#
Added in 7.24.1#
Improved the Series 800 radio reception capability in environments crowded by wake-up beams.
Added in 7.24.0#
Improved Clear Channel Assessment (CCA) reliability. Previously, only the latest measured RSSI value was used instead of the highest value in the RX window.
Updated Clock Manager API calls to the new SL clock_manager module API calls.
Replaced previous logging approach with new logging system via ZPAL Log API, introducing component based enablement, log levels, and routing capability to different output channels.
Made NVM initialization significantly faster when many user codes are used with User Code Command Class by creation of
ZAF_FILE_ID_CC_USER_CODE_HEADER
to store a new database. The database stores flags about the validity of the corresponding User Code. This removes the limitation ofCC_USER_CODE_MAX_IDS
, increasing its range to 255.Added more descriptive error messages for invalid .cc_config file contents.
Modularized the User Credential Command Class handler functions from
CCUserCredential.c
. Related upstream issue in Z-Wave Alliance Open Source: https://github.com/Z-Wave-Alliance/z-wave-stack/issues/351.Adapted the User Credential Command Class behavior according to Z-Wave specification rule change, where the CC:0083.01.0C.11.015 requirement has been removed. Credential Get commands where the UUID does not match the database is answered with a "Credential doesn't exist" type of response.
Merged Zniffer NCP and Zniffer PTI into a single sample application (zwave_ncp_zniffer).
Removed Features#
None.
Deprecated Features#
None.
API Changes#
New APIs | Modified APIs | Removed APIs | Deprecated APIs
New APIs#
New 7.24.1#
None.
New 7.24.0#
New API Signature | Deprecated API replaced by this (if any) |
---|---|
REGISTER_CC_V6(cc_api_handler_version, cc, version, handler, basic_set_mapper, basic_get_mapper, lifeline_report_cb, flags, init_cb, reset_cb, migrate_cb)* | None |
zpal_status_t zpal_pm_register_domain(zpal_pm_domain_t domain, pm_domain_status_t *radio_domain_status, pm_domain_status_t *deep_sleep_domain_status) | |
zpal_status_t zpal_pm_lock(zpal_pm_type_t type, zpal_pm_domain_t domain, uint32_t timeout_ms, uint8_t idx) | |
zpal_status_t zpal_pm_relock(zpal_pm_type_t type, zpal_pm_domain_t domain, uint32_t timeout_ms, uint8_t idx) | |
zpal_status_t zpal_pm_lock_cancel(zpal_pm_type_t type, zpal_pm_domain_t domain, uint8_t idx) | |
void zpal_pm_lock_cancel_all(void) | |
uint32_t zpal_get_max_timeout(void) | |
bool zpal_pm_lock_is_active(zpal_pm_type_t type, zpal_pm_domain_t domain, uint8_t idx, zpal_pm_state_t *state) | |
bool zpal_pm_lock_type_is_active(zpal_pm_type_t pm_type, zpal_pm_state_t *state) | |
zpal_status_t zpal_pm_register_domain(zpal_pm_domain_t domain, pm_domain_status_t *radio_domain_status, pm_domain_status_t *deep_sleep_domain_status) |
* The REGISTER_CC_V6
macro has been introduced for extending the REGISTER_CC_V5
in two ways: It introduces migrate()
callback function similar to init()
or reset()
. migrate()
can be used to execute any migration that is necessary for a command class during firmware upgrade. migrate()
is called by Firmware Update Command Class, after the new firmware is loaded, but before the Firmware Update Status Report is transmitted. It allows the command class to choose the cc_api_handler_version
. This allows command classes to update their registration to REGISTER_CC_V6()
without the need to change the CC handlers.
** API not deprecated but removed
Modified APIs#
Modified 7.24.1#
Old API | Modified |
---|---|
MIN_VALID_BUTTON_PRESS_DURATION | MIN_VALID_BUTTON_PRESS_DURATION_MS |
SHORT_BUTTON_PRESS_DURATION | SHORT_BUTTON_PRESS_DURATION_MS |
MEDIUM_BUTTON_PRESS_DURATION | MEDIUM_BUTTON_PRESS_DURATION_MS |
LONG_BUTTON_PRESS_DURATION | LONG_BUTTON_PRESS_DURATION_MS |
APP_BUTTON_PRESS_WAKEUP_DELAY | APP_BUTTON_PRESS_WAKEUP_DELAY_MS |
Modified 7.24.0#
Old API | Modified |
---|---|
u3c_db_operation_result CC_UserCredential_move_credential_and_report(u3c_credential_type credential_type, uint16_t source_credential_slot, uint16_t destination_uuid, uint16_t destination_credential_slot RECEIVE_OPTIONS_TYPE_EX * p_rx_options) | u3c_db_operation_result CC_UserCredential_move_credential_and_report(uint16_t credential_slot, uint16_t destination_uuid, RECEIVE_OPTIONS_TYPE_EX * p_rx_options) |
u3c_user | u3c_user_t |
u3c_credential | u3c_credential_t |
u3c_event_data_validate | u3c_event_data_validate_t |
u3c_event_data_learn_read_done | u3c_event_data_learn_read_done_t |
u3c_credential_metadata | u3c_credential_metadata_t |
u3c_credential_learn_event_data | u3c_event_data_learn_start_t |
|
|
Removed APIs#
Removed 7.24.1#
None.
Removed 7.24.0#
Removed API Name | Was Deprecated? |
---|---|
no | |
no | |
no | |
no | |
no | |
no | |
no | |
DPRINT(PSTRING) | no |
DPRINTF(PFORMAT, ...) | no |
Deprecated APIs#
None.
Bug Fixes#
Fixed in 7.24.1#
ID | Issue Description | GitHub / Salesforce Reference (if any) | Affected Software Variants, Hardware, Modes, Host Interfaces |
---|---|---|---|
1468819 | Fixed an issue preventing existing Z-Wave end devices updated to SDK version 7.24.0 via Over-the-Air firmware update to upgrade beyond this version. | None | ZPAL |
1465034 | Fixed an issue where a FLiRS end device would send a corrupted packet if it was not woken up by an EM2/EM3 capable source. | None | ZPAL |
1476826 | Fixed CMake compiler issue. | None | All Z-Wave applications |
1473709 | Fixed compiler issues | None | zwave_soc_led_bulb, zwave_soc_power_strip apps on boards with RGB LED |
1473325 | Slow refresh has been enabled by default in Central Scene V3 according to the specification. | None | ZAF / Central Scene Command Class |
1471384 | Fixed User Credental reports not being sent to all Lifeline destinations. Now the CSR_LifelineMandatoryReports_Rev03 CTT test passes. | None | ZAF / User Credential Command Class |
Fixed in 7.24.0#
ID | Issue Description | GitHub / Salesforce Reference (if any) | Affected Software Variants, Hardware, Modes, Host Interfaces |
---|---|---|---|
1409388 | Fixed an issue where the radio layer would stop receiving packets until the next TX radio event. | None | ZPAL/RAIL |
1390101 | Fixed an issue preventing the configuration of a TX output power above +14 dBM in the Serial API controller application. | None | ZPAL |
1424148 | Better randomization of the delay used to send retransmissions. | None | ZPAL |
1257690 | Fixed bootloader slot size configuration not being modifiable via the graphical user interface | None | ZPAL |
1380945 | Fixed an issue where, under heavy traffic, the packets were not properly ordered when sent over the air. Acknowledgment packets could be sent in reverse. Retransmission attempts might occur after new packets. | None | Transport layer |
1383828 | Sleeping reporting applications now correctly detect the button press duration when woken up from a deep sleep state via a button press. | None | Reporting Sleeping End Node devices |
1425779 | Fixed a rare occurrence where a null pointer led to a soft reset in the ZAF event queue. | None | ZAF / TSE |
1426510 | Fixed an issue when notifications were not sent out sometimes during an OTA firmware update. | None | ZAF / Notification Command Class |
1383233 | Max number of user code limitation has been restored to 255. The unsuccessful inclusion issue in case of higher configuration value has been fixed. | None | ZAF / User Code Command Class |
1414398 | Fixed an issue when the report to the lifeline was invalid in case of multiple User IDs were used and all user codes were erased. | None | ZAF / User Code Command Class |
1402601 | Protect against configuring an endpoint for CC AGI with more association groups than allowed by the configuration of Association Command Class. | github.com/Z-Wave-Alliance/z-wave-stack/issues/385 | ZAF / Association Command Class |
1388187 | Fixed not being able to add or modify User Credential Command Class credentials locally (e.g. via the CLI). | None | ZAF / User Credential Command Class |
1388186 | Fixed an issue when the DUT rejects modification of a password credential. The UserCredentialCmdClassV1_Rev01 CTT test now passes successfully. | None | ZAF / User Credential Command Class |
1396326 | Fixed an issue when the lifeline group contains only the multi channel endpont(s) of a node, a User Credential Command Class / User Set request from this node's root device were not answered - instead, only the registered endpoint(s) received the report. With this fix the CCA_U3CReportUserData_Rev01 CTT test now passes successfully. | None | ZAF / User Credential Command Class |
1381226 | Fixed Supervision status in response to a User Set when the database is already in the requested state and U3C is used - now reports "Success". | None | ZAF / User Credential Command Class |
1385661 | Changing the state of the door bolt is no longer possible when the device is not included in a network. | None | ZAF / User Code Command Class |
1440915 | Fixed the number of indicator blinks from 5 to 6 to pass the CDR_ZWPv2IndicatorCCRequirements_Rev01 CTT test. | None | All Z-Wave applications |
1377838 | The inclusion indicator LED no longer keeps blinking when a KEX frame is missing during the inclusion process. | None | All Z-Wave applications |
1390955 | Fixed the GPIO configuration of Serial API Controller UART RX and TX pins | None | zwave_ncp_serial_api_controller |
1394004 | The SAPI command REMOVE_NODE_FROM_NETWORK could falsely fail if removing a device from another network that has the same node ID as a device in the remover's network. | None | zwave_ncp_serial_api_controller |
1383938 | Z-Wave OTW bootloader project for custom board now compiles without errors, displays warning to pay attention to default UART configuration. | None | bootloader-uart-xmodem-zwave-otw |
1384692 | Fixed an issue when the `get_rgb_values` CLI command returned with invalid values. | None | zwave_soc_power_strip |
1429395 | Fixed an issue when the sleeping apps fell back to sleep during long button press. | None | Reporting Sleeping End Node devices |
1384690 | Fixed an issue when the CLI were not working with some board-application combinations. | None |
Chip Enablement#
None.
Application Example Changes#
New Examples | Modified Examples | Removed Examples | Deprecated Examples
New Examples#
None.
Modified Examples#
Modified 7.24.1#
Example Name | Changes | Supported Software Variants if applicable | Supported Modes | Supported OPNs / Boards / OPN Combinations | Supported Host Interfaces |
---|---|---|---|---|---|
All example apps |
| All example apps |
|
|
Modified 7.24.0#
Example Name | Changes | Supported Software Variants if applicable | Supported Modes | Supported OPNs / Boards / OPN Combinations | Supported Host Interfaces |
---|---|---|---|---|---|
Zniffer |
| zwave_ncp_zniffer |
| ||
zwave_soc_door_lock_keypad |
| zwave_soc_door_lock_keypad |
| ||
zwave_soc_door_lock_keypad |
| zwave_soc_door_lock_keypad |
| ||
zwave_soc_led_bulb |
| zwave_soc_led_bulb |
|
Removed Examples#
Removed 7.24.1#
None.
Removed 7.24.0#
Removed Example Name | Was Deprecated? |
---|---|
Zniffer PTI | No. Features merged in the "Zniffer" sample application. |
Deprecated Examples#
None.
Known Issues and Limitations#
ID | Issue or Limitation Description | GitHub / Salesforce Reference (if any) | Workaround (if any) | Affected Software Variants, Hardware, Modes, Host Interfaces |
---|---|---|---|---|
1399709 | Reported S2 command class version remains 1 until certification covers S2v2. | Currently not available. | All Z-Wave applications | |
369430 | All S2 multicast frames are sent using verified delivery S2_TXOPTION_VERIFY_DELIVERY whether or not a response is expected. | Change source code depending on the frame sent. | ZAF | |
1172849 | On Series 800, the sleep state does not take advantage of EM1P current savings. | Currently not available. | 800 Series chips | |
1067228 | Zniffer on BRD4204D does not detect LR wakeup beams | Use different board for sniffing LR wakeup beams | zwave_ncp_zniffer | |
1432659 | Too many reports are sent when multiple buttons are pressed at once. | Currently not available. | End Device sample apps | |
1478820 | If multiple lifeline reports are simultaneously queued, some of them are occasionally not sent to all destinations. This can be triggered by the controller sending 2 different User Set frames without waiting for a response to the first one, with a delay smaller than 200 ms between the frames. | Currently not available. | End Device sample apps |
Impact of Release Changes#
Impact Statements | Migration Guide
Impact Statements#
None.
Migration Guide#
Click here for the migration guide for deprecated, removed, and modified items.
Using This Release#
Installation and Use | Help and Feedback
Installation and Use#
To upgrade your existing software with this release, see instructions in the Migration Guide.
To run your first demo, see our Z-Wave Getting Started for End Devices.
To learn more about the software in this release, dive into our Z-Wave online documentation.
For information about Secure Vault Integration, see Secure Vault.
To review Security and Software Advisory notifications and manage your notification preferences:
Log in with your account credentials.
Click your profile icon in the upper-right corner of the page.
Select Notifications from the dropdown menu.
In the Notifications section, go to the My Product Notifications tab to review historical Security and Software Advisory notifications
To manage your preferences, use the Manage Notifications tab to customize which product updates and advisories you receive.
Help and Feedback#
Contact Silicon Labs Support.
To use our Ask AI tool to get answers, see the search field at the top of this page.
Note: Ask AI is experimental.
Get help from our developer community.
SDK Release and Maintenance Policy#
See our SDK Release and Maintenance Policy.