A magic mirror is a raspberry pi powered monitor behind a double sided mirror. A mostly black web page allows you to add some widgets to the mirror’s reflection as if by magic. This version includes widgets for displaying the weather forecast, the date/time and a nice randomly generated greeting. No low level hardware hacking required, just some basic woodworking and some code I’ve already put together.
What you’ll need
- A monitor
- A double sided acryllic mirror fit to the size of the monitor
- A few 2 x 4’s to build a case around the monitor
- Thin wood to build the forward facing mirror frame, I used 1/8 x 3’ board
- A raspberry pi and it’s needed components, i.e. the power supply, HDMI cord, wifi usb dongle, and a keyboard for initial setup
- Basic woodworking tools like a saw, sander, screwdriver
- Screws, liquid nails
Choosing the monitor
The size of the mirror is really dictated by the kind of monitor you get. I wanted to get something large as possible but also with a removeable arm so it could fit inside of a case. Another important aspect is making sure you get a monitor with the inputs towards the center of the monitor rather than the sides.
I was cautious to get a monitor with it’s inputs on the bottom or side because it would be hard to make the frame to fit and have the raspberry pi’s HDMI cord also fit. I ended up picking the BenQ GL2760H 27 inch monitor. Turned out perfect for the job.
Getting the Mirror
The mirror is definitely the most essential piece to the whole project. However what I didn’t know was that these double sided mirrors are actually acryllic and plastic like. They’re much more forgiving than actual mirrors and you can cut them in several different ways to fit what you need. So order a mirror that’s close to the size of your monitor (only the screen part, do not include the bezel in your measurement). But don’t worry too much about ordering slightly too big, you can cut to fit the size you need.
I ordered my mirror from TAPPlastics.com but you can get them from several other vendors online. This is the exact product I ordered.
Removing the monitor’s bezel (optional)
I decided to make the case fit even closer to the monitor by removing the plastic around the monitor. Turned out to be a good call because at first I didn’t take in for account the depth space I’d need to fit in all the wiring. I used a paint scraper to pry at the edges of the monitor till it eventually gave in and split.
Make sure to be careful removing the monitor controls. They’re wiring is very thin and you’ll definitely need it intact to turn on and adjust the monitor.
Building the case
Nothing super exciting here. I just cut 4 4×2 pieces to fit the new Jenny Craig’d monitor in a case. I used a few clamps to hold the pieces in place while screwing in the sides. With this method you’ll get a flush fit and be able to remove the montior from the case with no issues.
A side note, I also screwed in holes at the top and bottom of the case. This was to allow the raspberry pi to at least have some air flow. You don’t want your computer to bake in a completely enclosed space.
Final side note, remember to make one of those holes at the bottom of the case big enough for a power plug to fit through. You’ll need it later when you’re wiring up your monitor and raspberry pi’s power through the case. I ended up just using a straight saw and making a slot to fit the cable through.