I was renovating my master bathroom and figured it would be the perfect time to build in a magic mirror. I had my contractor frame out a niche in the wall so that I could fully recess my TV.
The mirror itself is the Pilkington MirroView 50/50. It measures ~ 6 ft x 3.5 ft and is secured to the wall using J channels. I was able to purchase the mirror from a local glazier.
I used the 3M 1080 Matte Black vinyl wrap to mask out the area outside of the TV.
Instead of using a RaspberryPi I wound up hosting the MagicMirror server on a Linux VM and the client is a BrightSign XT1143 that I picked up on eBay. A few great things about the BrightSign:
- It can display web pages (critical for this application)
- It has an HDMI input that allows you to overlay an HDMI signal on top of the webpage (or whatever other content you’re displaying). This allowed me to integrate live TV into my mirror.
- It has a 3.5 mm audio out port which I was able to connect to an input on the sound system feeding my bathroom
- It supports streaming video which is great for viewing security cameras
- It can control the connected display via CEC
- The BrightSign can be controlled via simple UDP commands allowing easy integration with just about anything. I have UDP commands setup to power on/off the display, show/hide live TV, streaming video, etc.
The BrightSign is located in the basement and is connected to an Monoprice 4k HDMI extender. I ran a CAT6 cable from the extender to the bathroom underneath the sink. There is a small receiver under the sink (powered via the CAT6 cable) that is then connected to my display via a HDMI cable. I ran an IR emitter from the extender as well (don’t need it given the CEC support, but figured it couldn’t hurt for future use). The only electronics behind the mirror are the TV itself. The mirror is removable, but obviously annoying so wanted to keep as much as possible fully accessible.
The TV is a 55” Samsung QLED that I was able to pickup at a local retailer on a close out sale. After much debate, I didn’t add any extra ventilation, but left a lot of space around and behind the display. The display is triggered by an occupancy sensor so is only on when the room is occupied. Time will tell if not addition additional ventilation was a dumb decision.
Here are some additional pictures of the build process: