MagicMirror² v2.13.0 is available! For more information about this release, check out this topic.

Frameless Bathroom Mirror - Part 2: Hardware and Build

  • This is part 2 of my bathroom mirror build, part 1 is here:
    Frameless Bathroom Mirror - Part 1
    I hope it is ok to use 2 threads.

    First of all, here is me with the final product 🙂
    et voila

    Last month, the glass has arrived from


    The basis of this project was my original bathroom mirror. It consisted of a 110 x 80 cm frame of 2 x 4 cm aluminium profiles and the mirror glass glued to the frame with double-sided mirror tape. In the next picture I freed the frame from the old mirror.

    frame with shards
    and here cleaned and tidied up for the fitting of the spy glass. For this I used a hot air gun and a untility knife blade.
    clean frame
    You can see here that the old mirror had some electric wiring (for an in-built neon tube lighting), which I salvaged for the magic mirror project.

    After glueing the new glass to the frame with 2-K-epoxy-glue, I covered the parts of the mirror that would later not be covered by the monitor.
    I used black window film for this, here is an amazon link:
    glass covered

    Since the frame only leaves 4cm space, I had to disassemble the monitor, so that the display and the electronics would fit.
    I used tinsnips to dismantle the housing of the monitor’s electronics and soldered extensions to the led backlights.
    controls for monitor

    I screwed brackets for the display panel and the monitor electronics into the aluminum frame and used power tape to support. I used adhesive bases and zipties to tidy up the wirings. I used a junction box for the mains connections (to which I later added additional lighting)
    frame with display and mains box

    I have adapted the MMM-buttons module to read a toggle switch to switch on and off the MMM_Webradio module, 3 momentary switches are used to control the volume and select the next radio station, you can see them in the next picture, here is a link to the buttons that I used:
    radio buttons
    You can also see the microwave sensor here, which I use to detect people in front of the mirror from behind the glass.

    Finally, I have added 2 additional LED lamps. The reason for this is that the original neon light was not strong enough to shine through the tinted glass. (For the neon light I had left out a stripe in the mirror foil, which I then covered with frosted glass film.)
    mirror with LED lamps

    Things I changed during the build:
    It turned out that the wlan dongle whith which I had tested was too weak and slow once the mirror was monted on the wall. Therefore I got a 5GHz Wlan dongle, which works fine, no drivers required for the raspberry:

    Behind the glass lamps are too weak to give proper light. Instead, I added these to the mirror:

    In addition to what I described in part 1 (link), I have added a bluetooth dongle to stream the webradio to a bluetooth speaker:

    Final thoughts on the glass: The reflection is absolutely fine, albeit a little less bright and clear than a “real” mirror. The visibility of the text is ok, but you should set the monitor to the brightest level. The look and feel of the glass comes really close to an ordinary mirror.

  • Since my Magic Mirror went live, it received 2 major upgrades:

    The monitor died and was replaced

    Still not sure on how it died. I suspect that the button control caused a short circuit with the metal casing of the monitor control box. Or maybe it was moisture that got into it after all.
    Anyway, I replaced it with a much slimmer monitor of the same size. Another advantage was that it had a well sealed external power brick instead of the somewhat sketchily mounted power board of the original monitor.
    This is what I got:
    Very cheap, very slim, way lighter, way better sealed and brighter than the first monitor I head

    The Raspberry is now running from HDD

    The raspberry 2 kept crashing. All the time, every other day at least. Checked and changed power supply, no improvement. Re-wrote image on sd-card, no improvement. Updated os and mm, no improvement. I even set up a cron job to reboot once per night. Nothing helped.
    So I investigated and read a lot on how an sd card isn’t really suitable to run an os over a long time (at least that is what I made of it). So I decided to run it from a hdd. Was originally planning to go for an sdd, but decided well I don’t want to spend another 50-100 EUR, including an usb adapter. So I digged up a 2.5’’ HDD which I had laying around (to be precise: being uselessly sticked to the back of my tv). Looked up a bunch of tutorials on how to run a raspberry 2 from HDD. (Note: it actually still boots from sd, but hands over control to HDD immediately after startup). It involves:

    • burning a new raspberry os image on the HDD and on the sd card
    • attaching the HDD and starting up the pi
    • with sudo blkid getting and writing down the PARTUUID of the rootfs partition of the HDD
    • replacing the PARTUUID of the sd card with the one written down in the previous step in both:
    • the /boot/cmdline.txt, and also in the /etc/fstab

    After that you should expand the size of the filesystem on the HDD, since it has initially only the size of the image you burned on it. Note, this can’t be done with raspi-config, but with fdisk

    It looks like (and honestly is) quite some task to get it to run (at least it was for me, a half-experienced Linux user). I found it worth to investigate though, educate myself about Linux, the file system, and other aspects and spend some time with trial and error.
    You will find plenty of instructions on the internet, some more useful than others, but you will find your way through it, too.

    Finally it is running really fine now. I had no crashes since (and it is over a week running now), so I guess it is worth the effort. 🙂
    Sure, I could have thrown out the Raspberry pi 2 and replaced it with a 4, seeing if that helps, but I really wanted to see if I can make it work with the good old pi2.

    So I ended up installing the mm from scratch (now on HDD), thereby getting the latest version, fetching the latest versions of the modules I use, redoing the modifications I did to them, re- and re- and rearranging the modules until I finally had it running as I wanted it to.

    Here is a pic with the new monitor, the HDD and some cleaning up:

    And here is the front, one more time:

    Here is a current snapshot from the browser (with the webradio running):


Log in to reply