Customer:
I’m trying to minimize power consumption on my Inkplate 10. My current setup:
- External wakeup with RTC (the one on the board, not the ESP32 RTC)
- RTC powered via CR2032 battery
- Using esp_deep_sleep_start() to enter deep sleep
- LED switch turned off
- Powered via the battery connector with 3.7V
I’m measuring around ~105uA in deep sleep, but the documentation mentions 22uA. Do you have suggestions for other power-saving tricks or things I might be missing?
Originally submitted via email support on 1 January 2022. Migrated to the forum for community visibility.
Soldered Support:
The Inkplate 10 in deep sleep should consume around 22uA. When you’re measuring higher current, something is staying turned on during sleep.
Note that if you power the board via the main supply, the RTC is powered through that supply, not the CR2032 battery. The CR2032 is only used when the board has no external power to keep the RTC powered and maintain time.
You might try setting pins from the MCP23017 expander as OUTPUTS - this can sometimes help reduce current consumption.
Customer:
I don’t actually need the MCP23017 for my application - I have a simple picture frame that wakes up every 24 hours, downloads and displays an image, then goes back to sleep. Would it make sense for me to cut the traces or even desolder the MCP23017, or could that cause other issues?
Soldered Support:
Please don’t cut any traces or desolder the MCP23017. Send me the code you’re testing with so I can test the Inkplate with it. You should be able to achieve 22uA with all onboard components as they are.
Customer:
I’ve attached the Arduino sketch power_test.ino I’m testing with, powered at 3.7V. I’ve also attached a screenshot of the current measurement. It’s averaging a little over 100 uA with lots of spikes occurring every ~150ms.
Attachment omitted in migration: image.png
Attachment omitted in migration: power_test.ino
Customer:
I have two Inkplates and I’m getting ~100uA on both of them, so it doesn’t appear to be a faulty unit issue.
Attachment omitted in migration: image.png
Soldered Support:
I measured the current in the basic deep sleep example and also got higher current than 22uA. It appears that something in the code is not being put to sleep - some parts of the electronics stay on, which is why the deep sleep current is larger than expected. I’ll find and fix the bug, then test your code to identify the specific problem.
Soldered Support:
We found the issue and fixed it in the library. When we ran the Low Power example from our library, the current measured about 22uA in deep sleep. In your code, you need one line to isolate GPIO 12 when calling the isolation function. I’ve added that line to your code and attached it.
Attachment omitted in migration: power_test.zip
Customer:
That worked! I’m getting 25uA now, amazing! Out of curiosity, what’s on pin 12 that needs isolation?
Soldered Support:
When working with low-power devices, small mistakes can make a big difference in current consumption. Memory is connected to pin 12, but it’s inside the ESP32 module. You need to use the isolation function on that GPIO if you need low current consumption.