I Made an Alexa Knockoff That Doesn’t Spy on Me
Smart assistants come with a lot of baggage.
I like the idea of having a smart screen on my desk. It’s a decidedly sci-fi concept: A little dashboard that’s specifically coded to display up-to-date information from all different sources that I want to see, without distractions or extraneous features.
But I don’t want a device with a microphone or a camera on it. I don’t want Amazon or Google to set what’s on my device, and I don’t trust them with an audio feed in my home.
So, I built my own.
The project took about 45 minutes, and it was shocking in its simplicity. The result is a smart screen that displays the time, my calendar, and a detailed local weather forecast, with room to add more information as I want. It’s also a local server to share some of my noncritical files between computers, after my commercially built NAS was hacked.
The entire project was seeded by a video I saw on YouTube from a channel called ETA Prime. The channel features single-board computers like the Raspberry Pi, and the accompanying accessories that third-parties build to make the tiny computers more useful. ETA Prime suggested this seven-inch touchscreen display, which I bought and has worked flawlessly so far. Paired with a Raspberry Pi 4 with 4GB of RAM, I have more than enough computing power to stream a movie in 1080p upstairs to my Apple TV through Plex, or use it as an intermediary cloud between my Mac and Windows devices.
The entire cost was $187.78, which included the seven-inch touchscreen, the Raspberry Pi, a 256GB SD card, and a power adapter with an on/off switch.
Once all the components arrived, assembling the hardware was relatively straightforward. I recommend watching the ETA Prime video, which shows the three connections the Raspberry Pi needs to connect to the display. (HDMI for video, USB for touchscreen support, and to the Pi’s top-left header pins for power.)
Then you just have to attach the screen’s included little feet. The only negative I could find with the whole kit is that the screen is mounted onto a Printed Circuit Board (PCB) with holes that aren’t countersunk, meaning there are no indentations in the screw holes to make the screws sit flush and secure. But we’re building a tiny computer for fun and not a load-bearing wall so I’m sure a wobbly foot will be fine.
For software, I’m running Raspberry Pi OS, which used to be known as Raspbian. On my Windows machine I used “balenaEtcher” to write the operating system to the SD card. Using an attached keyboard and the touchscreen, setup was straightforward.
Now I needed to run the dashboard itself. There are a few options out there, like balenaDash, OpenShift, and Dashing.io, but honestly, I think most of them look pretty lame. I’ve always wanted a smart mirror but have never mustered up the emotional energy to order and custom frame the required two-way mirror. So I ditched the physical mirror part and decided to use smart mirror software called MagicMirror2, which displays a nice black-and-white dashboard that’s already configured for most of the information that I wanted to see.
MagicMirror2’s configuration files took a little trial and error to figure out, as there’s a hierarchy for how certain settings are applied to each module. There are global configurations, like 24-hour versus 12-hour time. Then there are modules to display information that you can add and modify, like adding a weather report and placing it on the upper right side of the screen. Inside the module there’s also a separate config object, which is where you put information like an API key for the weather service you’re using. Some changes are made globally, some to modules, and some to the module’s config file.
It’s not too hard, but I’m still working out the kinks. For some reason, time zones mess up my calendar on my smart display, and I think it’s a miscommunication between these config parameters.
After setting up the display’s core function — displaying things — it was time to play around with the Raspberry Pi’s role as a local server.
I downloaded OpenMediaVault on the Pi, which is a free and powerful tool for making DIY media servers, and then went through the standard installation. It was very straightforward, which is surprising because I am used to nothing being simple or easy.
That could have been enough, as I now had a folder to share all my great documents with myself across my various computers, but I am a glutton for punishment and I also wanted the ability to use this as a media server to watch movies. I followed this very good 23-minute video on how to install Plex on OpenMediaVault, which I blindly followed because I know nothing about Docker containers.
And then I was done!
There’s so much more that I could do with this little device. Maybe I’ll install PiHole and block ads in my home network. Or maybe I’ll replace the dashboard with a Spotify window and control the music on my main PC. Or maybe I will run a Minecraft server, even though I have never played Minecraft. Or maybe I’ll make a whole new dashboard when I get bored with this one. Either way, I like having options and this device is basically an all-purpose computing toy.
This was a really fun, low-lift computing project that turned out incredibly well, and I’d really recommend it if you’re looking for something with simple hardware setup and flexibility on what software you want to run.
And let me know if you do! Either comment here or send me a tweet on Twitter at @davegershgorn.