Comment by travisgriggs
13 hours ago
I work on the micros that aren’t plugged I to a grid. So solar and batteries and the like. In that world, power consumption is everything. Interrupts and aggressive sleeping of your processor are you biggest tool.
Does anyone have any experience with current draw of typical pieces of “firmware” using this? I see that it’s on the larger side of what feels like micro, BUT tomorrows micro has been growing heaps over yesterdays micros for a long time, so I can ignore that.
Compared to other microcontrollers: ESP32 is very power hungry. Shiny displays are very power hungry, Wi-Fi is power hungry. So expect to draw about 5 watts/hour continuously while in operation with all bells and whistles.
With this said (I'm also using them for off-grid) you will need to put them to sleep and only use the display when absolutely needed for most scenarios. I've recently started using devices with e-paper display which at least solve that nuisance of the display power draw: https://www.waveshare.com/wiki/ESP32-S3-ePaper-1.54
The last thing to keep in mind is heating. They will warm quite a bit and you should consider a way to either keep them cooled or make them sleep enough to cooldown, otherwise they will reboot or stop working until they are cooled again.
Depends... do you need wifi, screen and others always on? can you wake some on a timer? on user interaction? on interrupts?
https://lastminuteengineers.com/esp32-sleep-modes-power-cons...
You can use those sleep modes in micropython as well
https://randomnerdtutorials.com/micropython-esp32-deep-sleep...
> 5 watts/hour
Typo I'm guessing, but I found this unit of "energy acceleration" amusing.
"Gotta go fast" :-)
In my language we say it colloquially that way, turned out wrong in English. Should have been 5 Wh.
2 replies →
I haven't used MicropythonOS per se, but Micropython is pretty efficient, and can utilise interrupts and sleep modes
I have a charger "controller" that I developed in MicroPython for an SAMD51 board. It can do sleep just fine, as long as you set up interrupts properly.
But I just need to do a bunch of ADC readings and some simple if/else conditions, so it doesn't require any real non-trivial computations.