I : The beginning

A project log for Inkycal - Your own E-Paper Dashboard

Create awesome e-paper dashboards within minutes! Modularity? Check! Python3? Check? Works on Raspberry Pi Zero W? Check!

aceAce 12/06/2023 at 22:580 Comments

Back in 2018 when I started university, our university expected us to check the website of each department for updates, homework and news, daily. Having to login each time on each website daily while also looking up the agenda for any changes turned out to be quite a chore. Problems give rise to creative ideas. That's when I thought to myself: Wouldn't it be great if you had all the info you needed for today right in front of you every day without the hassle?

It started when a good friend of mine showed me this image:  

futuristic calendar

futuristic calendar 

I absolutely liked the design and function of this gadget! An automatic scrolling calendar, the time and date and a few other icons barely visible. At the same time, E-Paper displays supporting 3-colours (black white red) were a revolution. Since most of the display can be represented in three colours, implementing this sort of design wouldn't be too hard. Of course, it lacked the functionality I wanted to add about actually showing what's on my agenda for today, but nonetheless, this design was just awesome!

How difficult can be to create such a gadget right?

Me, after nearly 5 years of working with e-paper display on nearly daily basis: Very hard!
At that time, I had absolutely no clue about Python, let alone programming, but a passion to create this gadget for myself. 

After learning Python by trial-and-error through the Raspberry Pi and testing out various sensors, I wanted to give the idea a try. Little did I know that there are way more professional tools used by developers apart from IDLE. I was getting used to deep-diving into source codes and documentations as IDLE did not support auto-completion and most of the fancy features of a modern and powerful IDE. However, when there's a will, there's a way. In fact, most of the development of Inkycal until about 2 years ago has never been done on a proper IDE, but exclusively on the Raspberry Pi. This meant a lot of failures and breaking code due the fact that I had no clue about git or unit-tests. However, even though it was in early alpha stage, my friend gave me the suggestion to publish it to Github anyway. And I did!

Soon, the project was getting more and more interest, stars and forks. It turned out that the concept of combining a nearly alien E-Paper technology with something widespread as the Raspberry Pi to create something from which people can benefit in their daily lives without breaking the bank was indeed a brilliant idea!

As I was a beginner myself and often struggled to follow instructions from other projects, I wanted to create a project, good enough for beginners even if you had zero programming knowledge with crystal clear instructions. However, I soon realised the limitations of my programming skills.
Python isn't pre-installed on all computers and phones, so while it may be good for one task, it does lack in another. After all, there is no such thing as an ideal programming language. To make it easy, I would need something that can run on nearly any device, and it's called the web. Yep, the thing you're using right now to read this! Nearly any device that has a browser can show HTML CSS and Javascript! Hence, if you could leverage a web-page for the complicated stuff, it would be easy enough for beginners while Python would allow more advanced users to customise their Inkycal further.
It's another thing there wasn't much to customise as I had no clue about classes and properties etc. at this point so there would only be one single layout. Easy to maintain right? At least, that's what I thought..