-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
samples: matter: Added system off configuration for smoke CO alarm #19244
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
|
@@ -73,15 +73,38 @@ The sample supports ICD Dynamic SIT LIT switching (DSLS) feature to switch betwe | |||||
The device uses the SIT mode, when the wired power source is active. | ||||||
Otherwise, it switches to the LIT mode, to indicate that it is possible to save the energy, when using a battery power source. | ||||||
Dynamic switching is possible only if the ICD device meets all criteria for operating in the LIT mode (it has at least one client registered). | ||||||
DSLS support is enabled by default. | ||||||
To disable it, set the :kconfig:option:`CONFIG_CHIP_ICD_DSLS_SUPPORT` Kconfig option to ``n``. | ||||||
DSLS support is disabled by default. | ||||||
To enable it, set the :kconfig:option:`CONFIG_CHIP_ICD_DSLS_SUPPORT` Kconfig option to ``y``. | ||||||
|
||||||
In the LIT mode, the device responsiveness is much lower than in the SIT mode. | ||||||
However, you can request the device to become responsive to, for example, change its configuration. | ||||||
To do that, you need to use the User Active Mode Trigger (UAT) feature by pressing the appropriate button. | ||||||
|
||||||
See `User interface`_ for information about how to switch the operation modes. | ||||||
|
||||||
System off configuration | ||||||
------------------------ | ||||||
|
||||||
The sample supports optional system off configuration, that turns off the whole system once an ICD device enters the idle state. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
Turning off the system, instead of putting it to sleep allows the device to achieve much lower power consumption in the idle state. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
On the other hand, the device wakes up from a sleep state much faster than from the system off, and it sends only Thread data poll frame and Matter data report. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
In case of waking up from the system off, the device has to boot the whole system, initialize platform, re-attach to network and send data report every time, what consumes a lot of energy. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
||||||
The usage of system off configuration can be beneficial from the perspective of overall power consumption for the scenarios, when the device has relatively big sleep interval and the system boot happens rarely. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
It was proven by measurements that an ICD device achieves better power consumption with the system off enabled for sleep intervals bigger than 15 minutes. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
||||||
Additionally, the system off solution disables RAM retention, what results in losing the data that could be potentially stored there, like for example diagnostic logs. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
||||||
This feature is disabled by default, and it is available only for the ``nrf54l15dk/nrf54l15/cpuapp`` target. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
To enable it, set the :kconfig:option:`CONFIG_SAMPLE_MATTER_SYSTEM_OFF` Kconfig option to ``y``. | ||||||
You can test the sample configuration that enables system off and configures the device to wake-up every 30 minutes, by applying a dedicated overlay file. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
To build the sample with the overlay file included, run the following command: | ||||||
|
||||||
.. parsed-literal:: | ||||||
:class: highlight | ||||||
|
||||||
west build -b nrf54l15dk/nrf54l15/cpuapp -- -DFILE_SUFFIX=release -DEXTRA_CONF_FILE="overlay-system_off.conf" | ||||||
|
||||||
.. _matter_smoke_co_alarm_network_mode: | ||||||
|
||||||
Remote testing in a network | ||||||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# | ||
# Copyright (c) 2024 Nordic Semiconductor ASA | ||
# | ||
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause | ||
# | ||
|
||
# This overlay file provides sample configuration for the system off usage scenario. | ||
# The configuration is supported only on the nRF54L15 target. | ||
|
||
CONFIG_SAMPLE_MATTER_SYSTEM_OFF=y | ||
|
||
# Use sleep period equal to 30 minutes. Align OpenThread timeout configs to respect this value. | ||
CONFIG_CHIP_ICD_SLOW_POLL_INTERVAL=180000 | ||
CONFIG_CHIP_ICD_IDLE_MODE_DURATION=180 | ||
CONFIG_OPENTHREAD_MLE_CHILD_TIMEOUT=180 | ||
CONFIG_OPENTHREAD_CHILD_SUPERVISION_CHECK_TIMEOUT=180 | ||
CONFIG_OPENTHREAD_CHILD_SUPERVISION_INTERVAL=180 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add the changelog entry as a comment to my #19240 and remove it from this PR.