Making a Raspberry Pi Magic Mirror From Scratch
Finally! For the last months I’ve been trying to find the time to build another magic mirror. I’ve been scavenging parts for a while, and it’s taken longer than I’ve expected. I tried to build my mirror on a budget, so it’s taken even more time than it had to if I’d bought all the stuff right away.
So without further ado, here is a blog of my latest Magic Mirror build, a Raspberry Pi Magic Mirror.
I wanted a nice mirror. I really didn’t want to spend all this time building something, and then be unsatisfied with it because I skimped on the most critical part of the mirror. So I went with Twowaymirror.com’s VanityVision Smart Mirror Glass. It is a really nice glass for these kinds of projects. It reflects a lot of light, and lets little light through. The shipment took only a few days, and it was very professionally packed.
I have to admit that I was a bit worried about having glass shipped to me a long way, but these guys are professionals, everything went smoothly!
All in all I’m really happy about the quality of this glass, the mirror looks so smooth and there’s no warping or defects on it. Perfect!
On this part of the mirror I didn’t want to spend a fortune. You can basically use any old computer monitor, but newer is of course better when it comes to weight, heat emission and such. But I didn’t worry too much about that, so I went online and bought an old BenQ monitor (The model no. is FP222W). It is a 22-Inch Widescreen LCD Monitor, nothing fancy. I got it for really cheap, so I went with it. It only has a VGA port, so I had to buy a cheap VGA to HDMI adaptor like this one, except mine was way cheaper.
The next phase was to rip it out of it’s casing. Not hard on this monitor, just a few screws off the back and prying the case apart. I was left with a bare-bones, somewhat heavy screen.
And now, on to the most challenging part (for me) of this project – Building the frame around the glass & monitor
Building the Frame
I am not very familiar with woodworking. I know piecing together a few boards barely qualifies as woodworking, but this was a bit of a challenge for me. I think a part of it was that I don’t have a nice workspace at home, so I had to make do with a small table in the basement, where I keep the washing machine. I went through a lot of trial and error here, and also learned a lot, which was also something I set out to do with this project.
I used some wood I just had lying around that was left by the previous owner of the house. He used it to build shelving but it was surprisingly nice. I measured the wood and sawed down to the size I needed (The glass is 55x32cm, which is about 21×12.5 inches).
I worked on the frame on and off for at least 3 weeks i think. I often got delayed because I needed extra bits and pieces, but I finally finished it. I ran into some trouble mounting the screen inside the frame, it was always a bit crooked, but I finally managed to get it right and fasten it into place. I also added black crafting paper around it to block out light on the sides, since the monitor is a bit smaller than the glass. I would recommend getting a piece of glass that is exactly the same size as your mirror if you want to make your life easier!
I should have taken more photos of the frame building but I totally forgot about it! I finally painted the frame with some white paint I had.
After I mounted the screen all that was left was mounting the electronics into place and hooking everything up.. I think it actually looks quite neat, all tucked in there. I added a white lamp cord with a on/off switch. The only annoying thing is that I always have to reach inside the mirror and press the power button to power it on.
The Raspberry Pi / Electronics
I was originally going to run the mirror on an old Android TV stick I had lying around. But when I tried to boot it up I discovered it was stuck in a bootloop. I tried reflashing it, but it only worked for a few boot ups before bootlooping again so I thought to hell with it and bought a raspberry pi zero.
The Raspberry Pi Zero is a neat little computer. Setting it up is really easy. I installed Raspbian Jessie onto the SD card and inserted it into the computer. I then set up a few commands to start it up in kiosk mode, and directed it to my magic mirror website. I plan on installing MagicMirror2 on it in the near future, but I wanted to get it going right away so I just directed it to an already set up Magic Mirror website I run on a personal domain (myname.com/magicmirror). The script is password protected so only I can access it. This will do as a temporary solution.
To set up the webpage, I downloaded jangellx’s Magic Mirror variant from Github, changed the settings and uploaded it to the webserver.
I then hooked up a cheap 4-port USB hub to the pi, where I put in an old Wifi adapter I had, and an air mouse I used to use for my Android TV box.
To-Do / Planned improvements
There are a few things with this build I plan on improving:
- Get MagicMirror2 running on the Pi Zero or alternatively, get a Rpi 3
- Fix the imperfections of the frame and generally make it look nicer
- Make it display the latest news, the RSS wasn’t working for some reason
- Get shorter cords in the back, the HDMi cable and power cable I’m using now are way too long
- Integrate the software with Tasker, so I can interact with my mirror through my Android phone or Smartwatch
- Possibly integrate voice commands
- Put in an IR sensor, so the mirror turns off when there’s no one around
The Finished Magic Mirror Build
It’s not perfect, but it was a very fun project to work on and I think it looks pretty decent. I put a lot of effort into this project, learned a lot and had lots of fun working out how to do things. I hope this build blog helps you with something you’re working on! If you have any questions, don’t hesitate to leave a comment below.
Here are some photos of the finished product: