With my newfound free time, I’ve decided to use that time to make a magic mirror! This is something I’ve wanted to do since my Sophomore year of college. There are numerous blog posts describing their project process. I decided to do something similar!
1. The Display
I Found a $40 S232HL monitor on craigslist across town. Picked it up and took off the outer plastic casing, which left with a pretty slick thin display. Monitor was pretty much in brand new condition. I wanted to keep the display under 24 inches as usually beyond that, the display tends to jump up in price significantly.
2. The Pi
Fortunately, I had an older Raspbery Pi Model B lying around from a much earlier project that I never finished. Thanks to user MichMich on github I was able to find an existing magic mirror nodeJS code base. The project is easily installed with any prior knowledge of nodeJS. Unfortunately my Pi being of the first generation, I couldn’t just run the Electron app and instead had to run a local server and open the application from Chromium. I also had to get a $9 USB WiFi adapter to connect the Pi to the internet.
Arranging the UI was as easy as defining a JSON object in the provided config file. The project came with plenty of base modules to choose from.
3. The Frame
This is the part that honestly was the hardest. I’ve never done any woodworking except for a little picture frame I made in middle school. I wouldn’t say any of it was particularly difficult to execute. It was more often the fact that I didn’t know if what I was doing. Typically I would have a vague idea of what to do, attempt to do it, and then realize that I needed a tool or had skipped a step. Over the course of the construction of the frame, I ventured to Home Depot 5 times. What I couldn’t get at Home Depot, I ordered off of Amazon.
I chose a 0.75 in. x 3.5 in. plank for the frame itself and had it cut to size at Home Depot. I also needed to build a lip to hold in the mirror and monitor. I selected a 0.25 in. x 2.5 in. hobby board to build that out of. I originally wanted to do corner cuts for the lip but decided it was too difficult and excessive for my first mirror.
Some wood glue and cheap clamps made putting the frame together easy but messy. After it dried for about a day I then smoothed the surfaces and edges with 280 grit sanding block.
Frame after glueing and sanding with the monitor installed (sorry about the blurriness).
3. The Mirror
I bought a 12’x24′ acrylic one-way mirror off of Amazon and cut it to size. I wasn’t sure if my 24-tooth saw blade was fine enough to be able to cut thin acrylic so I made a test cut. Spoiler: It didn’t work. I shattered the small test area. Luckily I found a 120-tooth blade for $8 on Amazon. Once it arrived I was able to make the cut easily.
Frame with mirror inserted. (Reflection is blurry because I left top film on the surface until I figured out a way to fasten down the monitor and mirror)
At this point I had everything functional. Only problem was, it’s guts are spilled out of the back and I couldn’t move it anywhere. First I had to secure the mirror and monitor. During one of my earlier Home Depot expeditions, I found these small plastic shelf supports. I wasn’t entirely sure if they would hold at the time but they were $2 for a box of 8 and I figured it was worth a shot. I drilled a tiny hole in each of the four corners and put them in and to my surprise they held quite snuggly!
Next up was the electronics and wiring. There were plenty of cords running in all sorts of directions and I also needed to include 2 power outlets; one for the monitor, one for the Pi. I took some electrical tape and started taping it up.
Unfortunately as I suspected, the electrical tape wasn’t meant to hold weight and after about a day everything started falling off.
I found 3M Exterior Mounting Tape which is probably a little overkill but it worked wonders. Additionally, it was a relatively cheap solution and gave the internals a nice clean look!
Last thing to figure out was power. I had strategically placed the power adapters around the inside of the frame so that both plugs came down the sides to the center.
A simple extension cord did the trick! I used the same mounting tape for the adapters and Pi to mount it to the bottom plank. Originally I was just going to get a small power strip to stick into there but the thick cords on power strips would have required me to drill a hole to pass the plug through. These extension cords are flat so no hole was necessary and it would still sit flat against a wall with the leeway the felt feet on the corners gave.
I’m pretty ecstatic about the final result. This is something that I’ve been dreaming of building since sophomore year of college. It isn’t particularly unique or complicated but it’s proof that I’ve grown significantly since I’ve come to Seattle. From my brief interaction with the code-base, developing my own module shouldn’t be a challenge with what I learned at Tack. There are tons of features I decided to put aside so I wasn’t overwhelmed with the project. It is very easy to scope creep a solo project with no particular deadlines.
I’m planning on writing a post about the various things I would change if I were to do the project again. For now, I have a pretty useful (albeit heavy) piece of tech in my room to be proud of.