Hi all,
after I received the m5Paper a few days ago, I was very disappointed with its power consumption. With a small test program that should simply display the actual time updated every minute, the battery was low after a few hours using only EPD.Sleep(). I found several posts describing the power and battery management of the M5Paper as very poor from design. While searching this forum i came across the two ways how to save power consumption.
- M5.shutdown which only works if the M5Paper is not connected to USB Power Supply
- esp_deep_sleep_start() with esp_sleep_enable_timer_wakeup and gpio_hold_en((gpio_num_t)M5EPD_MAIN_PWR_PIN) before.
Because I wanted to compare these two ways in there ability to save power better I first tested the M5.shutdown example from m5-docs.
#include <M5EPD.h>
M5EPD_Canvas canvas(&M5.EPD);
void setup()
{
M5.begin();
M5.EPD.SetRotation(90);
M5.TP.SetRotation(90);
M5.EPD.Clear(true);
M5.RTC.begin();
canvas.createCanvas(540, 960);
canvas.setTextSize(3);
canvas.drawString("Press PWR Btn for sleep!", 45, 350);
canvas.drawString("after 5 sec wakeup!", 70, 450);
canvas.pushCanvas(0,0,UPDATE_MODE_DU4);
}
void loop()
{
if(M5.BtnP.wasPressed()){
canvas.drawString("I'm going to sleep.zzzZZZ~", 45, 550);
canvas.pushCanvas(0,0,UPDATE_MODE_DU4);
delay(1000);
M5.shutdown(5);
}
M5.update();
delay(100);
}
After that was successful, i did several tests with the esp_deep_sleep_start() function.
Since these did not lead to the goal, I wanted to expand the M5.shutdown example more to my requirements.
Now I had to realize that this simple example no longer runs on my M5Paper.
After pressing the button, the message "I'm going to slepp.zzzZZZ" appears in the display, but nothing happens.
It makes no difference whether the M5paper is connected to the USB or not.
Is it possible that the previous tests with gpio_hold_en((gpio_num_t)M5EPD_MAIN_PWR_PIN) set something permanently,
which is now interfering with the execution of m5.shutdown and its waking up?
Any hints for solving this problem?
Thx