🤖Have you ever tried Chat.M5Stack.com before asking??😎
    M5Stack Community
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    M5Paper EPD power consumption

    Cores
    11
    54
    202.3k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      tatar-andrei
      last edited by

      Hi guys,

      Just got my M5Paper these days and was playing with it, measuring the power consumption, figuring out the best way to approach writing a low power application for it. I really love the form factor and the capabilities. Figured out how to send esp32 in deep sleep and wake it via touch gestures (using doze mode).

      I disconnected the internal battery and connected a lab power supply (4.2V) and tested the calculator app (while idling - no touch events, no screen updates)

      • 169 mA - with the default app
      • 93 mA - with EPD power disabled

      My question is: why does the EPD consume so much power (almost half!) while the screen is idle? I was expecting it to be close to nothing.
      Do I have a defective unit? Or can this be optimized in the EPD driver?

      R 1 Reply Last reply Reply Quote 1
      • felmueF
        felmue
        last edited by

        Hello @tatar-andrei

        I don't have my M5Paper yet, but looking at the schematic and the backside of the device, I think there is only one way to lower the power consumption considerably and that is by fully shutdown the device by turning off the MOSFET.

        The hardware architecture used in M5Paper doesn't allow for low power consumption in ESP32 deep sleep / light sleep mode since too many IC (SY7088 boost to 5v, SY8003 5v -> 3.3v) need to stay powered on to keep the ESP32 powered which is required for these sleep modes.

        At this point I can only give you figures for M5CoreInk which uses a similar architecture. In shutdown mode I get a current (at the battery) of about 2.5 uA.

        When I get my M5Paper I plan on doing some similar measurements.

        Thanks
        Felix

        GPIO translation table M5Stack / M5Core2
        Information about various M5Stack products.
        Code examples

        1 Reply Last reply Reply Quote 0
        • T
          tatar-andrei
          last edited by

          Yeah, I also checked the schematic. When the main MOSFET is powered down, the only way to wake up the device automatically is via the RTC chip (alarm or timer interrupt) and without any previous state (unless written to FLASH/SD). This is a good way of shutting down the device completely.

          But the power consumption is actually ok with the ESP32 in deep sleep and the touch in doze mode. This will not be a "months on a battery charge" kind of application.

          However I'm also looking into intermediate lower power modes, that's why I'm investigating different modes of operation of the EPD. Unfortunately there's not much info on IT8951, only drivers written by others. I'll investigate the standby power mode.

          710mW for a calculator app that is just waiting for user input seems ridiculous! I bet it could get down in the double digit (maybe even single digit!) mW.

          S felmueF 2 Replies Last reply Reply Quote 0
          • felmueF
            felmue
            last edited by

            Hello @tatar-andrei

            understood. I am very interested in what you will discover in that regard as I have very little experience so far with EPDs.

            I guess you have seen the documents @loboris shared here.

            Thanks
            Felix

            GPIO translation table M5Stack / M5Core2
            Information about various M5Stack products.
            Code examples

            1 Reply Last reply Reply Quote 0
            • T
              tatar-andrei
              last edited by

              @tatar-andrei said in M5Paper EPD power consumption:

              169 mA - with the default app
              93 mA - with EPD power disabled

              So it seems that sending IT8951 in standby mode results in

              • 75mA power consumption.

              Which is a bit weird given that EPD power disabled (GPIO 23) takes about 93mA... Maybe it sources some current from the GPIO pins?

              1 Reply Last reply Reply Quote 0
              • S
                sok @tatar-andrei
                last edited by

                @tatar-andrei said in M5Paper EPD power consumption:

                When the main MOSFET is powered down, the only way to wake up the device automatically is via the RTC chip (alarm or timer interrupt) and without any previous state (unless written to FLASH/SD). This is a good way of shutting down the device completely.

                Hello, I have a question about this - can we power down this main MOSFET during ESP32 program? ( as I understand, you about FET1 between VBAT_IN and VBAT on the schematic which powered step-up to 5V, which powered stepdown to 3.3V which powered ESP32)

                It's hard for me to answer this question myself when seeing such schematic - it's really burning my mind.

                If it's possible, we have EEPROM to use it like RTC, and lots of pseudo-low-power projects can be done on M5Paper.

                1 Reply Last reply Reply Quote 0
                • felmueF
                  felmue
                  last edited by

                  Hello @sok

                  you should be able to power down by calling M5.shutdown().

                  Thanks
                  Felix

                  GPIO translation table M5Stack / M5Core2
                  Information about various M5Stack products.
                  Code examples

                  1 Reply Last reply Reply Quote 0
                  • S
                    sok
                    last edited by

                    Hello @felmue

                    Thanks for showing the start point of the search. (I go to Github to see the realization of this function and also to see how here working with RTC alarm, gotten PINs, and schematic becomes 100 times clear for me) I can answer my question myself.

                    At normal POWER_OFF state - PWR_EN point in schematic setted to HIGH (VBAT_IN -> R35 -> D10 - >C94), it,s HIGH state block power from VBAT_IN -> VBAT use FET1 to close this path.

                    When we push button(and hold it for some seconds) we open path PWR_EN ->D10 -> KEY_PUSH -> GND, which set PWR_EN to LOW and open path VBAT_IN -> FET1 -> VBAT. VBAT powered chain of DC, and power our ESP32. After start ESP32 push the virtual button(FET2) using PS_ON, which opens path PWR_EN->FET2->GND, and stable hold power to DC(and sensors and esp32), and now we can realese push button, and all will still work.

                    When we set ALARM to RTC PCF8563, and then release FET2, we allow to PWR_EN become HIGH again through 100k resistor R35. When it becomes HIGH, it automatically powers off our ESP32, DC-DC, and sensors. But RTC PCF8563 will still work cause it powered over VBAT_IN.

                    When alarm time becomes - PWR_EN setted low through path PWR_EN -> D7 -> RTC_ALARM - >INT - > GND. Which allow ESP32 to start again.

                    Thanks!

                    1 Reply Last reply Reply Quote 0
                    • T
                      tatar-andrei
                      last edited by

                      Yes, it's pretty straight forward to power down the ESP32 completely and the power draw in that state is about 1.5 uA.

                      I did play around more with power down states and I managed to get a light sleep mode with fast wakeup from touch at around ~9mA.

                      I didn't get to play around with doze mode yet. I hope to get 1-2 mA when touch is in doze (gesture?) mode and ESP32 in deep sleep.

                      C J 2 Replies Last reply Reply Quote 0
                      • B
                        bricox
                        last edited by

                        Hello @tatar-andrei,
                        I am also going to use a power supply to continue analyzing the consumption of the various components because IT consumes a lot.
                        Can we turn it off with a mos then turn it on again?
                        Will it be able to reset itself without the ESP32 sending it an initialization sequence?
                        I will study this ...
                        SYL

                        1 Reply Last reply Reply Quote 0
                        • C
                          careyer @tatar-andrei
                          last edited by

                          @tatar-andrei said in M5Paper EPD power consumption:

                          1.5 uA.

                          @tatar-andrei could ou please share how you managed to get down to 1.5 uA? Is the ESP32 still in deepsleep in this state and can be woken up via RTC/timer or is the unit completley turned off and needs some user-interaction in order to wake up?
                          (I have no M5paper yet and want to find out if it is suitable for my project).

                          I am highly interested in how much amperage is drawn in deepsleep with the RTC configured to wake the ESP32 up in regular intervals. Could you please test this? Thanks man!

                          1 Reply Last reply Reply Quote 0
                          • T
                            tatar-andrei
                            last edited by

                            could you please share how you managed to get down to 1.5 uA?

                            Turn off the mosfet that powers the ESP32 (M5.disableMainPower(); - https://github.com/m5stack/M5EPD/blob/main/src/M5EPD.h#L49). In this mode everything but the external RTC (BM8563) is powered off.

                            In order to wake up from this mode you either need to press the button on the side, or use the external RTC interrupt.
                            The M5 lib contains a few functions that do exactly this (setup the external RTC to wakeup the board in a few seconds): https://github.com/m5stack/M5EPD/blob/main/src/M5EPD.cpp#L133

                            B 2 Replies Last reply Reply Quote 0
                            • B
                              bricox
                              last edited by

                              Hello @tatar-andrei,

                              With a supply of 4.2V, U(R35)=11mV, equivalent to 1.1µA for RTC and zener D11current.

                              Equivalence names table
                              0_1609361186835_5027511b-cee9-4100-a03b-8bcdc3b8b6f9-image.png

                              There is inversion between Left and Right, why not having simply called the buttons Top and Bottom?

                              SYL

                              B 1 Reply Last reply Reply Quote 0
                              • B
                                bricox
                                last edited by

                                Hello,

                                i also made a fisrst compact schema to facilitate understanding

                                0_1609362387445_6bedbef9-cc33-48d4-96bd-970bd15532db-image.png

                                SYL

                                1 Reply Last reply Reply Quote 0
                                • B
                                  bricox
                                  last edited by

                                  Hello,

                                  If the repository is facing the wheel,

                                  0_1609397793398_abc6142e-f0dd-4827-9167-49a0b347486c-image.png

                                  "code source" is true, "SCH-name" is false

                                  0_1609397946546_5e5d7b82-4846-499d-8f3b-096794dee6ba-image.png

                                  SYL

                                  1 Reply Last reply Reply Quote 0
                                  • B
                                    bricox
                                    last edited by

                                    Hello,
                                    I completed the schema with VUSB_IN, VSYS and OR fonction with D9,D12

                                    0_1609408092751_1b84713e-842f-4d87-af32-590bbc36dd6f-image.png

                                    SYL

                                    1 Reply Last reply Reply Quote 1
                                    • MattMM
                                      MattM
                                      last edited by

                                      I just received my M5Paper and I can not get a 100% charge? The power consumption also seems high. I am only observing the battery level indicator relative to device use. Is there a problem with the firmware? Is the Wifi function draining the battery prematurely?

                                      1 Reply Last reply Reply Quote 0
                                      • B
                                        bricox
                                        last edited by

                                        Hello,
                                        On mine, the maxi level indicator of charge is 86% corresponding to 4.18V
                                        I measured USB current with the program "Factory test" and a serial USB device named "UT25".
                                        The value is 131 mA, without interraction.
                                        I also wrote personal comments about all GPIOs (in french, my native language):
                                        0_1609540042308_d0d7e2f2-2754-4c13-bdb0-eac50a0d8423-image.png
                                        All GPIOs are represented (except non-existent ones : 20, 24, 28, 29, 30, 31)
                                        SYL

                                        1 Reply Last reply Reply Quote 1
                                        • R
                                          ricecake @tatar-andrei
                                          last edited by

                                          @tatar-andrei
                                          Hello!

                                          I was wondering if you could provide some reference for how you got into doze mode/wake on touch? I've been trying for a few days now and for the life of me can't seem to make any meaningful progress.

                                          1 Reply Last reply Reply Quote 0
                                          • T
                                            tatar-andrei
                                            last edited by

                                            You can check other GT9xx drivers like (http://read.pudn.com/downloads710/sourcecode/embedded/2849392/gt9xx.c__.htm).

                                            I will need to play some more with it. I'll probably post here a link to my repo once I push the code.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post