Hello,
I would like to know if I can run M5stack paper while connected to the battery?
In this case the M5 stack paper will never shutdown, does this damage the M5 stack paper/ESP 32/battery/diaplay etc?
Posts made by ScheduleDisplay
-
Can i run M5stack paper while connected to the battery?
-
RE: Is it possible to wakeup M5stack paper from the shutdown mode using Port A, B or C?
@felmue
Thank you very much for your reply and help.
The code is working now. The M5 paper is now waking up with and without the USB charger connection. :)Just a quick question. Now we have commented out the below lines, so does that means that the battery will drain out much faster as the M5 paper is in light sleep mode?
M5.shutdown();
M5.disableEXTPower();
-
RE: Is it possible to wakeup M5stack paper from the shutdown mode using Port A, B or C?
@felmue Hello,
Thank your for the reply.
I updated the typo and now using the correct GPIO26 pin, but the behavior of E-paper is still the same. -
RE: Is it possible to wakeup M5stack paper from the shutdown mode using Port A, B or C?
@felmue
Hello,
Today I did some testing with the external button to wakeup the M5 stack paper from the deep sleep mode.
I connect the button at the PORT B of Epaper. please see the attached pictures.-
Not connected to the charger: The Epaper didn't woke up from the deep sleep, as expected, as you said.
-
Connected with the charger: The Epaper continously keep restarted after executing the shutdown command, until I unplug the button from the PORT B.
Do you have an idea about this behavior, what is going on with Epaper?
This is the code I am running on Epaper
#include <M5EPD.h> #include <Arduino.h> M5EPD_Canvas canvas(&M5.EPD); #define WAKEUP_PIN_26 26 // GPIO pin on PORT B (G26) #define WAKEUP_PIN_33 33 // GPIO pin on PORT B (G26) void setup() { wakeupM5OnButtonPressMode(); } void loop() { } void wakeupM5OnButtonPressMode(){ M5.begin(); M5.EPD.SetRotation(90); M5.EPD.Clear(true); canvas.createCanvas(540, 400); canvas.setTextSize(4); gpio_hold_dis((gpio_num_t)M5EPD_MAIN_PWR_PIN); gpio_deep_sleep_hold_dis(); // Display battery voltage before shutting down Serial.print("\nVoltage before shut down: " + String(M5.getBatteryVoltage() / 1000.0)); // Update the e-ink display with messages canvas.drawString("Press button on PORT B to wake up!", 5, 160); canvas.drawString("Going to sleep in 5 secs...", 5, 200); canvas.pushCanvas(0, 0, UPDATE_MODE_DU4); delay(5000); // Enter deep sleep shutdownEPD(); } void shutdownEPD() { Serial.println("\nShutting down..."); // Display voltage after shutdown (for debugging purposes) Serial.print("\nVoltage after shutdown: " + String(M5.getBatteryVoltage() / 1000.0)); Serial.print("\n*********************************************\n"); // Prepare for deep sleep M5.shutdown(); // Shutdown the display and peripherals M5.disableEPDPower(); // Disable e-paper power M5.disableEXTPower(); // Disable external power supply // Configure GPIO for wake-up on button press (PORT B - G26) pinMode(WAKEUP_PIN_26, INPUT_PULLUP); // Enable internal pull-up for stability esp_sleep_enable_ext0_wakeup((gpio_num_t)WAKEUP_PIN_33, LOW); // Wake when pin goes LOW // Hold power pins to preserve state during deep sleep gpio_hold_en((gpio_num_t)M5EPD_MAIN_PWR_PIN); gpio_deep_sleep_hold_en(); // Enter deep sleep esp_deep_sleep_start(); }
-
-
RE: Is it possible to wakeup M5stack paper from the shutdown mode using Port A, B or C?
@felmue Thank you very much for your reply.
-
Is it possible to wakeup M5stack paper from the shutdown mode using Port A, B or C?
Hello,
I have understand that the M5 stack paper can wakeup from the shutdown mode by long pressing the side button but sometimes it is not feasible.Is it possible to configure M5 stack paper in a way that:
- It will wake up from short press of the side button?
- It will wake up using Port A, B or C by connecting the external button? e.g this button from M5
-
RE: M5 Paper SD image display stopped working
Hello,
I am facing the same issue and not able to display the images on to the M5 Paper. I have tried bothcanvas.drawPngFile(SPIFFS, "/smiley.png", 0, 0);
andcanvas.drawJpgFile(SPIFFS, "/smiley.jpg", 0, 0);
but no luck.
I already included#include "SPIFFS.h"
and initialized SPIFF usingM5.begin(true, true, true, true, false);
. The png and jpg files are inside thedata
folder.SPIFFS.open("/smiley.png")
is able to open the file however it is not printing any file content on the console.I think it is required to format the SPIFFS for the first time, as mentioned here so I followed these steps but ESP32 Sketch data upload is not appearing in arduino 2.0.
However I am able to display the png image using
canvas.drawPngUrl("http://imageUrl");
but it is taking more time and quite slow.Could you please help me in understanding what I am doing wrong?
@simonm @felmue -
RE: M5Paper text
Hello,
I Got the GFX font header file (by converting the Roboto.ttf file). Loaded the font file usingcanvas.setFreeFont(&Roboto_Medium50pt7b)
and then display the text usingcanvas.printf(textString.c_str());
.
It is working fine and display the text properly but when I am giving some special characters äöü then they are not appearing on M5stack paper.
Can someone please guide me what I am doing wrong? Am I missing something?Thanks
The link to my question can be found here
-
RE: M5Paper font
Hello,
I Got the GFX font header file (by converting the Roboto.ttf file). Loaded the font file usingcanvas.setFreeFont(&Roboto_Medium50pt7b)
and then display the text usingcanvas.printf(textString.c_str());
.
It is working fine and display the text properly but when I am giving some special characters äöü then they are not appearing on M5stack paper.
Can someone please guide me what I am doing wrong? Am I missing something?Thanks
The link to my question can be found here
-
M5stack paper not showing German characters "äöü"
Hello,
I Got the GFX font header file (by converting the Roboto.ttf file). Loaded the font file usingcanvas.setFreeFont(&Roboto_Medium50pt7b)
and then display the text usingcanvas.printf(textString.c_str());
.
It is working fine and display the text properly but when I am giving some special charactersäöü
then they are not appearing on M5stack paper.
Does anyone know what could be the problem? am I missing something?Thanks
-
RE: How long M5stack-paper can sleep for?
@felmue Hello Felix.
Thank you very much for your help.
I get it working using the hour field with some little changes. -
RE: How long M5stack-paper can sleep for?
@felmue Hello Felix.
Is it possible to provide me the working code snippet with longer than 4 hours sleep duration?Or
Can you please check if there is any problem with the code snippet I posted earlier?
Thanks
-
RE: How long M5stack-paper can sleep for?
@felmue Hello Felix.
-
I also already had
delay (10)
beforeM5.shutdown();
Do I2CEnable need to be TRUE in M5 initialization? to use I2C commands?
I have it False in M5 initialization callM5.begin(true, false, true, true, false);
, could this be a problem?
However, it is working fine if the sleep duration is less than 4 hours -
M5Paper has 100% battery, I can restart it manually by pressing the side button. The battery is showing as 100%
-
-
RE: How long M5stack-paper can sleep for?
@felmue I tried longer sleep duration of 9 hours and unfortunately the device didn't wakeup.
Is it possible thatM5.RTC.setAlarmIRQ(wakeupDate, wakeupTime);
also has a limitaiton of max 4 hours of sleep duration? -
RE: How to get M5stack-paper actual correct voltage during charging?
@felmue I think 4.35v are somehow coming from the charging cable, because as soon as I connect the charging cable the
M5.getBatteryVoltage() / 1000.0
giving me4.35v
but if I remove the charging cable then I get the actual battery voltages e.g3.8v
.
Is it possible that somehow I can read the actual battery voltages even if the device is connected to the charging cable? -
RE: How to get M5stack-paper actual correct voltage during charging?
@mtylerjr Thanks for your answer. This device is great to have full control but It is not fitting in my use case.
-
How to get M5stack-paper actual correct voltage during charging?
Hello,
I am using this functionM5.getBatteryVoltage() / 1000.0;
to get the battery information of M5stack-paper and display the remaining battery status on the display. It is giving me the correct value of voltages if the M5Paper is running on a battery.
However, If I connect the M5Paper to the charging cable then this function gives4.35 vol
irrespective of the actual battery status. This displays the incorrect100%
battery status on the display.Is there a way Or any other function to get the actual correct voltages during the charging? So I can display the battery status correctly
Thanks
-
RE: How long M5stack-paper can sleep for?
Hello Felix,
Thank you very much for your reply.I updated the code according to your suggestion.
- I know the actual time so I set the actual date and time of RTC.
rtc_date_t RTCDate; rtc_time_t RTCtime; RTCDate.year = year(); RTCDate.mon = month(); RTCDate.day = day(); M5.RTC.setDate(&RTCDate); RTCtime.hour = hour(); RTCtime.min = minute(); RTCtime.sec = second(); M5.RTC.setTime(&RTCtime); Serial.print("\n Actual RTC date and time =>" + String(RTCDate.day) + "-" + String(RTCDate.mon) + "-" + String(RTCDate.year) + " " + String(RTCtime.hour) + ":" + String(RTCtime.min) + ":" + String(RTCtime.sec) );
- I also know the sleep duration in secs. for example
30 minutes (1800 secs)
. So I added these secs into the current time to get the wakeup time in the future.
int nextRereshTimeInSecs = now() + 1800; setTime(nextRereshTimeInSecs);
- Then I set the alarm using
setAlarmIRQ(const rtc_date_t &date, const rtc_time_t &time)
and shut down the M5stack-paper.
rtc_date_t wakeupDate; rtc_time_t wakeupTime; int currentYear = year(); int8_t int8_year = currentYear % 100; int8_t int8_month = month(); int8_t int8_day = day(); // Populate rtc_date_t structure wakeupDate.year = int8_year ; wakeupDate.mon = int8_month ; wakeupDate.day = int8_day; int8_t int8_hour = hour(); int8_t int8_minute = minute(); int8_t int8_second = second(); // Populate rtc_time_t structure wakeupTime.hour = int8_hour; wakeupTime.min = int8_minute; wakeupTime.sec = int8_second; Serial.print("\n Future RTC date and time =>" + String(wakeupDate.day) + "-" + String(wakeupDate.mon) + "-" + String(wakeupDate.year) + " " + String(wakeupTime.hour) + ":" + String(wakeupTime.min) + ":" + String(wakeupTime.sec) ); delay(300); M5.RTC.clearIRQ(); M5.RTC.setAlarmIRQ(wakeupDate, wakeupTime); delay(10); M5.shutdown();
Currently, I am testing it with the sleep duration of 30 minutes and it looks like working. I will test it for more than 4 hours tonight.
The question is that, do I have to use
M5.shutdown( wakeupDate, wakeupTime)
OR
is it OK what I am currently using
M5.RTC.setAlarmIRQ(wakeupDate, wakeupTime);
M5.shutdown();
-
How long M5stack-paper can sleep for?
I have programmed M5stack-Paper in a way that it connects to the WiFi, read data from Firebase and sleep for provided seconds using "M5.shutdown(Secs)". read documentation here
It is working fine if the sleep duration is less than 4 hours.
If the sleep duration is more than 4 hours then the M5 paper is waking up properly according to the given sleep duration but waking up randomly after 2 - 3 hours .
I also tried "M5.shutdown( const rtc_date_t &RTC_DateStruct, const rtc_time_t &RTC_TimeStruct)" but it didn't work as well.- Is there any limitation regarding the sleep duration for M5stack-paper?
- Is there any other shutdown function which can be used to wake it up for longer durations?
-
M5 Burner is not allowing to publish User custom firmware for M5 Paper.
Hello,
I have written the code in Arduino and created the binary file.
I have logged in to the M5 burner and tried to upload the user's custom firmware into the M5 burner, but I cannot find the M5 paper in the list of device types (please see the screenshot in the attachment). I want to burn many M5 paper devices so uploading the code one by one from Arduino is very time-consuming.
Can anyone guide me that what I am doing wrong?
Is there any other way to burn/upload Arduino code on M5 paper quickly without uploading the code one by one on M5 paper devices from Arduino?