Closed glennmullerar closed 9 months ago
@glennmullerar It's configurable by CHIP_CONFIG_MRP_LOCAL_ACTIVE_RETRY_INTERVAL
and CHIP_CONFIG_MRP_LOCAL_IDLE_RETRY_INTERVAL
, the detailed description about these two parameters are here:
Could you modify the default values and have a test, let us know if it works for you. We will make it configurable via IDF menuconfig.
Thank you for your answer.
I see that by changing the value the number of steps at the time of the build changes.
However, is there a chip-tool or other command that would allow to know if it is well known as SED by the other devices in the network?
It could be achieved by the new ICD (Intermittently Connected Devices) feature, and there is a clientmonitoring
cluster cmd can be used by chip-tool.
But the feature is currently not supported in esp-matter yet, since the feature is still under developing, we will add the support in short future. Could you let us know which SoC are you using, Wi-Fi or Thread?
Thanks for the answer, so the best solution is to wait. Do you have any idea of a release date? The aim is to reduce the power consumption of a WiFi device.
I'm trying to make a SED with ESP32-H2 using thread. Is that not supported yet as well? @chshu
@marciogranzotto The H2 sleep mode is not supported yet (IDF and esp-matter), will keep you posted.
What about ESP32C6? Is it possible to create Thread Sleep End Device on ESP32C6 basis?
@chshu is it posible with the C6?
The aim is to reduce the power consumption of a WiFi device. @glennmullerar If it's a Wi-Fi device, you don't need to wait for the ICD feature, you can just enable the Wi-Fi power save mode (example).
@Gonta01 @marciogranzotto To enable the Thread Sleepy End Device on H2 and C6 for Matter application, the following two tasks need to be done:
We target to have the two features ready by the end of July.
Hello @chshu, I'm doing a research about Matter for my final project and I was testing the power consumption of the esp32-c3 with Matter examples (Light and Light Switch) using WI-FI. The result amazed me because it was in mA order when typically these devices consumptions are around µA. I attach a screencapture below of my power analyzer.
(Light Switch example)
Is it possible to make these examples (at least the Light Switch example) an Sleepy End Device?
I’m’also looking for this feature in WiFi and Thread.
I want to see the average power consumption we can expect with esp32-c6 in wifi and thread as sleepy end device.
The objective is to compare nRF52 vs ESP32-C6.
I prefer the esp ecosystem but high power consumption will not be acceptable for my application.
@chshu I see that the Light Sleep support for Thread in esp-idf is already implemented. Is there any news about the ICD/SED feature in esp-matter?
Looking forward for it so I can get my product working!
@LinJiaDeng @caipiblack @marciogranzotto The Thread light sleep on H2 and C6 are all supported in ESP-IDF now, you may first refer to the H2 datasheet for some power consumption data, and evaluate the H2 / C6 power consumption using this example: https://github.com/espressif/esp-idf/tree/master/examples/openthread/ot_sleepy_device.
We are actively adding the ICD support to esp-matter, will posted here once it's ready.
@chshu any news? If there's anything I can help with on the implementation, I would be happy to
@marciogranzotto The ICD feature itself has been supported in Matter ESP platform (https://github.com/project-chip/connectedhomeip/pull/28359), some sleep tunning work is still under progress, will update here once it's done (target to mid Oct).
The aim is to reduce the power consumption of a WiFi device. @glennmullerar If it's a Wi-Fi device, you don't need to wait for the ICD feature, you can just enable the Wi-Fi power save mode (example).
Hi @chshu,
I want to check power consumption on ESP32-C6 for Wi-Fi, as you mentioned how to enable Wi-Fi power save mode?
Do i have to change anything in the power save example?
@glennmullerar @marciogranzotto The Matter ICD support on ESP32-H2 is available in esp-matter now, please check the example: https://github.com/espressif/esp-matter/tree/main/examples/sleepy_device
@chshu just for the H2? what about C6?
The example does not compile for the C6 out of the box. I was able to make it compiling after I've removed the espressif/mdns and /insights packages and a few other minor h2->c6 renaming. For HomeKit commissioning I had to comment out the BLE Sleep changes. Even though, I'm not 100% sure if the example works as expected. I have a cheap USB power meter that says that my C6 still needs 40mA / 200mW which should be way too high. Light sleep on ESP should take 0.8 mA / 4mW.
Can you tell me how to check which mode the ESP32 is currently in and if this behavior is expected? Furthermore, could you share some power consumption values for the H2?
@marciogranzotto @flashspys Currently the example only supports ESP32-H2 Thread Sleepy device.
C6 Thread is pending on a sleep issue, will be supported once the issue is fixed in IDF. C6 Wi-Fi support will be added later.
@chshu any news on the C6 sleep issue? Btw, will this be on which version of the IDF? I'm currently developing against release/v5.1
@chshu any news on the C6 sleep issue? Btw, will this be on which version of the IDF? I'm currently developing against release/v5.1
The C6 sleep issue has been fixed in IDF, but some compiling issues (as mentioned in https://github.com/espressif/esp-matter/issues/366#issuecomment-1771792028) depend on some changes in other repos, the fixes are under merging.
We will prepare a patch for your testing soon, you may also evaluate the Matter sleep feature on H2 first.
The C6 sleep is supported on the latest IDF master, and the backport changes will be added to v5.1 ASAP. Another question is that there are some managed components in the chip component which has compiling issues when disabling LWIP_IPV4. Here are two patches for the connectedhomeip submodule and esp-matter repo which you can apply to test sleep on ESP32-C6.
0001-connectedhomeip-changes.txt 0001-esp-matter-changes.txt
[Questions about features added to ESP-IDF v5.1] Does this mean that the WIFI sleep (SED, ICD) function is supported in the ESP32C6 Matter project? Does this mean that the Thread sleep function is supported in the ESP32C6 Matter project? Does the ESP32C3 Matter project also support WIFI sleep (SED, ICD) function?
[Questions about features added to ESP-IDF v5.1]
Does this mean that the WIFI sleep (SED, ICD) function is supported in the ESP32C6 Matter project?
I can not confirm WiFi sleepy, I will have to try later, but I can confirm that Power Management (PM) and ICD server can be enabled on the c6. Does this mean that the Thread sleep function is supported in the ESP32C6 Matter project?
Yes. After following the patches advised from Espressif, modifying the upstream project chip cmake and idf component files, plus a little bit of tweaking for my project to reenable secure-cert-manager, I was able to make a Matter over Thread Sleepy generic_switch endpoint on the C6 - https://github.com/espressif/esp-matter/assets/5651603/8d2431ba-2cc5-4e57-b3b3-dabd95e6a89f
Does the ESP32C3 Matter project also support WIFI sleep (SED, ICD) function?
I cannot confirm, I don't have a C3, but if WiFi sleep works for the C6 I bet it would work for the C3.
I also applied the patches, using esp-idf commit a36d8bc742
(release/v5.2) and esp-matter commit 96dc30b
(release/v1.2).
However my ESP32-C6-DevKitC-1 keeps crashing when running the sleepy_device
example:
Can you please advise?
@Pips801 could you tell me which commits of the esp-idf and esp-matter you use to achieve C6 Thread sleepy device? I would greatly appreciate it!
@Pips801 could you tell me which commits of the esp-idf and esp-matter you use to achieve C6 Thread sleepy device? I would greatly appreciate it!
I will have to go check the build environment, but it is IDF v5.1.1 with the latest matter 1.2 repository for esp-matter.
Can you post your sdkconfig for the sleepy c6? I ended up copying most everything from the Sleepy C2 example code and the C2 sdkcondig.
I did also encounter some sporadic crashes like yours with the Bluetooth stack. One thing that I changed, that may help, was changing CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING
from y
to n
in the sdkconfig for the C6. since the panic happens right at a ble-related function in the ble stack.
I've tried with both CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING
set to y
and to n
. I also tested the sleepy_device
example, and the light
example with the sleepy_device changes applied to it.
I keep getting the same crash on ble_lll_sched_check_remaining_entries
, which appears to be on the lower lever bluetooth driver of the ESP32-C6.
I also tested with multiple ESP32-C6-DevKits.
I'll try to zip my project later and post it here.
Does this mean that the WIFI sleep (SED, ICD) function is supported in the ESP32C6 Matter project?
No, Wi-Fi ICD is still not supported for our platform. In fact, there is no SED
for Wi-Fi devices. The Wi-Fi should wake up to keep the connection per 100ms~500ms
Does this mean that the Thread sleep function is supported in the ESP32C6 Matter project?
Yes, the Thread sleep is supported for ESP32C6 for IDF branch release/v5.1(commit id 47c89441c16e0933474c8dc7d8ca9b3f75d2a1da), and you can build the sleepy-device examples for C6 if you have applied the two patches
Does the ESP32C3 Matter project also support WIFI sleep (SED, ICD) function?
No.
Can you please advise?
@marciogranzotto @Pips801 Sorry I forgot to add the phy configuration CONFIG_ESP_PHY_MAC_BB_PD=y to the C6's sdkconfig file in the patch file, please add that configuration option and build the example based on IDF release/v5.1(commit id 47c89441c16e0933474c8dc7d8ca9b3f75d2a1da).
@wqx6 Thanks a lot! That did the trick!
Do you guys have power consumption measurements of the ESP32-C6 in ICD mode?
I see that there is a plot for ESP32-H2 Devkit-C on the examples/sleepy_device/README
, but no data about the C6
Here is the current picture of C6 with the same default ICD parameters as H2.
Hi All, Both H2 and C6 ICD support is ready, please try out this example: https://github.com/espressif/esp-matter/tree/main/examples/icd_app.
Note that the IDF release/v5.1 branch with the commit id 931eaf7320 or later, should be used for C6 sleep.
@marciogranzotto Did you manage to reduce esp32 consumption, and what values did you measure? My measurements are esp32h2 3mA and esp32c6 9mA this is too much consumption.
Hello,
In icd_app readme (https://github.com/espressif/esp-matter/tree/main/examples/icd_app) it say's:
Note: For ESP32-C6, please use ESP-IDF on branch release/v5.1 with the commit id 931eaf7320.
So:
Hello,
Hello,
I would like to create a SED. In the Matter specification it is indicated that we have to change the value of the field
SLEEPY_IDLE_INTERVAL
orSLEEPY_ACTIVE_INTERVAL
depending on the mode we want to use. However, I couldn't find anything in thesdkconfig
and in the esp-matter files (esp-matter/components
). Is it possible to do this or is it a feature that will come later.Most probably I did not look in the right place.
Thanks in advance for your answer.