I mentioned previously that I was working on a project for my side hustle, but didn’t say what it was.
This is it. It’s a 32×32 px LED matrix, battery, and supporting electronics.
The first purpose will be a time trial start clock. (This shows the countdown for each person leaving the start house) CrossMgr, the software I use for timing, publishes information for the start clock over a WebSocket connection to drive a web version of the start clock. I wrote a python script that slurps that data and drives the LED matrix, counting down the time, as well as the bib number who’s next to roll out.
The project combined a bunch of stuff. Software, obviously. Electronics, as I integrated a bunch of random stuff including the LED matrix, a Raspberry Pi, voltage regulator, battery, buzzer, cooling… I 3D Printed the mounts for the boards. I built the box (from scrap wood!) that holds it all.
Considering a commercial version of this is a grand or more, I like this version.
I’m a nerd, a fast I’m sure no one is surprised by. One of the side effects of this is overcomplicating simple things.
Because I’ve always had a cloud server for hosting things like the ADT Pulse/Pushover integration and this site (among others), I decided to complicate that by running a Kubernetes cluster at Digital Ocean for the ultimate in ridiculous personal infrastructure costs.
That said, it’s been super easy to work with. I host 8 WordPress sites, the backend for Holeshot Events, as well as some personal apps for home stuff, on 2 $20/month nodes. Could I do this more efficiently? Probably. Would it be as ridiculous? Nope.
It’s been a great learning experience, and with the release of k3s I’ve been thinking about installing it on the home server too.
Once upon a time, on a blog rendition long ago, I published a link to my hacked together ruby script that would parse ADT Pulse email event notifications and forward them over Pushover. That blog is long gone (RIP), and that repo is gone (RIP), and that code is gone (RIP).
Instead of being a script that reads the email on standard in, I’m using my email provider (Mailgun) with an HTTP route to hit this code. The code now, instead of being a shell script, is a Python function hosted inside of Kubeless (think self hosted AWS Lambda on your own Kubernetes cluster).