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

27" custom framed magic mirror - fun to get done

  • First and foremost, thanks to Michael Teeuw for creating the MagicMirror and to the whole community that has continued to make this platform fun. I’ve scoured the forums and finally took the plunge to build my own.

    So here it is…

    I was thinking of putting together a more detailed punch list/tutorial. If you guys are looking for one let me know. I’ll at least add some more pics and answer any questions.

    The details:


    Built the frame using 1x3 pine and decorative molding all found at my local Home Depot. With a little bit of stain, it came out pretty nice.

    Using a Raspberry Pi 3 MB with a 16gb MicroSD

    Using a Dell 27" Widescreen LED LCD Monitor, SE2717HX. I got it for $99 through a deal I found on via Office Depot. Noticed it isn’t the best from the side angles (looks washed out), not bright) but good enough… Suggest anyone looking for a monitor to setup an alert via slickdeals…

    I went with an acrylic see-through mirror. 12x24, 3mm thick. Picked it up from amazon for about $35. It’s ok, not as clean & crisp (seems wavy) as a real mirror but good to start on a budget. I will replace it with a real mirror at some point.

    MagicMirror Setup
    I originally had MM2 installed and setup on the Pi running raspbian, but I found once I loaded up multiple modules it started to bog down. I found that if I just used the browser (chromium) on the Pi and pointed to a hosted version (serveronly on another machine) it ran much better. I actually have MM2 running on a windows machine I use for other purposes (Home automation, etc…) You can use node.js for windows to run MM2-

    I then found FullPageOS distro that ran just enough OS (based on jessie lite) and just runs Chromium. This was perfect and found it ran faster than my original raspbian. Get it from here -

    I played around with many modules, configs and css files to finally get the data and layout I was looking.


    • Cock
    • Newsfeed
    • Calendar


    • Calendar_monthly - shows month
    • MMM-MLB - Baseball scores. Go Yanks!!
    • MMM-Rest - Used to pull data from my home automation system (homeseer)
    • MMM-SimpleLogo - pulls updated radar image from wundergound
    • MMM-Traffic - When to leave to get to work
    • MMM-TweetsByTimelineOrList - Latest twitter posts
    • MMM-WunderGround - Current weather & forecast
    • iFrame - Used to display web pages for real-time data from PRTG network monitor & Netcam Studio tied into my Q-see house cams

    So that’s my build. Hope you like it and let me know if you have any questions. It’s been a lot of fun building it…

  • Absolute great job!!! A few questions/comments if you don’t mind. I have a decent build, but like you am looking at a future upgrade.

    1. Have you considered the Intel Compute Stick so you can eliminate the hosting computer?
    2. Any research on touch screen?

  • @cohron

    Thanks! I actually tried an older Azullestick pc but had problems getting the display to show up on the 27" Dell. Think it didn’t support the resolution. Still think running it on another machine is the way to go. It allows you to point multiple mirrors to it keeping mangagement of it centralized.

    Touch screen as well as others sensors are on my list of todos. Will post updates…

  • Project Sponsor Module Developer

    @iwaldrum said in 27" custom framed magic mirror - fun to get done:

    decorative molding all found at my local Home Depot. With a little bit of stain, it came out pretty nice.

    Hell yeah! I used casing from Home Depot and some stain I had on hand. And as you say, it did come out pretty nice. Love your frame! Nice work! And, oh yeah, Go Yankees! Greetings from NYC!

  • @cohron said in 27" custom framed magic mirror - fun to get done:


    Hello @iwaldrum , may you please tell us how to add stream from IP Cameras ?

  • @disakos

    I’m using a program called Netcam Studio on the same pc that I’m running MM in serveronly mode. Netcam Studio allows you to connect to multiple types of cameras, either local or IP based. I’m using it to connect my q-see surveillance system using RSTP connections, as well as several Foscam and PC connected cams.

    Once the cameras are connected to netcamstudio, you can then generate a secure token based url for each one. I then took each url and placed them into a single html file and put it on a webserver (same pc). Using the iFrame module I pointed to the html file to display it on my MM. You’ll need to play with the positioning and sizing of the iframe, as well as the webpage layout and image sizes in the html.

    I typically get 5-10 fps for each camera. Depending on the # of cameras you will be displaying and the type of system your running MM on will drive the performance of the playback.

    I know the setup is a little complex, but I felt it was the best way to get a flexible, integrated look that performed the best.

    Let me know if you have any questions.

  • @iwaldrum
    Thanks a lot for answer. I have some hikvision cameras and i’m able to reach RSTP stream of each one. Do you think that i’m able to put RSTP stream into iFrame directly ?

  • @disakos
    The challenge is you’ll need some sort of media plugin to view the rstp stream. It will need to run at the end point - MM. Something like vlc or quicktime which I’m not sure can be done. You may be able to use something like to pull your rstp stream through their service.

  • Excellent, great job! Can you share your css file, I like the days a different color in the forecast.

  • @jasondreher

    Here is the section in my custom.css file for the MMM-WunderGround module.

    /*	MMM-Weatherunderground     */
    } .MMM-WunderGround table th {
      display: none; /* removes icons above max-temp, min-temp and % chance of rain */
    .MMM-WunderGround .max-temp {
      color: #f66;
    .MMM-WunderGround .min-temp {
      color: #0ff;
    .MMM-WunderGround .weather-icon {
      color: #f93;
    .MMM-WunderGround .day {
      color: #6f6;
    } .MMM-WunderGround table.small,   /* selector for ONLY current weather Thanks to Strawberry-3.141 */ .MMM-WunderGround table:not(.small),   /* selector for ONLY weather forecast */ .MMM-WunderGround table.small td:nth-child(6)  {
      display: none;    /* this line and line above selector for NO rain amount column */

Log in to reply