scruss, the issues with lightsleep are not specifically RP2350 issues.
Relying on the author of https://github.com/micropython/micropython/pull/16313 to fix everything about lightsleep is not realistic.
First, your comment about machine.idle(), I just looked at the implementation and I do not see it doing anything to reduce power.
I did not do a test and measure power consumption. I could be wrong.
As I stated in my initial post in this thread the RP2040 and RP2350 have powerful capabilities to selectively turn off hardware blocks.
lightsleep is a blunt tool and one size does not fit all.
Going back to its initial implementation it turned off way too much hardware.
Today it still turns off too much for some people.
What I am proposing will give developers the control of which hardware blocks are running while at least one processor is running or DMA is active.
In addition they can selectively turn off more hardware blocks while sleeping.
This would include during calls to time.sleep(), machine.idle(), and anywhere the micropython internals do a _wfi() or _wfe().
With what I am proposing lightsleep is pretty much unneeded.
Relying on the author of https://github.com/micropython/micropython/pull/16313 to fix everything about lightsleep is not realistic.
First, your comment about machine.idle(), I just looked at the implementation and I do not see it doing anything to reduce power.
I did not do a test and measure power consumption. I could be wrong.
As I stated in my initial post in this thread the RP2040 and RP2350 have powerful capabilities to selectively turn off hardware blocks.
lightsleep is a blunt tool and one size does not fit all.
Going back to its initial implementation it turned off way too much hardware.
Today it still turns off too much for some people.
What I am proposing will give developers the control of which hardware blocks are running while at least one processor is running or DMA is active.
In addition they can selectively turn off more hardware blocks while sleeping.
This would include during calls to time.sleep(), machine.idle(), and anywhere the micropython internals do a _wfi() or _wfe().
With what I am proposing lightsleep is pretty much unneeded.
Statistics: Posted by cpottle9 — Sat Dec 14, 2024 9:13 pm