Story
Most desktop calendars have a lot of issues
- Made of paper, I need to swap pages every month
- Uses a small LCD black and white display that is difficult to read when placed at the far end of a table
- with a TFT display that grows in the dark (since I also sleep in the same room, this doesn't quite suit me)
Why not start looking into a minimalist e-ink calendar-based solution?
This Minimalistic E-ink Calendar can solve most problems
Choose a Setup (Battery / External Powered)
This one depends on your needs, I would decide to add batteries since the only power source around my desk is my computer
In my setup, the calendar plugs into my PC USB port via an approximately 1.5 meter USB extension cable. Standard USB port output is about 5V 500mA (maybe less with a cheap USB extension cable). The 3.7v 1000mAh LiPo inside the eink calendar acts as a power buffer. Therefore, the system does not undervoltage during eink refresh (eink only consumes power when the screen is refreshed). This design also provides benefits for my use case as well as continuing to power the e-ink calendar in the evenings and early mornings when my computer is not on.
Connect MCU to Eink display
You can connect your ESP8266 according to the table below
BUSY -> D2
RST -> D4
DC -> D3
CS -> D8
CLK -> D5
DIN -> D7
GND -> GND
3.3V -> 3.3V
On the left are the E-Ink SPI adapter pins and on the right are the Wemos D1 pins.
Hookup PCB
I have uploaded the Gerber file. You can download or place an order at any time on the right.
Install electronic calendar
If you want to secure your electronic calendar, you need a stand. You can download the CAD file of the bracket in this article yourself
Flash the Firmware
The firmware is written in Arduino with board Wemos D1 mini. You can get the Arduino code on my git repo and download all the ino files below. The timezone and weather geolocation can be changed in the following locations
// InkyDash.ino line 170, default to GMT+8 ntpClient.setTimeOffset(28800);
// weather.ino line 13, 14. Set this to your location for weather forcast const String lat = "25.0478"; const String lon = "121.5319";
Completed!
Now you have a framed e-ink calendar that will also report the weather forecast and time as a daily progress bar!
The daily progress bar shows what percentage of the day has passed. So it tells the time indirectly, and it also helps you make sure your e-ink calendar is working properly (you can't actually tell if an e-ink device is dead just by looking at a static e-ink screen).
By default the firmware refreshes the eink display every 15 minutes and the 1000mAh lithium battery drains in about 2 - 3 days (which is good because I usually turn on the computer while working and it charges it before I start working to 100%) shut down my computer). But you can extend battery life by using a larger battery and longer update intervals, it really depends on your usage.