Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs

Dynamically change Matter ICD Kconfig parameters

I have a Matter over thread temperature sensor, and low energy consumption is very crucial for me. Therefore, I'm using the Nrf2.7.0 SDK ICD LIT KConfig options and I found out unwanted behavior during commissioning.

My Kconfig options are:

CONFIG_CHIP_ENABLE_ICD_SUPPORT=y
CONFIG_CHIP_ICD_IDLE_MODE_DURATION=100
CONFIG_CHIP_ICD_ACTIVE_MODE_DURATION=5000
CONFIG_CHIP_ICD_SLOW_POLL_INTERVAL=30000
CONFIG_CHIP_ICD_FAST_POLLING_INTERVAL=3000
CONFIG_CHIP_ICD_ACTIVE_MODE_THRESHOLD=5000

CONFIG_CHIP_ICD_LIT_SUPPORT=y
CONFIG_CHIP_ICD_CHECK_IN_SUPPORT=y
CONFIG_CHIP_ICD_CLIENTS_PER_FABRIC=5
CONFIG_CHIP_ICD_UAT_SUPPORT=y
 
1. Commissioning fails when I set the `CONFIG_CHIP_ICD_IDLE_MODE_DURATION`value to a high duration. I experimentally tried multiple values and found the threshold to be 100 seconds. When setting a lower value, the commissioning passes without any problem, however I couldn't commission the device with a higher value than 100 seconds. I'm using an Apple HomePod mini as a thread border router.
2. Because I want to achieve as low energy consumption as possible, I set `CONFIG_CHIP_ICD_ACTIVE_MODE_DURATION` to 5000 ms and `CONFIG_CHIP_ICD_FAST_POLLING_INTERVAL` to 3000 ms. With these settings, I'm satisfied with the energy consumption, but the commissioning duration increased to approximately 4 minutes from the previous ~30 seconds when using the default values (300, 200).
 
Is there any way to solve these issues? I think setting different values when the device is in
DeviceConnectedBLE would solve the problem, but I find this post devzone.nordicsemi.com/.../can-the-compile-time-parameters-required-to-put-matter-device-into-sleep-mode-be-changed-in-run-time where it's mentioned it's not possible.
Related