Building a home dashboard

I always wanted a big screen I could have turned on all the time with random stats I care about.

A couple of years ago I saw a post from an ex-Googler where he explained how he created one for himself and I got excited and scared at the same time. Excited because that’s exactly what I wanted, his version used an e-ink screen and the amazing dude did all the circuitry and wood-working himself. Scared because I imagined myself buying all the parts and leaving the project half-started like so many others.

I can hear the voices of all the unborn projects from all the notes, repositories and electronics that I have laying around.

So I just took notes of what I wanted and forced myself not to buy anything until I had a design document with everything figured out. If I didn’t solve everything, in paper, in advance, I was not going to do this project.

So it worked, I did not do that project.

However my interest started itching again when I learned about the Visionect e-ink screen that already had a computer integrated and wifi. You only had to point it to a webpage and everything else was already taken care of. It doesn’t even have to be plugged in, it came with a battery so you could just hang it up.

The screen is originally meant for businesses, for example, an airport with a bunch of screens that are all synchronized to display airplane statuses. Hence you can imagine that it already comes prepared for use cases that require entire fleets of screens.

One of the requirements for the screen to work is an-always on server that is pinging the screen in short intervals of time. This server is in charge of monitoring the status of the screens (battery, energy consumed, temperature, etc) and the content they display.

I wish I could just communicate with the screen directly instead of needing this server, but that was still convenient enough for me so I ordered the 32" screen.

What have I built for it

I have the Visionect server running on a uConsole (with Raspberry CM4) 1 that I use as a home server. This is besides of the point of the post, but look at this beautiful computer:

uConsole with Raspberry CM4

As a first project I coded something to fetch a newspaper daily, the code splits in two parts:

  1. A cron job that runs everyday to fetch the New York Times, converts their cover into an image of the same 2560×1440 resolution of the screen, uploads it to AWS S3 and queries the Visionect server to command the screen to refresh.
  2. A NextJS site serving the image I converted. This is the website the screen is instructed to have always open.

The flow looks like this:

Dashboard flow

Future use cases

Ultimately I want the screen for silly use cases: displaying our calendar, calendar of our favorite sports/events, weather, metadata about music playing, tracking habits, etc.

And some extra silly use cases, like displaying drawings that we make on the phone.

What I am most excited about is to track growth statistics for a couple of projects I have ongoing.

The screen itself is beautiful, very well built. I have had it in my living room for over a year and like how it looks. And I love the battery, with my use case it only needs to be charged every 3 months or so.

Dashboard screen

One con is that they have stopped updating the server for ARM. It's been 3 years since their last update, so there's a good chance they will stop supporting my raspberry server at some point. Now that there's several efficient x86 alternatives this is not a deal breaker, but certainly an annoyance.

What I hate is that Visionect now requires you to pay a yearly subscription to use the screen. This was not the case when I learned about the screen. And when I asked previous users, they were unaware. So it was probably a new requirement when I got the screen. This is absolutely horrendous. If I pay for hardware I expect to 100% own it and not for it to become a brick if I stop paying the subscription.

For this reason alone I would not recommend it. But I hope Visionect reconsiders and is friendlier to hobbyists.

Footnotes

  1. The uConsole is gorgeous. It is more of a novelty but it also comes handy to have an integrated screen for quick debugging. And I'm amazed at how well built it is. The only downside is that they can take months to ship it.