Magic Mirror

I finally built something I dreamt of 6 years ago. My first version back in 2016 was a cheap version of this with a 2-way acrylic film on a 7″ android tablet. Needless to say, this is a huge upgrade both in terms of size and cost. But the end result is something to marvel at and brings a smile every time someone looks at it.


Parts list

  • Shadow Box from Michaels (Black 18″ x 24″)
  • Two-Way Glass Mirror from Amazon (MirroView 18″ x 24″)
  • Black Cardboard from a local Dollar Store
  • LCD Monitor
    • I sacrificed one of the monitors I had (Dell U2717D 27″ Monitor). But you can use any 27″ monitor to maximize the available screen space on the mirror. Make sure its dimensions don’t exceed 18″ x 24″ and it has support for a VESA mount
  • Vesa Mount (Option 1, Option 2 based on the total weight of your assembly)
  • Raspberry Pi 3B+ or Raspberry Pi 4b with MicroSD card, Power Supply
  • HDMI Cable
  • 3-Prong Extension Cord


  1. Sanding (Optional)
    • You might have to sand the inner frame down a little if you can’t get the mirror or the monitor to fit inside the frame
  2. Painting (Optional)
    • Sand the entire frame lightly
    • Apply a coat of primer (I find using a spray easier and quicker)
    • Apply 1 or 2 coats of paint
  3. Stripping the monitor panel
    • This helps reduce the weight and also keeps the whole assembly as slim as possible
  4. Reduce Light Bleed
    • Use black cardboard to reduce the light bleeding from the back of the mirror. Test it out with the lights off and shining some light from behind
  5. Connect the Raspberry Pi
    • Connect the Pi to the monitor via HDMI cable
    • Refer to the Raspberry Pi setup instructions in the next section
  6. Attach Power Supply
    • Attach the power supply to Raspberry Pi and the monitor
    • For cable management, use glue or zip-ties
  7. Wall mount
    • Use VESA mounts to hang the monitor + frame on the wall
    • The whole assembly was about 22lbs and I didn’t feel comfortable using the picture hanging kit to hold the entire weight. Since the most weight comes from the monitor display, I decided to use a VESA mount. This way, the monitor holds the frame instead of the other way around.


MagicMirror2 is an open-source modular platform for smart mirrors. Follow the installation and configuration instructions from the docs. After the installation and basic setup, you can use MMPM package manager, which is a self-updating command line and graphical interface designed to simplify the installation, removal, and maintenance of MagicMirror packages. MMM-Remote-Control module lets me control the display and other modules’ configurations via Home Assistant.


You can find a complete list of modules available here and here. Some of the modules I am currently using are listed below:

  • updatenotification
  • clock
  • calendar
  • compliments
  • weather
  • newsfeed
  • mmpm
  • MMM-Jast
  • MMM-Traffic
  • MMM-JokeAPI
  • MMM-GoogleBirthdaysProvider
  • MMM-Sonos
  • MMM-Spotify
  • MMM-NowPlayingOnSpotify
  • MMM-iHaveBeenThere
  • MMM-Carousel
  • MMM-WiFiPassword
  • MMM-TeslaMate
  • MMM-Globe
  • MMM-Remote-Control


Leave a Reply