E-Paper Calendar Ep.5 — Power Management and System Design
This article is migrated from Medium and translated by Gemini pro 2.5.
The project is finally nearing its end. I spent some time on the final system integration and adjustments, mainly because I wanted to be able to power it with a battery and fit everything into a picture frame. That would be the perfect setup.
If I wanted to handle the battery myself, I could, but I’d need to find a separate charging module. On top of that, a battery-powered project requires thinking about power consumption. The ideal scenario is to update the display once or twice a day and keep the Raspberry Pi in a powered-off state the rest of the time.
But to achieve a “shutdown and wake-up” cycle, I would need another external RTC (Real-Time Clock) module. Trying to wire up all these separate modules (battery, charger, RTC) and fit them neatly into a frame… just thinking about it gives me a headache.
For DIY projects, the most convenient path is to find a pre-integrated module. If I had to reinvent the wheel and assemble everything myself, it wouldn’t just slow down the project; it would make the whole process tedious.
So, I found this module: PiSugar. It’s a ready-made solution that has a battery, a charging module, and an RTC, plus a simple user interface for setting wake-up times. It perfectly meets all my needs.
With that solved, I designed the final system flow:
- On system boot, set the next wake-up time. (This is done by directly modifying the PiSugar config file. It’s important to remember to
restartthe PiSugar server afterward for the settings to take effect). - Run the update script. First, check the network connection. Then, update the date and weather, fetch and sort all the iCal events, and get the current battery level to display on the e-paper screen.
- After everything is done, set the system to shut down in one minute. (This one-minute buffer is crucial. I initially used
sudo shutdown nowand ran into a bug. I couldn’t even SSH in to fix it before the system powered off on me.)
The system is basically just that simple. I’ve currently set it to update twice a day, at 6 AM and 6 PM. Now I just need to monitor the battery life. If it can last for two weeks, or even a month, on a single charge, I’ll consider it very usable. If not, I’ll have to consider underclocking the system.

