Debugging Matter Over Thread power consumption

I have built the Matter temperature sensor sample for the nRF5340 running on an nRF7002DK (no WiFi enabled). The power consumption measured with a PPK2 is coming in higher than that predicted by the online estimator tool. The reason is that in between the expected periods of Matter Thread activity, the processor is clearly being activated every 10ms for about 3ms. There is nothing I can see that should cause anything in the example application to require servicing every 10ms. I have not had much success in debugging this, in part because the Matter code is heavily templated, and it often seems to be impossible to place breakpoints where I'd like them. It is also unclear if the Matter code is being built with full debug info since build\temperature_sensor\modules\connectedhomeip\args.gn contains is_debug = false despite debug info for Matter being enable in Kconfig.

Is there some strategy I can use to figure out what is causing the system to wake up every 10ms?

  • I went back and disabled a few more options having to do with logging and was able get rid of the 10ms wake up. I am not sure exactly which one it was, since I'd tried disabling some of them previously. I guess my suggestion would be to start with prj_release.conf when measuring power initially. Then add options you might like to add and check to see what happens to power consumption after adding each one.

    However, if anyone has suggestions for how to debug Matter code, I'd be interested in how.

  • Hi Robert, 

    Good to hear that the issue was resolved. 

    Please refer to the following documentations:

    1) Matter over Thread: Power consumption and battery life

    This goes through factors which affect power consumption, setup for measurements and performed measurements and results. 

    2) Reducing power consumption in Matter

    This goes through the use of low power configurations and which peripherals and modules to disable if they aren't in use. There is also information here about enabling device power management, using sleep modes, disabling serial logging and LEDs as well as the use of RAM power-down in order to decrease power consumption. You can also read in this about operating modes and switching to idle mode (using the given Kconfig options) to save power. 

    Best Regards,

    Samruddhi

Related