I’ve often struggled with procrastination, and to-do applications have been lifesaving. I sometimes find myself needing a reminder to just focus on getting the most important task done before working on anything else.
With that in mind, I created a simple photo frame to sit on my desk and remind me of my most important task of the day using e-paper and a Raspberry Pi. I wanted to use e-Paper specifically since it’s low-power and not as distracting as a standard display would be. If you’re the kind of person who likes a simple reminder of your most important tasks, here’s how to build it for yourself.
What You’ll Need For This Project
- Raspberry Pi 4, Raspberry Pi 3, or Raspberry Pi Zero with power adapter
- 8 GB (or larger) microSD card for Raspberry Pi
- 7.5” Black & White Waveshare E-Paper Display & Hat
- 5x7 Photo Frame
- A ToDoist account with Tasks in it
- Black construction paper
How to Build a To Do Reminder Frame with E-Paper and a Raspberry Pi
Before you get started, get your Raspberry Pi set up. If you haven’t done this before, see our article on how to set up a Raspberry Pi for the first time or how to do a headless Raspberry Pi install (without the keyboard and screen). For this project, we recommend a headless Raspberry Pi install.
1. Install git. We’ll need it to download the code from GitHub.
sudo apt-get update sudo apt-get -y install git
2. Clone the repository to your home directory. This will ensure we have all the code and audio files we need to run the project.
cd ~/ git clone https://github.com/rydercalmdown/todo_reminder_frame.git
3. Run the “make install” command to install all project dependencies. This script will take care of installing lower level dependencies, as well as the Python libraries you need for the project to run.
cd ~/todo_reminder_frame/ make install
4. Locate the VCC and Ground pins on the e-paper hat, connect them to Raspberry Pi BOARD pins 4 and 6 respectively.
5. Locate the DIN and CLK pins on the e-paper hat and connect them to Raspberry Pi BOARD pins 19 and 23 respectively.
6. Locate the CS and DC pins on the e-paper hat and connect them to Raspberry Pi BOARD pins 24 and 22 respectively.
7. Locate the RST and BUSY pins on the e-Paper hat, connect them to Raspberry Pi BOARD pins 11 and 18 respectively.
8. Using the included ribbon cable, connect your e-paper display hat to your e-paper display, if not already connected.
9. Enable the SPI interface by opening raspi-config and following through the menus.
sudo raspi-config > 3 - Interface Options > p4 - SPI > Enable > Finish
10. Restart your Raspberry Pi.
11. Create a ToDoist account and add to-dos, if you haven’t already.
12. Visit your ToDoist integration settings and copy your API token at the bottom.
13. Export your API token to your environment.
nano ~/.bash_profile # Add the following line near the end of the file export TODOIST_PERSONAL_TOKEN=your_copied_token # Ctrl X, then Y, then enter to save and exit.
14. Re-source your environment and run a test. You should see some logs appear indicating the display is retrieving tasks.
source ~/.bash_profile cd ~/todo_reminder_frame make run </code> <code> INFO:root:Starting display INFO:root:Starting 7.5 inch E-Paper Module INFO:root:Running display INFO:root:Checking for updates INFO:root:Getting latest task INFO:root:Latest task has changed INFO:root:Updating display with latest task INFO:root:Getting image buffer INFO:root:Writing image to paper
15. Check that your display is updating. It should flash and update with your most urgent task. If nothing is happening, and the logs look normal, you may have a pin out of place. For further troubleshooting, visit the manufacturing guide.
16. Remove the back from your 5x7 photo frame and tuck in the e-paper display.
17. Tuck in the e-paper display with a piece of black construction paper over the top to cover up the edges.
18. Close the back of the frame, allowing the ribbon cable to carefully wrap around.
19. Tuck the hat and the Pi behind the frame, or hot glue them into place behind the frame.
20. Run the application. It will periodically check for the latest highest priority task with the soonest deadline in your ToDoList application.