Waveshare ESP23 Sleep / Hibernate, but still use WiFi?


We’re using Waveshare 2.13 inch e-paper cloud modules to emulate those electronic pricetags, but we’re running into the issue that we need to recharge the batteries quite often, around every couple days. They all use the following battery: “UFX 803060 3.7V 1800mAh 6.66Wh”.

In my YAML config I’ve already decreased the frequency of the refresh rate, where I try to update the screens every hour, with a full update every 8 hours, to prevent screen burn-in etc.

  - platform: waveshare_epaper
    id: ${name}display
    cs_pin: GPIO15
    dc_pin: GPIO27
    busy_pin: GPIO25
    reset_pin: GPIO26
    model: 2.13in-ttgo-dke
    rotation: 270
    full_update_every: 8
    update_interval: 3600s
    lambda: |-

I’m currently lifting off of HomeAssistant’s API to have it update the display component every time there is new data being put-in in the text-helper in HA, but the time between new updates can vary between 10 minutes or 5 days before someone comes around to pick up their shelf contents.

I’ve read around on the use of Deep Sleep for ESP32’s and having to physically wake them up before sending new data, but is there some mode sitting inbetween of “Deep Sleep” and “Awake” where it would still be able to use it’s WiFi signal to receive data on? Or would I have to require my assistants to first wake the device using the Reset pin before updating the info on the shelf tag?

I’m trying to make it as low-effort for my assistants as possible essentially, and if I can cut down the amount of steps required for them to update the shelf-contents, that’d be great :sweat_smile:

Any help here is appreciated, even if it’s resulting in me having to tell my assistants to not be lazy.



I don’t wanna be bumping, but I should be able to assume there’d be someone who has a better understanding and knows a thing or two about this topic…


No. When an ESP wakes from deep sleep, it reboots. Also, WiFi is the biggest power-hungry part of the ESP, so leaving it running would defeat the purpose of deep sleep to save battery.

What is your flow? I envision that you wake the ESP every ten minutes, check for new data, then either update the display then sleep or just go back to sleep.

Have you considered a larger battery?

I haven’t used ePaper yet, but I have a project in mind. May I pick your brain when I get into the project?

Could you incorporate a motion sensor which pulls the ESP out of deep sleep. It could then update (hopefully quick enough) for the person to read.

Cool idea. It looks like GPIO32-35 are exposed on the board and I don’t see any of them used on the schematic. Maybe use a VL53L0X for fewer false triggers than a PIR.


So to give you an idea of how it works. I work in a Makerspace where we (among other machines) 3D print a ton of stuff for students and staff of the university. Whenever a print is done, we move the prints to a little laser-cut collection-tray with the ESP in front of it that displays the request number of the printjob that we finished.

This is driven from HomeAssistant and the ESPHome plugin;

Where if you fill in the request number on the display, it sends an update to the specific ESP display, updates the display, etc etc.

Since the time of pick-up varies from 5 minutes to 3+ days, I might as well just an extra step for my assistants that when an update is sent, it puts the display to sleep, and my assistants just press the reset button to wake it up again. A bit tedious, but if there’s no other way they’ll just have to cope :stuck_out_tongue:.

Also means they’ll have to update the tag on HA before waking it, otherwise it’ll wake, get data, sleep, but not update with new data because its already sleeping after fetching present data.

Possibly, the current laser-cut design allows for a battery of specifically the size that’s included so as long as the length and height is the same, I might find a “wider” battery. I was thinking of just hooking everything up to USB’s and skip the battery, and to just have them running 24/7, but maybe sleeping and just update whenever it needs to is a more logical step anyway.

Oh well, thanks for the replies both you and @sparkydave!

Silly question. Why not just run wires to a common power supply?

Our initial thoughts were a powersupply, but we went with a battery design initially, and then laser-cut the shelves accordingly. Right now we wanna ride out the battery option until they give out, otherwise it’s a waste of time, effort and materials of the lasercutting etc etc.

Put a false bottom in the trays containing a larger battery.