In the past I've worked on a few desk gadgets to help me work either more efficiently, or keep track of the time. One of these first projects was a macro keyboard, which I later updated to wireless using Bluetooth. Another was a clock using an ESP32 and our OLED breakouts. Like most work places across the world, once the pandemic started, we relied even more on email and virtual meetings to continue planning and releasing products which increased the importance of staying on top of my calendar and email.
To try and stay organized, I keep my mail and calendar apps open and check them throughout the day. The problem though is as I'm working, I have windows open on top of those apps as I read through a datasheet, update schematics, work on a board design, write code, etc., and I have to rely on the notifications that pop up, which don't always get my attention. I thought that when I upgraded to two monitors it would be enough, but unfortunately it wasn't, and a third monitor isn't really an option. So instead, I drew inspiration from my desk gadgets and thought that they might like a new friend that I call the MicroMod Calendar.
It uses two boards, the MicroMod Input and Display Carrier Board, and the MicroMod ESP32 Processor board. It connects to my Google account through a script, creates a text output with all of my meetings for the day from the calendar, and checks my email to see how many unread messages I have to display on the 2.4" TFT screen.
Since the ESP32 is connected to the internet, I also get the current time using the Network Time Protocol, which allows the board to show when my next meeting is. Most of the time my computer will give me a 10-minute warning, but because Cortana likes to hide those alerts on me from time to time, I used the APA102 LEDs to always give me alerts when a meeting is 10 minutes out, five minutes out, and starting now, by flashing the LEDs green, yellow and red.
As I was working on the software, I realized that it could also be really useful not just on my desk, but my lab bench as well where my back is always facing my desk. And while my desk already has a clock that I made sitting on it, my bench does not, so I want something a little different for each location.
On this first display, I show the time, what my next meeting is, and how long until it starts. Below in slightly smaller text are future meetings, along with their start times to help plan out my day. Finally at the bottom, I show how many unread emails are sitting in my inbox.
On the second display, I removed the time, which allowed me to increase the text size a bit, and give a little more space for better readability.
To switch between the two displays, I made use of the 5-way switch on the Input and Display - left/right switches between the displays, up/down changes the backlight brightness, and the center button flips the display 180 degrees, which allows for the USB cable to come out on either the left or right side of the case. All of these settings get saved to memory, so if the board resets or loses power it maintains the same settings.
For the past week or so I've had the MicroMod Calendar set up trying to spot any bugs in the code, and make a couple tweaks here and there. Mainly it was adjusting the brightness of the LEDs that they could get my attention without leaving me seeing spots. But similar to my macro keyboard, this has been a really handy tool to have on my desk, and wish I made it sooner. If you're interested in building your own, you can check out the GitHub page, which has everything you'll need to make your own from the ESP32 code, Google Apps Script, and 3D models that I made for the case.