Z-Wave SDK Version 7.24.0 (June 16, 2025) - Release Notes#

Simplicity SDK Version 2025.6.0

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

Important disclaimer#

The 7.24.0 Z-Wave SDK is a Pre-certified version and is not recommended for Production use. This recommendation is based on the firmware update-related known issue (#1468819) listed in the Known Issues and Limitations section. This issue prevents Over-the-Air firmware update after an initial update has been performed successfully.

Key Features#

  • 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#

  • 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 is a list of important bugs fixed in the release. For a complete list, refer to this section.

  • 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#

  • 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#

  • 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 of CC_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 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_pm_stay_awake**

zpal_status_t zpal_pm_relock(zpal_pm_type_t type, zpal_pm_domain_t domain, uint32_t timeout_ms, uint8_t idx)

zpal_pm_stay_awake**

zpal_status_t zpal_pm_lock_cancel(zpal_pm_type_t type, zpal_pm_domain_t domain, uint8_t idx)

zpal_pm_cancel**

void zpal_pm_lock_cancel_all(void)

zpal_pm_cancel_all**

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)

zpal_pm_is_active**

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#

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
  • DPRINT(PSTRING)
  • DPRINTF(PFORMAT, ...)
  • ZPAL_LOG(COMPONENT, LEVEL, PFORMAT, ...)
  • ZPAL_LOG_DEBUG(COMPONENT, PFORMAT, ...)
  • ZPAL_LOG_INFO(COMPONENT, PFORMAT, ...)
  • ZPAL_LOG_WARNING(COMPONENT, PFORMAT, ...)
  • ZPAL_LOG_ERROR(COMPONENT, PFORMAT, ...)
  • Removed APIs#

    Removed API Name

    Was Deprecated?

    zpal_pm_stay_awake

    no

    zpal_pm_register

    no

    zpal_pm_unregister

    no

    zpal_pm_is_active

    no

    zpal_pm_cancel

    no

    zpal_pm_cancel_all

    no

    zpal_pm_unregister_all

    no

    DPRINT(PSTRING)

    no

    DPRINTF(PFORMAT, ...)

    no

    Deprecated APIs#

    None.

    Bug Fixes#

    ID Issue Description GitHub / Salesforce Reference (if any) Affected Software Variants, Hardware, Modes, Host Interfaces
    1409388Fixed an issue where the radio layer would stop receiving packets until the next TX radio event.NoneZPAL/RAIL
    1390101Fixed an issue preventing the configuration of a TX output power above +14 dBM in the Serial API controller application.NoneZPAL
    1424148Better randomization of the delay used to send retransmissions.NoneZPAL
    1257690Fixed bootloader slot size configuration not being modifiable via the graphical user interfaceNoneZPAL
    1380945Fixed 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.NoneTransport layer
    1383828Sleeping reporting applications now correctly detect the button press duration when woken up from a deep sleep state via a button press.NoneReporting Sleeping End Node devices
    1425779Fixed a rare occurrence where a null pointer led to a soft reset in the ZAF event queue.NoneZAF / TSE
    1426510Fixed an issue when notifications were not sent out sometimes during an OTA firmware update.NoneZAF / Notification Command Class
    1383233Max number of user code limitation has been restored to 255. The unsuccessful inclusion issue in case of higher configuration value has been fixed.NoneZAF / User Code Command Class
    1414398Fixed an issue when the report to the lifeline was invalid in case of multiple User IDs were used and all user codes were erased.NoneZAF / User Code Command Class
    1402601Protect 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/385ZAF / Association Command Class
    1388187Fixed not being able to add or modify User Credential Command Class credentials locally (e.g. via the CLI).NoneZAF / User Credential Command Class
    1388186Fixed an issue when the DUT rejects modification of a password credential. The UserCredentialCmdClassV1_Rev01 CTT test now passes successfully.NoneZAF / User Credential Command Class
    1396326Fixed 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.NoneZAF / User Credential Command Class
    1381226Fixed Supervision status in response to a User Set when the database is already in the requested state and U3C is used - now reports "Success".NoneZAF / User Credential Command Class
    1385661Changing the state of the door bolt is no longer possible when the device is not included in a network.NoneZAF / User Code Command Class
    1440915Fixed the number of indicator blinks from 5 to 6 to pass the CDR_ZWPv2IndicatorCCRequirements_Rev01 CTT test.NoneAll Z-Wave applications
    1377838The inclusion indicator LED no longer keeps blinking when a KEX frame is missing during the inclusion process.NoneAll Z-Wave applications
    1390955Fixed the GPIO configuration of Serial API Controller UART RX and TX pinsNonezwave_ncp_serial_api_controller
    1394004The 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.Nonezwave_ncp_serial_api_controller
    1383938Z-Wave OTW bootloader project for custom board now compiles without errors, displays warning to pay attention to default UART configuration.Nonebootloader-uart-xmodem-zwave-otw
    1384692Fixed an issue when the `get_rgb_values` CLI command returned with invalid values. Nonezwave_soc_power_strip
    1429395Fixed an issue when the sleeping apps fell back to sleep during long button press.NoneReporting Sleeping End Node devices
    1384690Fixed an issue when the CLI were not working with some board-application combinations.None
  • BRD2603A - zwave_soc_wall_controller
  • BRD2603A - zwave_soc_multilevel_sensor
  • BRD2705A - zwave_soc_wall_controller
  • Chip Enablement#

    None.

    Application Example Changes#

    New Examples | Modified Examples | Removed Examples | Deprecated Examples

    New Examples#

    None.

    Modified Examples#

    Example Name Changes Supported Software Variants if applicable Supported Modes Supported OPNs / Boards / OPN Combinations Supported Host Interfaces

    Zniffer

    Readme

      The Zniffer application now includes the "Zniffer PTI" sample application capabilities
    zwave_ncp_zniffer
      • OPN: All Z-Wave supported 800 series OPNs
      • All Z-Wave supported 800 series boards

      zwave_soc_door_lock_keypad

      Readme

      • The default bolt state of the Door Lock Keypad application is changed to unlocked.
      • Changing the state of the door bolt is no longer possible when the device is not included in a network.
      zwave_soc_door_lock_keypad
        • OPN: All Z-Wave supported 800 series OPNs
        • All Z-Wave supported 800 series boards

        zwave_soc_door_lock_keypad

        Readme

        • CLI is enabled in EM2 by modifying the EUSART baudrate to 9600 baud.
        • On development kit boards BRD2603A and BRD2705A, the following command should be applied in the Admin console to adjust the baudrate: `serial vcom config speed 9600`
        zwave_soc_door_lock_keypad
          • OPN: All Z-Wave supported 800 series OPNs
          • All Z-Wave supported 800 series boards

          zwave_soc_led_bulb

          Readme

          • Added `toggle_led_bulb` CLI command.
          zwave_soc_led_bulb
            • OPN: All Z-Wave supported 800 series OPNs
            • All Z-Wave supported 800 series boards

            Removed Examples#

            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
            1468819Existing Z-Wave end devices that are updated to SDK version 7.24.0 via Over-the-Air firmware update are not able to upgrade beyond this version. In contrast, newly manufactured end devices built with SDK 7.24.0 are capable of being updated further as expected.Currently not available.All Z-Wave applications
            1465034Using the Door Lock application with the BRD2705A Explorer Kit results in the transmission of corrupt packets. For BRD2705A, BTN0 is mapped onto Port C, Pin 0, which not an EM2/EM3 capable pin. In a FL application, a press of BTN0 will be handled when the device wakes up and configures the radio for beam detection.Use an EM2/3 capable wake up pin on Port A/Bzwave_soc_door_lock_keypad application with BRD2705A Explorer Kit
            1399709Reported S2 command class version remains 1 until certification covers S2v2.Currently not available.All Z-Wave applications
            369430All 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
            1172849On series 800, sleep will no longer take advantage of EM1P current savings.Currently not available.800 Series chips
            1067228Zniffer on BRD4204D does not detect LR wakeup beamsUse different board for sniffing LR wakeup beamszwave_ncp_zniffer
            1364307The RSSI values showed in PC Zniffer using the Zniffer NCP are not valid.Use Zniffer with PTI for measuring valid RSSI values.zwave_ncp_zniffer
            1432659Too many reports are sent when multiple buttons are pressed at once.Currently not available.End Device sample apps
            1420527OTA update gets stuck after serveral sent packets with debug builds.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:

            1. Go to https://community.silabs.com/.

            2. Log in with your account credentials.

            3. Click your profile icon in the upper-right corner of the page.

            4. Select Notifications from the dropdown menu.

            5. In the Notifications section, go to the My Product Notifications tab to review historical Security and Software Advisory notifications

            6. To manage your preferences, use the Manage Notifications tab to customize which product updates and advisories you receive.

            Help and Feedback#

            SDK Release and Maintenance Policy#

            See our SDK Release and Maintenance Policy.