{"id":20078,"date":"2024-08-29T12:27:32","date_gmt":"2024-08-29T12:27:32","guid":{"rendered":"https:\/\/goodwriterz.com\/site\/?p=20078"},"modified":"2024-08-29T12:27:32","modified_gmt":"2024-08-29T12:27:32","slug":"how-to-build-your-own-futuristic-smart-mirror","status":"publish","type":"post","link":"https:\/\/goodwriterz.com\/site\/how-to-build-your-own-futuristic-smart-mirror\/","title":{"rendered":"How to Build Your Own Futuristic Smart Mirror"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_68_1 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title \" >\u062c\u062f\u0648\u0644 \u0627\u0644\u0645\u062d\u062a\u0648\u064a\u0627\u062a<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/goodwriterz.com\/site\/how-to-build-your-own-futuristic-smart-mirror\/#Beautiful_Configurable_and_Custom-Built\" title=\"Beautiful, Configurable, and Custom-Built\">Beautiful, Configurable, and Custom-Built<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/goodwriterz.com\/site\/how-to-build-your-own-futuristic-smart-mirror\/#The_Materials_Youll_Need\" title=\"The Materials You&#8217;ll Need\">The Materials You&#8217;ll Need<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/goodwriterz.com\/site\/how-to-build-your-own-futuristic-smart-mirror\/#Building_the_Frame\" title=\"Building the Frame\">Building the Frame<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/goodwriterz.com\/site\/how-to-build-your-own-futuristic-smart-mirror\/#Dissasembling_the_Monitor\" title=\"Dissasembling the Monitor\">Dissasembling the Monitor<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/goodwriterz.com\/site\/how-to-build-your-own-futuristic-smart-mirror\/#Determining_Wood_Measurements\" title=\"Determining Wood Measurements\">Determining Wood Measurements<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/goodwriterz.com\/site\/how-to-build-your-own-futuristic-smart-mirror\/#Miter_Cuts_For_a_Picture_Frame\" title=\"Miter Cuts For a Picture Frame\">Miter Cuts For a Picture Frame<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/goodwriterz.com\/site\/how-to-build-your-own-futuristic-smart-mirror\/#Gluing_the_Frame_Together\" title=\"Gluing the Frame Together\">Gluing the Frame Together<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/goodwriterz.com\/site\/how-to-build-your-own-futuristic-smart-mirror\/#Building_the_Box\" title=\"Building the Box\">Building the Box<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/goodwriterz.com\/site\/how-to-build-your-own-futuristic-smart-mirror\/#Gluing_the_Box_to_the_Frame\" title=\"Gluing the Box to the Frame\">Gluing the Box to the Frame<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/goodwriterz.com\/site\/how-to-build-your-own-futuristic-smart-mirror\/#Sanding_The_Frame_For_Staining_and_Painting\" title=\"Sanding The Frame For Staining and Painting\">Sanding The Frame For Staining and Painting<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/goodwriterz.com\/site\/how-to-build-your-own-futuristic-smart-mirror\/#Staining_Your_Frame\" title=\"Staining Your Frame\">Staining Your Frame<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/goodwriterz.com\/site\/how-to-build-your-own-futuristic-smart-mirror\/#Sealing_the_Wood_of_Your_Frame\" title=\"Sealing the Wood of Your Frame\">Sealing the Wood of Your Frame<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/goodwriterz.com\/site\/how-to-build-your-own-futuristic-smart-mirror\/#Hangers_for_Your_Frame\" title=\"Hangers for Your Frame\">Hangers for Your Frame<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/goodwriterz.com\/site\/how-to-build-your-own-futuristic-smart-mirror\/#Adding_the_Hardware_to_Your_Mirror\" title=\"Adding the Hardware to Your Mirror\">Adding the Hardware to Your Mirror<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/goodwriterz.com\/site\/how-to-build-your-own-futuristic-smart-mirror\/#Installing_Magic_Mirror_on_The_Raspberry_Pi\" title=\"Installing Magic Mirror on The Raspberry Pi\">Installing Magic Mirror on The Raspberry Pi<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/goodwriterz.com\/site\/how-to-build-your-own-futuristic-smart-mirror\/#Configuring_the_Magic_Mirror_Software\" title=\"Configuring the Magic Mirror Software\">Configuring the Magic Mirror Software<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/goodwriterz.com\/site\/how-to-build-your-own-futuristic-smart-mirror\/#Updating_Time_Calendar_Weather_and_News\" title=\"Updating Time, Calendar, Weather, and News\">Updating Time, Calendar, Weather, and News<\/a><\/li><\/ul><\/nav><\/div>\n<div>\n<p> A smart mirror can show your calendar, weather, and news like something out of a sci-fi movie. Powered by a Raspberry Pi, you can build your own with some simple tools and hardware. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":0,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":0,\"nbrPlacementsScanned\":0,\"ruleCount\":200,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":183} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":true,\"currentRuleCount\":200,\"actualCount\":183,\"hasActualCountMetThreshold\":true,\"countRemainingForInjection\":17,\"nextBlockCount\":240,\"hasCountRemainingForInjectionMetThreshold\":true,\"nextCount\":423} --><\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":0,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":0,\"nbrPlacementsScanned\":0,\"ruleCount\":200,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":200} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":1,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":1,\"nbrPlacementsScanned\":0,\"ruleCount\":200,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":0} --><br \/>\n<!-- No winning ad found for zone: below first paragraph! --><br \/>\n<!-- No winning ad found for zone: native in content! --><\/p>\n<h2 id=\"beautiful-configurable-and-custom-built\"><span class=\"ez-toc-section\" id=\"Beautiful_Configurable_and_Custom-Built\"><\/span> Beautiful, Configurable, and Custom-Built <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"Smart Mirror showing time, date, and calendar.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\"><figcaption class=\"body-img-caption\">Josh Hendrickson \/ How-To Geek<\/figcaption><\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":1,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":1,\"nbrPlacementsScanned\":1,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":223} --><\/p>\n<p> Smart mirrors have been around awhile, and the most prominent version comes from\u00a0<a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/michaelteeuw.nl\/\">Michael Teeuw<\/a>. The idea is pretty simple; you&#8217;ll build a frame and box. Inside the box, you&#8217;ll place one-way glass (often seen on TV in police dramas), a monitor, a Raspberry Pi, and the cables necessary to power your setup. Michael and other contributors have created an open-source\u00a0<a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/magicmirror.builders\/\">Magic Mirror<\/a>\u00a0platform you can install. Once installed, you can customize it to show your calendar, weather, news, and more. Installing the software is easy&#8212;it requires just one line of code. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":1,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":1,\"nbrPlacementsScanned\":1,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":785} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":true,\"currentRuleCount\":900,\"actualCount\":785,\"hasActualCountMetThreshold\":true,\"countRemainingForInjection\":115,\"nextBlockCount\":458,\"hasCountRemainingForInjectionMetThreshold\":true,\"nextCount\":1243} --><\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":1,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":1,\"nbrPlacementsScanned\":1,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":900} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":2,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":2,\"nbrPlacementsScanned\":1,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":0} --><\/p>\n<p> The harder parts are creating the frame box, setting up the Raspberry Pi, and then customizing the software to show your preferred information. But even someone with little to no experience with woodworking and code can build this DIY project with a bit of patience\u00a0in a weekend or two. The longest parts are passive, like waiting for glue and stain to dry. You&#8217;ll spend about three to five hours actively working on the frame and installing the software. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":2,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":2,\"nbrPlacementsScanned\":2,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":343} --><\/p>\n<p> And we&#8217;ll show you exactly how. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":2,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":2,\"nbrPlacementsScanned\":2,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":376} --><\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":2,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":2,\"nbrPlacementsScanned\":2,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":376} --><\/p>\n<h2 id=\"the-materials-you-ll-need\"><span class=\"ez-toc-section\" id=\"The_Materials_Youll_Need\"><\/span> The Materials You&#8217;ll Need <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p> Depending on what you already have, this project can either be inexpensive or expensive. If you bought every item in the following list, you&#8217;d spend around $700. But because we had everything on hand except the glass and wood, we only spent $140. And remember, you don&#8217;t have to buy the tools. If you have a friend who owns some, ask if you can borrow them. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":2,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":2,\"nbrPlacementsScanned\":2,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":735} --><\/p>\n<p> To get started you&#8217;ll need the following: <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":2,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":2,\"nbrPlacementsScanned\":2,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":778} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":true,\"currentRuleCount\":900,\"actualCount\":778,\"hasActualCountMetThreshold\":true,\"countRemainingForInjection\":122,\"nextBlockCount\":1330,\"hasCountRemainingForInjectionMetThreshold\":true,\"nextCount\":2108} --><\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":2,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":2,\"nbrPlacementsScanned\":2,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":900} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":3,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":3,\"nbrPlacementsScanned\":2,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":0} --><\/p>\n<ul>\n<li> A monitor: Preferably at least 24 inches, and one you don&#8217;t care about losing. Something thinner and lighter is better, but this monitor by Sceptre would work. You&#8217;ll need to remove the stand. It&#8217;s also helpful (but not necessary) to remove the frame from the monitor. <\/li>\n<li>Two-way Glass: Your glass should be a little larger than the dimensions of your monitor. The product we linked on Amazon is a generic size, but we had good luck ordering from a local glass supplier. <\/li>\n<li> One Raspberry Pi 3 <\/li>\n<li> A Raspberry Pi case <\/li>\n<li>Wood stain or paint <\/li>\n<li>Polyurethane\u00a0(if staining) <\/li>\n<li>Wood filler\u00a0(if staining, get stainable wood filler) <\/li>\n<li> Sandpaper in 80, 120, and 220 grit (omit 220 if you decide to paint) <\/li>\n<li> A miter saw (or handsaw and protractor) <\/li>\n<li>Wood glue <\/li>\n<li> A measuring tape. <\/li>\n<li> A ruler or other straight edge (for drawing straight lines). <\/li>\n<li>Painters tape <\/li>\n<li>Bungee cords <\/li>\n<li>Short wood screws <\/li>\n<li>Shims <\/li>\n<li>Nylon strap <\/li>\n<li> A screwdriver <\/li>\n<li>Heavy duty frame hooks (if hanging) <\/li>\n<li>Ear, eye, and breathing protection. Add a vapor filter if you&#8217;re applying polyurethane without ventilation. <\/li>\n<li> Wood to build the frame and box: We recommend hardwood like Maple or Walnut at least one inch thick. You&#8217;ll also want something thin like plywood to make the back of the box if you aren&#8217;t hanging the frame. How much wood and how wide depends on your monitor (see more in building the frame.) <\/li>\n<\/ul>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":3,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":3,\"nbrPlacementsScanned\":3,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":1208} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":4,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":4,\"nbrPlacementsScanned\":3,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":0} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":false,\"currentRuleCount\":900,\"actualCount\":0,\"hasActualCountMetThreshold\":null,\"countRemainingForInjection\":null,\"nextBlockCount\":null,\"hasCountRemainingForInjectionMetThreshold\":null} --><\/p>\n<p> For a more straightforward build, we have a few advanced options. These are not necessary, but they&#8217;ll help: <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":4,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":4,\"nbrPlacementsScanned\":4,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":110} --><\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":4,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":4,\"nbrPlacementsScanned\":4,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":260} --><\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":4,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":4,\"nbrPlacementsScanned\":4,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":260} --><\/p>\n<h2 id=\"building-the-frame\"><span class=\"ez-toc-section\" id=\"Building_the_Frame\"><\/span> Building the Frame <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"391\" loading=\"lazy\" alt=\"A sketchup design of a mitered corner frame with box sides.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934444_905_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934444_905_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C391&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\">  <\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":4,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":4,\"nbrPlacementsScanned\":4,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":500} --><\/p>\n<p> To start, you&#8217;re going to make a basic frame (like the one you might find hanging on your wall). Then you&#8217;ll add a simple box to hold the mirror, monitor, Raspberry Pi, and cabling.\u00a0 When completed, the structure might resemble a very shallow medicine cabinet. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":4,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":4,\"nbrPlacementsScanned\":4,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":763} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"329\" loading=\"lazy\" alt=\"A sketchup design of a magic smart mirror frame\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934444_842_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934444_842_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C329&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\">  <\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":4,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":4,\"nbrPlacementsScanned\":4,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":1003} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":5,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":5,\"nbrPlacementsScanned\":4,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":0} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":false,\"currentRuleCount\":900,\"actualCount\":0,\"hasActualCountMetThreshold\":null,\"countRemainingForInjection\":null,\"nextBlockCount\":null,\"hasCountRemainingForInjectionMetThreshold\":null} --><\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":5,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":5,\"nbrPlacementsScanned\":5,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":0} --><\/p>\n<h2 id=\"dissasembling-the-monitor\"><span class=\"ez-toc-section\" id=\"Dissasembling_the_Monitor\"><\/span> Dissasembling the Monitor <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p> The first step to building your frame starts with your monitor. The size of your monitor determines the size of your glass and the length and width of the wood you need. If you plan to remove the frame from your monitor, you&#8217;ll want to do that now. Every monitor is different, so we can&#8217;t give exact instructions here. You&#8217;ll want to look for seams along the edge to pry apart, and every step of the way try to be gentle. You should have something like this when you finish: <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":5,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":5,\"nbrPlacementsScanned\":5,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":476} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"314\" loading=\"lazy\" alt=\"The back of a monitor with frame removed.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934444_580_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934444_580_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C314&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\"><figcaption class=\"body-img-caption\">Josh Hendrickson \/ How-To Geek<\/figcaption><\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":5,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":5,\"nbrPlacementsScanned\":5,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":716} --><\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":5,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":5,\"nbrPlacementsScanned\":5,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":716} --><\/p>\n<h2 id=\"determining-wood-measurements\"><span class=\"ez-toc-section\" id=\"Determining_Wood_Measurements\"><\/span> Determining Wood Measurements <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p> Once you have the frame removed (or if you&#8217;re skipping that step), measure the length of the monitor and the width inside the edges of the screen. Measure either along the metal frame on the innards or the inside edge of the frame if you didn&#8217;t take it apart. <\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":5,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":5,\"nbrPlacementsScanned\":5,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":977} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":6,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":6,\"nbrPlacementsScanned\":5,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":0} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":false,\"currentRuleCount\":900,\"actualCount\":0,\"hasActualCountMetThreshold\":null,\"countRemainingForInjection\":null,\"nextBlockCount\":null,\"hasCountRemainingForInjectionMetThreshold\":null} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"314\" loading=\"lazy\" alt=\"Monitor with arrows showing measurements of length and width.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934444_179_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934444_179_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C314&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\"><figcaption class=\"body-img-caption\">Josh Hendrickson \/ How-To Geek<\/figcaption><\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":6,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":6,\"nbrPlacementsScanned\":6,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":240} --><\/p>\n<p> Write those down, and double the numbers. That final number is the total length of wood you will need. For instance, the width of this monitor is 11 and a half inches, and the length is 19 and a half inches. Doubling means 23 inches and 48 inches of wood respectively. It&#8217;s best to buy at least a few more inches than you need to account for cut pieces and mistakes. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":6,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":6,\"nbrPlacementsScanned\":6,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":608} --><\/p>\n<p> Next, to determine the width of the wood you need to buy, place your monitor on a flat surface, screen side down. Now measure up from the flat surface to determine how thick your monitor is. The wood you purchase needs to be at least that wide, preferably a little wider. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":6,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":6,\"nbrPlacementsScanned\":6,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":881} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":true,\"currentRuleCount\":900,\"actualCount\":881,\"hasActualCountMetThreshold\":true,\"countRemainingForInjection\":19,\"nextBlockCount\":90,\"hasCountRemainingForInjectionMetThreshold\":true,\"nextCount\":971} --><\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":6,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":6,\"nbrPlacementsScanned\":6,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":900} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":7,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":7,\"nbrPlacementsScanned\":6,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":0} --><\/p>\n<p> The box calls for a similar length to the frame so you can double the amount once again. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":7,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":7,\"nbrPlacementsScanned\":7,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":71} --><\/p>\n<p> In the case of this project, we bought four boards that were three inches wide and one inch thick. Two boards measured 36 inches long, and the other two were 48 inches long. The extra length means plenty of room for mistakes. If you have a large vehicle, you could buy two long boards (84 inches in this case). <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":7,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":7,\"nbrPlacementsScanned\":7,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":383} --><\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":7,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":7,\"nbrPlacementsScanned\":7,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":383} --><\/p>\n<h2 id=\"miter-cuts-for-a-picture-frame\"><span class=\"ez-toc-section\" id=\"Miter_Cuts_For_a_Picture_Frame\"><\/span> Miter Cuts For a Picture Frame <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"Two boards with angle cuts, forming a miter joint.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934444_979_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934444_979_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\"><figcaption class=\"body-img-caption\">Josh Hendrickson \/ How-To Geek<\/figcaption><\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":7,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":7,\"nbrPlacementsScanned\":7,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":623} --><\/p>\n<p> If this is your first time using a miter saw, you should watch Steve Ramsey&#8217;s helpful <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.anrdoezrs.net\/links\/3607085\/type\/dlg\/sid\/UUhtgUeUpU213891\/https:\/\/www.youtube.com\/watch?v=RPUgrhnJVbU\" class=\"norewrite noskim\">miter saw basics video<\/a>. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":7,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":7,\"nbrPlacementsScanned\":7,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":734} --><\/p>\n<p> Before working with any power tools, sanding, or applying stain or polyurethane, you should wear protection. That includes safety glasses and a dust mask or vapor filter. If you&#8217;re using power tools, please use ear protection like earplugs. <\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":7,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":7,\"nbrPlacementsScanned\":7,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":976} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":8,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":8,\"nbrPlacementsScanned\":7,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":0} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":false,\"currentRuleCount\":900,\"actualCount\":0,\"hasActualCountMetThreshold\":null,\"countRemainingForInjection\":null,\"nextBlockCount\":null,\"hasCountRemainingForInjectionMetThreshold\":null} --><\/p>\n<p> Your next step is to cut miter angles into your wood. In this case, miter angles are just 45-degree angles. Two 45-degree angle boards pushed up to one another make a 90-degree corner. And four 90-degree corners will make a square, or in this case a rectangle. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":8,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":8,\"nbrPlacementsScanned\":8,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":262} --><\/p>\n<p> You can make this cut with a miter saw, a table saw, or even a handsaw and protractor. The handsaw is prone to drifting issues; you might not get a perfect angle or a straight vertical cut. So we highly recommend using a miter saw (which this guide will cover). <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":8,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":8,\"nbrPlacementsScanned\":8,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":525} --><\/p>\n<p> To start, set your miter saw to 45-degrees. Your miter saw has a left 45 and a right 45 option, choose the right 45 for this first cut. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":8,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":8,\"nbrPlacementsScanned\":8,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":662} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"Miter saw gauge set to 45 degrees\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934445_113_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934445_113_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\"><figcaption class=\"body-img-caption\">Josh Hendrickson \/ How-To Geek<\/figcaption><\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":8,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":8,\"nbrPlacementsScanned\":8,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":902} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":9,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":9,\"nbrPlacementsScanned\":8,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":0} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":false,\"currentRuleCount\":900,\"actualCount\":0,\"hasActualCountMetThreshold\":null,\"countRemainingForInjection\":null,\"nextBlockCount\":null,\"hasCountRemainingForInjectionMetThreshold\":null} --><\/p>\n<p> <strong>Tip:<\/strong> Most miter saws have hard stops at 45-degrees; you should feel it click into place. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":9,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":9,\"nbrPlacementsScanned\":9,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":90} --><\/p>\n<p> Now place your first &#8220;width&#8221; board on the miter saw, with the left end top corner extending just past the top left of the blade hole. You want the blade to pass through the entire board, but the goal is also to minimize the amount of wood taken off with this first cut. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":9,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":9,\"nbrPlacementsScanned\":9,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":361} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"Board on a miter saw, with a 45-degree line drawn on it to show a short cut.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934445_803_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934445_803_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\">  <\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":9,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":9,\"nbrPlacementsScanned\":9,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":601} --><\/p>\n<p> Josh Hendrickson \/ How-To Geek <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":9,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":9,\"nbrPlacementsScanned\":9,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":633} --><\/p>\n<p> Save the small piece you cut off; you&#8217;ll need that in just a moment. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":9,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":9,\"nbrPlacementsScanned\":9,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":703} --><\/p>\n<p> The next cut requires the opposite 45-degree angle to facilitate both corners running the same direction. Rather than move your saw back and forth, flip the board over then slide it down. Because you measured around the monitor, going forward, you need to measure the &#8216;inside&#8217; edges of the wood that will sit closest to the monitor. That means the shorter side. <\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":9,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":9,\"nbrPlacementsScanned\":9,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":1066} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":10,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":10,\"nbrPlacementsScanned\":9,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":0} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":false,\"currentRuleCount\":900,\"actualCount\":0,\"hasActualCountMetThreshold\":null,\"countRemainingForInjection\":null,\"nextBlockCount\":null,\"hasCountRemainingForInjectionMetThreshold\":null} --><\/p>\n<p> With the board flipped, measure the first length you wrote down earlier (11 inches in our above example) and draw a straight line up and down. Now grab the cut off piece from earlier and line the tip of it with your draw line, use this to draw a 45-degree angle line. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":10,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":10,\"nbrPlacementsScanned\":10,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":269} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"Board on a miter saw with a 90 degree line a 45 degree line\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934445_942_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934445_942_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\">  <\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":10,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":10,\"nbrPlacementsScanned\":10,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":509} --><\/p>\n<p> That mark is the angle and length for your cut. Slide your board down to make your next cut. It&#8217;s essential that you do not try to cut exactly on the line you drew. Your blade is thicker than the pencil line, which means cutting on the line gives you a shorter piece than you want. Just as in the picture above, scoot the board line past the blade so that you&#8217;re cutting slightly into the left-over wood. You can always take a little more off if you&#8217;ve left too much, but you can&#8217;t put wood back. <\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":10,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":10,\"nbrPlacementsScanned\":10,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":1007} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":11,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":11,\"nbrPlacementsScanned\":10,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":0} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":false,\"currentRuleCount\":900,\"actualCount\":0,\"hasActualCountMetThreshold\":null,\"countRemainingForInjection\":null,\"nextBlockCount\":null,\"hasCountRemainingForInjectionMetThreshold\":null} --><\/p>\n<p> You&#8217;ll repeat this process to get the rest of the frame boards. Flip the board, measure the length, cut, and repeat. Now you should have four pieces of angled wood that fit into a frame shape. If you find some of your cuts were off by a little, you may need to trim. Just take it slow and cut off less than you think you need; it&#8217;s better to nudge your way to the correct length than to overcut trying to move fast. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":11,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":11,\"nbrPlacementsScanned\":11,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":417} --><\/p>\n<p> When fit together, your boards should look like this: <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":11,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":11,\"nbrPlacementsScanned\":11,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":472} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"365\" loading=\"lazy\" alt=\"A rectangle, showing boards with 45 degree angles cut.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934445_733_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934445_733_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C365&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\">  <\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":11,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":11,\"nbrPlacementsScanned\":11,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":712} --><\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":11,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":11,\"nbrPlacementsScanned\":11,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":712} --><\/p>\n<h2 id=\"gluing-the-frame-together\"><span class=\"ez-toc-section\" id=\"Gluing_the_Frame_Together\"><\/span> Gluing the Frame Together <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p> Now it&#8217;s time to glue your boards together. You may be wondering why we&#8217;re not using nails or screws.\u00a0 Wood glue is incredibly strong and will give us a tighter and stronger joint than nails will, and has the benefit of a cleaner look, thanks to the lack of nail and screw heads. <\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":11,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":11,\"nbrPlacementsScanned\":11,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":994} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":12,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":12,\"nbrPlacementsScanned\":11,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":0} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":false,\"currentRuleCount\":900,\"actualCount\":0,\"hasActualCountMetThreshold\":null,\"countRemainingForInjection\":null,\"nextBlockCount\":null,\"hasCountRemainingForInjectionMetThreshold\":null} --><\/p>\n<p> It is true that miter joints aren&#8217;t as strong as other joints, but for our purposes, we don&#8217;t need strength, we want the decorative look. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":12,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":12,\"nbrPlacementsScanned\":12,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":139} --><\/p>\n<p> Applying wood glue is a straight forward process, and if you&#8217;ve ever used any other kind of glue, you already know most of what to do. You&#8217;ll need to apply glue to the edge you want to join, spread it to cover all of the wood faces, then push it against the other piece. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":12,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":12,\"nbrPlacementsScanned\":12,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":411} --><\/p>\n<p> But, unlike paper glue, you can&#8217;t just let go&#8212;to give you time to get perfect placement, wood glue has a slow drying time, and if you let go too soon, it can slide or come apart. To solve this problem, you can use corner clamps to hold the angled wood together. If you don&#8217;t have corner clamps, we have a tape trick that will do the job. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":12,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":12,\"nbrPlacementsScanned\":12,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":752} --><\/p>\n<p> FIrst grab a length and width piece (in the above picture, a horizontal and vertical part) and place them on their &#8216;back&#8217;s with the angle cuts barely touching. Then cut off a piece of painters tape long enough to grip both pieces of wood and place it next to your frame pieces. <\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":12,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":12,\"nbrPlacementsScanned\":12,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":1031} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":13,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":13,\"nbrPlacementsScanned\":12,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":0} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":false,\"currentRuleCount\":900,\"actualCount\":0,\"hasActualCountMetThreshold\":null,\"countRemainingForInjection\":null,\"nextBlockCount\":null,\"hasCountRemainingForInjectionMetThreshold\":null} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"Two boards with angled ends touching, next to a strip of painters tape.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934445_998_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934445_998_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\"><figcaption class=\"body-img-caption\">Josh Hendrickson \/ How-To Geek<\/figcaption><\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":13,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":13,\"nbrPlacementsScanned\":13,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":240} --><\/p>\n<p> Now apply a thin bead of glue to one of the angled pieces. Then use either your finger or brush to spread it to touch the entire face of that angle. Then apply the glue to the other angled face. With an edge grain, wood tends to soak in glue, so wait five minutes then apply the glue again. Then place the boards on the piece of tape, be sure to keep the corners touching. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":13,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":13,\"nbrPlacementsScanned\":13,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":614} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"Two boards on tape with glue applied to the mitered ends.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934445_401_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934445_401_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\"><figcaption class=\"body-img-caption\">Josh Hendrickson \/ How-To Geek<\/figcaption><\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":13,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":13,\"nbrPlacementsScanned\":13,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":854} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":true,\"currentRuleCount\":900,\"actualCount\":854,\"hasActualCountMetThreshold\":true,\"countRemainingForInjection\":46,\"nextBlockCount\":222,\"hasCountRemainingForInjectionMetThreshold\":true,\"nextCount\":1076} --><\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":13,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":13,\"nbrPlacementsScanned\":13,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":900} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":14,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":14,\"nbrPlacementsScanned\":13,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":0} --><\/p>\n<p> Fold the two pieces together, ensuring the tape stays as tight as possible. Then flatten and flaps of tape hanging over. Take your roll of tape and cross over the angles several times to make as tight a seal as possible. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":14,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":14,\"nbrPlacementsScanned\":14,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":176} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"A frame corner with tape all around the edges.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934446_981_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934446_981_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\"><figcaption class=\"body-img-caption\">Josh Hendrickson \/ How-To Geek<\/figcaption><\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":14,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":14,\"nbrPlacementsScanned\":14,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":416} --><\/p>\n<p> <strong>Tip:<\/strong> Glue seeping out as seen here is a good sign that you&#8217;ve applied enough glue. Wait about fifteen minutes for the glue to gel and then scrape it off with a putty knife or plastic butter knife. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":14,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":14,\"nbrPlacementsScanned\":14,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":614} --><\/p>\n<p> Repeat the process with the other boards, and then join them together. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":14,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":14,\"nbrPlacementsScanned\":14,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":686} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"Magic mirror frame taped\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934446_878_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934446_878_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\">  <\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":14,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":14,\"nbrPlacementsScanned\":14,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":926} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":15,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":15,\"nbrPlacementsScanned\":14,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":0} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":false,\"currentRuleCount\":900,\"actualCount\":0,\"hasActualCountMetThreshold\":null,\"countRemainingForInjection\":null,\"nextBlockCount\":null,\"hasCountRemainingForInjectionMetThreshold\":null} --><\/p>\n<p> Check the instructions on your wood glue, and leave the frame taped for at least the minimum time it requires. The longer you leave the wood clamped, the stronger it will be, although any more than 24 hours isn&#8217;t usually necessary. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":15,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":15,\"nbrPlacementsScanned\":15,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":233} --><\/p>\n<p> After the glue is dried, remove the tape and check your corners. If you see any gaps, that&#8217;s fine; you can fill them with wood filler. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":15,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":15,\"nbrPlacementsScanned\":15,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":369} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"Two boards with angle cuts, forming a miter joint.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934444_979_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934444_979_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\"><figcaption class=\"body-img-caption\">Josh Hendrickson \/ How-To Geek<\/figcaption><\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":15,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":15,\"nbrPlacementsScanned\":15,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":609} --><\/p>\n<p> Wood filler is just what it sounds like. It&#8217;s composed of wood pieces, glue, plastics, and other contents. The goal with wood filler is to overfill the hole. Don&#8217;t worry about any wood filler spread around the gap, that will be removed by sanding later. You can use a putty knife or a plastic kitchen knife to spread it across the wood. <\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":15,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":15,\"nbrPlacementsScanned\":15,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":947} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":16,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":16,\"nbrPlacementsScanned\":15,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":0} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":false,\"currentRuleCount\":900,\"actualCount\":0,\"hasActualCountMetThreshold\":null,\"countRemainingForInjection\":null,\"nextBlockCount\":null,\"hasCountRemainingForInjectionMetThreshold\":null} --><\/p>\n<p> <strong>Tip:<\/strong> Wood filler should have a yogurt sludge-like consistency. If it&#8217;s hard and caked as in the below picture, mix in 3 parts mineral spirits and 1 part mineral oil to rejuvenate it. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":16,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":16,\"nbrPlacementsScanned\":16,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":184} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"A corner of the frame with wood filler, a putty knife, and a plastic knife.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934446_500_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934446_500_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\"><figcaption class=\"body-img-caption\">Josh Hendrickson \/ How-To Geek<\/figcaption><\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":16,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":16,\"nbrPlacementsScanned\":16,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":424} --><\/p>\n<p> Again, read the package of your wood filler. Usually, you&#8217;ll need to wait an hour to sand and a day to stain. After you&#8217;ve waited long enough to sand it, use your 80 grit sandpaper to remove the excess wood filler on your frame. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":16,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":16,\"nbrPlacementsScanned\":16,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":654} --><\/p>\n<p> Congratulations, you&#8217;ve built a frame. As a quick test, lay your glass and mirror on the frame to doublecheck that sit firmly on it and don&#8217;t fall into the rectangular hole. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":16,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":16,\"nbrPlacementsScanned\":16,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":829} --><\/p>\n<p> <strong>Tip:<\/strong> If you have a router table, you can use a Roman Ogee bit to add decoration to your frame. <\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":16,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":16,\"nbrPlacementsScanned\":16,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":925} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":17,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":17,\"nbrPlacementsScanned\":16,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":0} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":false,\"currentRuleCount\":900,\"actualCount\":0,\"hasActualCountMetThreshold\":null,\"countRemainingForInjection\":null,\"nextBlockCount\":null,\"hasCountRemainingForInjectionMetThreshold\":null} --><\/p>\n<p> Now it&#8217;s time to build a box. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":17,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":17,\"nbrPlacementsScanned\":17,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":31} --><\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":17,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":17,\"nbrPlacementsScanned\":17,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":31} --><\/p>\n<h2 id=\"building-the-box\"><span class=\"ez-toc-section\" id=\"Building_the_Box\"><\/span> Building the Box <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p> Now that your frame is complete, it&#8217;s time to build up a box. The good news is, this is much easier than cutting the wood and putting together the frame. The basic idea is to build a rectangle of wood sized to the outer edges of your frame: <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":17,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":17,\"nbrPlacementsScanned\":17,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":273} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"A view of a rectangle set of boards atop the frame.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934446_917_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934446_917_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\">  <\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":17,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":17,\"nbrPlacementsScanned\":17,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":513} --><\/p>\n<p> You&#8217;ll start by cutting two pieces of wood that run the same length as the long boards of your frame. Measure your frame at the edge from end to end. Then, measure that distance on one of your uncut boards and draw a straight line with a ruler or other straight edge. For this cut, you&#8217;ll set your miter saw to &#8220;0&#8221; to make a straight cut. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":17,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":17,\"nbrPlacementsScanned\":17,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":853} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":true,\"currentRuleCount\":900,\"actualCount\":853,\"hasActualCountMetThreshold\":true,\"countRemainingForInjection\":47,\"nextBlockCount\":240,\"hasCountRemainingForInjectionMetThreshold\":true,\"nextCount\":1093} --><\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":17,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":17,\"nbrPlacementsScanned\":17,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":900} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":18,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":18,\"nbrPlacementsScanned\":17,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":0} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"Miter saw set to 0 for cut\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934446_181_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934446_181_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\"><figcaption class=\"body-img-caption\">Josh Hendrickson \/ How-To Geek<\/figcaption><\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":18,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":18,\"nbrPlacementsScanned\":18,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":193} --><\/p>\n<p> <strong>Tip:<\/strong> Just like the 45-degree angle, most miter saws have a &#8220;hard stop&#8221; at zero; you should feel it click into place. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":18,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":18,\"nbrPlacementsScanned\":18,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":311} --><\/p>\n<p> Again, when you place your board on the saw, don&#8217;t try to cut directly on the line. Cut next to the line, on the side of the board that&#8217;s &#8220;extra&#8221; (not the piece you&#8217;re cutting off). <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":18,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":18,\"nbrPlacementsScanned\":18,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":494} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"A board on a miter saw with a drawn line, the blade to the left of the line.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934446_804_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934446_804_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\">  <\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":18,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":18,\"nbrPlacementsScanned\":18,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":734} --><\/p>\n<p> In the above picture, the cut piece will be to the right. The line shown is extra wide for clarity, but notice the blade will cut just to the left of the mark. It&#8217;s better to cut a board a hair too long and trim down than to cut it too short. <\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":18,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":18,\"nbrPlacementsScanned\":18,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":978} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":19,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":19,\"nbrPlacementsScanned\":18,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":0} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":false,\"currentRuleCount\":900,\"actualCount\":0,\"hasActualCountMetThreshold\":null,\"countRemainingForInjection\":null,\"nextBlockCount\":null,\"hasCountRemainingForInjectionMetThreshold\":null} --><\/p>\n<p> After you&#8217;ve cut your first board, you can place it on the second board and use it as a measuring stick. Just draw your line with the straight edge you&#8217;ve created, and again follow the above procedure when connecting. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":19,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":19,\"nbrPlacementsScanned\":19,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":219} --><\/p>\n<p> Fit your boards on your frame and feel the edges to determine that they&#8217;re flush and not too long. Trim as necessary. Then measure the gaps between your two boards to determine the length for your final two pieces. Again, draw lines and cut just off those lines and trim as necessary. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":19,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":19,\"nbrPlacementsScanned\":19,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":505} --><\/p>\n<p> You should end up with something like this: <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":19,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":19,\"nbrPlacementsScanned\":19,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":550} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"398\" loading=\"lazy\" alt=\"Four boards forming a rectangle.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934447_59_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934447_59_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C398&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\">  <\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":19,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":19,\"nbrPlacementsScanned\":19,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":790} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":true,\"currentRuleCount\":900,\"actualCount\":790,\"hasActualCountMetThreshold\":true,\"countRemainingForInjection\":110,\"nextBlockCount\":290,\"hasCountRemainingForInjectionMetThreshold\":true,\"nextCount\":1080} --><\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":19,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":19,\"nbrPlacementsScanned\":19,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":900} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":20,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":20,\"nbrPlacementsScanned\":19,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":0} --><\/p>\n<p> Again, you should do a test fit of your glass and monitor with all your completed components. Lay the glass and monitor on the frame, then add these four boards around it to doublecheck the hardware fits inside. It&#8217;s okay if they aren&#8217;t a snug fit, we&#8217;ll take care of that in later steps. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":20,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":20,\"nbrPlacementsScanned\":20,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":180} --><\/p>\n<p> Now you&#8217;ll glue the boards together. As we mentioned before, the ends of a board (end grain) will soak up glue, weakening the joint. Apply glue to both ends of both shorter pieces, wait five minutes, and apply again. Then squeeze the longer boards into position. Try to make sure they are flush (all the edges line up). <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":20,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":20,\"nbrPlacementsScanned\":20,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":501} --><\/p>\n<p> Just like above, wood glue has a slow drying time, so you need to maintain constant pressure. If you have F-Clamps, you can now use three to four to apply pressure to the boards. If you don&#8217;t, bungee cords will do the trick. Very carefully wrap bungee cords around the rectangle, try to keep the corners at 90-degree angles. Then attach the bungee hooks: <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":20,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":20,\"nbrPlacementsScanned\":20,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":857} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":true,\"currentRuleCount\":900,\"actualCount\":857,\"hasActualCountMetThreshold\":true,\"countRemainingForInjection\":43,\"nextBlockCount\":240,\"hasCountRemainingForInjectionMetThreshold\":true,\"nextCount\":1097} --><\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":20,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":20,\"nbrPlacementsScanned\":20,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":900} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":21,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":21,\"nbrPlacementsScanned\":20,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":0} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"Four pieces of wood arranged in a rectangle with a bungee cord pulling them together.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934447_23_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934447_23_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\"><figcaption class=\"body-img-caption\">Josh Hendrickson \/ How-To Geek<\/figcaption><\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":21,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":21,\"nbrPlacementsScanned\":21,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":197} --><\/p>\n<p> You&#8217;ll want to use strong, tight bungee cords. And depending on the strength, you may want to use more than one set. The above bungee cords are brand new and fit tightly around the box, so one was enough. But you can add more for good measure. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":21,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":21,\"nbrPlacementsScanned\":21,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":442} --><\/p>\n<p> Wait for the glue to dry (as per your glue directions) then remove the cords. Again, check that all edges are flush and that your rectangle box is flat. If the edge of a board drifted up or down, you could sand it flat. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":21,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":21,\"nbrPlacementsScanned\":21,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":663} --><\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":21,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":21,\"nbrPlacementsScanned\":21,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":663} --><\/p>\n<h2 id=\"gluing-the-box-to-the-frame\"><span class=\"ez-toc-section\" id=\"Gluing_the_Box_to_the_Frame\"><\/span> Gluing the Box to the Frame <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p> Gluing the box to the frame is relatively straight forward. Squeeze glue out in a line the entire way around the narrow edge of the box, then spread it out across the wood with your finger or a brush. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":21,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":21,\"nbrPlacementsScanned\":21,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":865} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":true,\"currentRuleCount\":900,\"actualCount\":865,\"hasActualCountMetThreshold\":true,\"countRemainingForInjection\":35,\"nextBlockCount\":240,\"hasCountRemainingForInjectionMetThreshold\":true,\"nextCount\":1105} --><\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":21,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":21,\"nbrPlacementsScanned\":21,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":900} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":22,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":22,\"nbrPlacementsScanned\":21,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":0} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"300\" loading=\"lazy\" alt=\"Edge of a board with glue spread across it.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934447_268_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934447_268_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C300&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\"><figcaption class=\"body-img-caption\">Josh Hendrickson \/ How-To Geek<\/figcaption><\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":22,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":22,\"nbrPlacementsScanned\":22,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":205} --><\/p>\n<p> The goal is to get good coverage of the glue across the wood; it doesn&#8217;t need to be a thick layer though. Take a look at your frame and determine which side you think looks better. Place that side down on a flat surface (preferably covered in paper). Then place your onto the frame, glue side down. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":22,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":22,\"nbrPlacementsScanned\":22,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":505} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"Box attached to frame\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934447_933_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934447_933_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\"><figcaption class=\"body-img-caption\">Josh Hendrickson \/ How-To Geek<\/figcaption><\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":22,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":22,\"nbrPlacementsScanned\":22,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":745} --><\/p>\n<p> To add pressure, the easiest thing to do is use heavy objects. Place something flat on the box like cardboard or plywood, then place heavy weights on the edges of the frame, like paint cans or books. Try to aim for even spacing to provide pressure all around the box. <\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":22,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":22,\"nbrPlacementsScanned\":22,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":1014} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":23,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":23,\"nbrPlacementsScanned\":22,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":0} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":false,\"currentRuleCount\":900,\"actualCount\":0,\"hasActualCountMetThreshold\":null,\"countRemainingForInjection\":null,\"nextBlockCount\":null,\"hasCountRemainingForInjectionMetThreshold\":null} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"Paint and stain cans sitting atop a flat MDF piece over the box frame.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934447_569_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934447_569_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\"><figcaption class=\"body-img-caption\">Josh Hendrickson \/ How-To Geek<\/figcaption><\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":23,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":23,\"nbrPlacementsScanned\":23,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":240} --><\/p>\n<p> Again, wait for at least the minimum time your glue specifies. When you take off the weights, and flat piece, inspect your box for gaps and fill with wood glue as needed. After letting that dry, it&#8217;s time for sanding. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":23,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":23,\"nbrPlacementsScanned\":23,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":459} --><\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":23,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":23,\"nbrPlacementsScanned\":23,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":459} --><\/p>\n<h2 id=\"sanding-the-frame-for-staining-and-painting\"><span class=\"ez-toc-section\" id=\"Sanding_The_Frame_For_Staining_and_Painting\"><\/span> Sanding The Frame For Staining and Painting <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"300\" loading=\"lazy\" alt=\"Frame with pencil wavy lines drawn on the wood.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934448_639_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934448_639_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C300&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\"><figcaption class=\"body-img-caption\">Josh Hendrickson \/ How-To Geek<\/figcaption><\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":23,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":23,\"nbrPlacementsScanned\":23,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":699} --><\/p>\n<p> Before you stain or paint wood, you need to sand it properly. Sanding your wood removes splinters, dings, and other blemishes the building process created. If you skip this step, stain and paint will only highlight the imperfections. <\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":23,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":23,\"nbrPlacementsScanned\":23,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":934} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":24,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":24,\"nbrPlacementsScanned\":23,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":0} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":false,\"currentRuleCount\":900,\"actualCount\":0,\"hasActualCountMetThreshold\":null,\"countRemainingForInjection\":null,\"nextBlockCount\":null,\"hasCountRemainingForInjectionMetThreshold\":null} --><\/p>\n<p> If you&#8217;re new to sanding, the process is pretty straight forward. As much as possible, sand with the grain of the wood (that is, follow the lines you see in the wood), and don&#8217;t push with all your might. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":24,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":24,\"nbrPlacementsScanned\":24,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":205} --><\/p>\n<p> <strong>Tip:<\/strong> If you&#8217;re new to sanding, try drawing wavy lines on your frame as seen in the picture above. When the lines are gone, you&#8217;ve probably sanded enough. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":24,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":24,\"nbrPlacementsScanned\":24,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":360} --><\/p>\n<p> Start with the 80 grit sandpaper, then move to the 120, then the 220. If you&#8217;re painting or you want a deeper stain color, skip the 220 grit paper. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":24,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":24,\"nbrPlacementsScanned\":24,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":509} --><\/p>\n<p> After sanding, run your hands along the wood. You should feel a noticeable difference where you&#8217;ve sanded. Try to find any areas you missed and sand as needed. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":24,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":24,\"nbrPlacementsScanned\":24,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":670} --><\/p>\n<p> Don&#8217;t forget to sand the inside border of your frame, where your monitor will show. You can skip sanding any section that won&#8217;t be visible. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":24,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":24,\"nbrPlacementsScanned\":24,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":811} --><\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":24,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":24,\"nbrPlacementsScanned\":24,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":811} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":true,\"currentRuleCount\":900,\"actualCount\":811,\"hasActualCountMetThreshold\":true,\"countRemainingForInjection\":89,\"nextBlockCount\":240,\"hasCountRemainingForInjectionMetThreshold\":true,\"nextCount\":1051} --><\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":24,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":24,\"nbrPlacementsScanned\":24,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":900} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":25,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":25,\"nbrPlacementsScanned\":24,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":0} --><\/p>\n<h2 id=\"staining-your-frame\"><span class=\"ez-toc-section\" id=\"Staining_Your_Frame\"><\/span> Staining Your Frame <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"387\" loading=\"lazy\" alt=\"A wood frame with stain and an old pair of socks.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934448_151_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934448_151_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C387&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\"><figcaption class=\"body-img-caption\">Josh Hendrickson \/ How-To Geek<\/figcaption><\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":25,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":25,\"nbrPlacementsScanned\":25,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":151} --><\/p>\n<p> If you&#8217;ve decided to paint your frame, you can skip this step and the sealing step. Just paint your frame as usual. If you&#8217;ve decided you look the look of the wood as is, you can skip the staining step, but you shouldn&#8217;t skip the sealing step. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":25,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":25,\"nbrPlacementsScanned\":25,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":396} --><\/p>\n<p> <strong>Tip:<\/strong> Skip the brush, use an old pair of socks or t-shirt to apply your stain. Have two sets, one for staining and one for wiping. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":25,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":25,\"nbrPlacementsScanned\":25,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":527} --><\/p>\n<p> Before staining, wipe off all the sawdust you created by sanding your frame. A sticky lint roller works well, but you can also use a mildly damp paper; just make sure to dry the wood immediately. If you have a shop vac, it can be helpful to vacuum the sawdust in the area as well. You don&#8217;t want sawdust to get in the stain. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":25,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":25,\"nbrPlacementsScanned\":25,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":853} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":true,\"currentRuleCount\":900,\"actualCount\":853,\"hasActualCountMetThreshold\":true,\"countRemainingForInjection\":47,\"nextBlockCount\":483,\"hasCountRemainingForInjectionMetThreshold\":true,\"nextCount\":1336} --><\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":25,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":25,\"nbrPlacementsScanned\":25,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":900} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":26,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":26,\"nbrPlacementsScanned\":25,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":0} --><\/p>\n<p> To stain your frame, doublecheck the directions of your stain for drying times. Usually, you&#8217;ll see a wipe off time and a restain time, take note of those. Start by opening the can and stirring the contents.\u00a0 The most efficient way to apply a stain is to wipe it on, which is why we recommend old socks or a t-shirt. Dip the material into the stain and let it absorb thoroughly. Then wipe onto your frame. You don&#8217;t need to push excessively hard, but try to work it into the wood. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":26,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":26,\"nbrPlacementsScanned\":26,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":436} --><\/p>\n<p> When you&#8217;re staining the vertical services, try to get a smooth line and avoid drips. Stain any part of your frame that will be visible, including the inside border where the monitor goes. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":26,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":26,\"nbrPlacementsScanned\":26,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":626} --><\/p>\n<p> Wait for the appropriate wipe off time, then wipe off any excess stain that hasn&#8217;t absorbed into the wood. This step is crucial if you don&#8217;t wipe the excess the stain will dry in an uneven mess. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":26,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":26,\"nbrPlacementsScanned\":26,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":822} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":true,\"currentRuleCount\":900,\"actualCount\":822,\"hasActualCountMetThreshold\":true,\"countRemainingForInjection\":78,\"nextBlockCount\":217,\"hasCountRemainingForInjectionMetThreshold\":true,\"nextCount\":1039} --><\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":26,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":26,\"nbrPlacementsScanned\":26,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":900} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":27,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":27,\"nbrPlacementsScanned\":26,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":0} --><\/p>\n<p> You&#8217;ll probably notice that the frame isn&#8217;t as dark after wiping off the excess stain, that&#8217;s normal. If you&#8217;d like your frame darker, wait the specified restain time, then repeat these steps until you&#8217;re satisfied. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":27,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":27,\"nbrPlacementsScanned\":27,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":139} --><\/p>\n<p> Before moving to the next step, wait until the stain is completely dry. This will be at least the &#8220;restain time&#8221; listed on your can, and the frame shouldn&#8217;t feel sticky. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":27,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":27,\"nbrPlacementsScanned\":27,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":310} --><\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":27,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":27,\"nbrPlacementsScanned\":27,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":310} --><\/p>\n<h2 id=\"sealing-the-wood-of-your-frame\"><span class=\"ez-toc-section\" id=\"Sealing_the_Wood_of_Your_Frame\"><\/span> Sealing the Wood of Your Frame <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"374\" loading=\"lazy\" alt=\"A stained frame with polyurethane, two brushes, and an old t-shirt.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934448_941_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934448_941_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C374&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\"><figcaption class=\"body-img-caption\">Josh Hendrickson \/ How-To Geek<\/figcaption><\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":27,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":27,\"nbrPlacementsScanned\":27,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":550} --><\/p>\n<p> Wood stain is decorative; it won&#8217;t protect your wood from light and other environmental damage, so you need to seal the wood. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":27,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":27,\"nbrPlacementsScanned\":27,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":677} --><\/p>\n<p> You can use many different finished, but wipe-on polyurethane (or poly) is an easy method. All you need is an old t-shirt. Other polyurethanes may call for a brush instead. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":27,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":27,\"nbrPlacementsScanned\":27,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":851} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":true,\"currentRuleCount\":900,\"actualCount\":851,\"hasActualCountMetThreshold\":true,\"countRemainingForInjection\":49,\"nextBlockCount\":254,\"hasCountRemainingForInjectionMetThreshold\":true,\"nextCount\":1105} --><\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":27,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":27,\"nbrPlacementsScanned\":27,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":900} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":28,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":28,\"nbrPlacementsScanned\":27,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":0} --><\/p>\n<p> Again, open the can and stir the contents. Then load up your t-shirt or brush. Try to apply in long even strokes to avoid runny lines. When applying to vertical surfaces, try to avoid leaving behind large globs of poly; otherwise, it will dry that way. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":28,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":28,\"nbrPlacementsScanned\":28,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":205} --><\/p>\n<p> <strong>Tip:<\/strong> If you bought a &#8220;crystal-clear&#8221; poly, it will look milky white as you apply. When it dries, it will turn clear. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":28,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":28,\"nbrPlacementsScanned\":28,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":323} --><\/p>\n<p> Check the directions on your can. It will list a dry time and a minimum number of layers. After each drying period lightly sand with the 220 grit sandpaper. Do not use power tools for this step; you&#8217;ll sand through the polyurethane and the stain. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":28,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":28,\"nbrPlacementsScanned\":28,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":571} --><\/p>\n<p> The goal here is to flatten any bumps in the poly layer, not remove it entirely. Repeat these steps until you have the minimum number of layers your can suggests, you shouldn&#8217;t need more. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":28,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":28,\"nbrPlacementsScanned\":28,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":760} --><\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":28,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":28,\"nbrPlacementsScanned\":28,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":760} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":true,\"currentRuleCount\":900,\"actualCount\":760,\"hasActualCountMetThreshold\":true,\"countRemainingForInjection\":140,\"nextBlockCount\":318,\"hasCountRemainingForInjectionMetThreshold\":true,\"nextCount\":1078} --><\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":28,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":28,\"nbrPlacementsScanned\":28,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":900} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":29,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":29,\"nbrPlacementsScanned\":28,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":0} --><\/p>\n<h2 id=\"hangers-for-your-frame\"><span class=\"ez-toc-section\" id=\"Hangers_for_Your_Frame\"><\/span> Hangers for Your Frame <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p> If you plan to hang the frame on the wall, you have two options. You can attach sturdy hanging hooks, or you can drill holes in the box for wall nails to slide into. Either method will work, but you&#8217;ll want at least three (left, right, and center) across the top edge of the box to evenly distribute the heavyweight. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":29,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":29,\"nbrPlacementsScanned\":29,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":178} --><\/p>\n<p> Drilled holes will give you a flush against the wall profile. But hooks won&#8217;t require a drill to attach. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":29,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":29,\"nbrPlacementsScanned\":29,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":284} --><\/p>\n<p> Congratulations; you&#8217;ve built all the necessary frame components for your smart mirror. Now it&#8217;s time to move to the hardware. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":29,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":29,\"nbrPlacementsScanned\":29,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":412} --><\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":29,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":29,\"nbrPlacementsScanned\":29,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":412} --><\/p>\n<h2 id=\"adding-the-hardware-to-your-mirror\"><span class=\"ez-toc-section\" id=\"Adding_the_Hardware_to_Your_Mirror\"><\/span> Adding the Hardware to Your Mirror <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"Frame box with monitor and glass strapped in.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934448_716_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934448_716_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\">  <\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":29,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":29,\"nbrPlacementsScanned\":29,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":652} --><\/p>\n<p> Start by placing your glass and monitor into the frame box and positioning them so that they show through the rectangle hole correctly. You likely have gaps between the monitor and mirror and edges of the frame. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":29,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":29,\"nbrPlacementsScanned\":29,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":865} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":true,\"currentRuleCount\":900,\"actualCount\":865,\"hasActualCountMetThreshold\":true,\"countRemainingForInjection\":35,\"nextBlockCount\":422,\"hasCountRemainingForInjectionMetThreshold\":true,\"nextCount\":1287} --><\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":29,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":29,\"nbrPlacementsScanned\":29,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":900} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":30,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":30,\"nbrPlacementsScanned\":29,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":0} --><\/p>\n<p> One option is to screw shims into place as seen at the left of the above photo. But if space is too tight, or your glass is significantly larger than the monitor, shims won&#8217;t work. Instead, use a nylon strap. Screw one side in and draw tight to the other side to measure. Cut a length off a little longer than is needed. Use a lighter to burn the cut edge to reseal the nylon strap and then screw it into the other side. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":30,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":30,\"nbrPlacementsScanned\":30,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":387} --><\/p>\n<p> When the monitor and glass are secure, add the Raspberry Pi and power cords. If you added a case to the Raspberry Pi, consider using double-sided sticky tape to adhere it to the frame. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":30,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":30,\"nbrPlacementsScanned\":30,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":573} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"Frame box with strapped monitor and glass and raspberry pi\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934448_433_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934448_433_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\">  <\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":30,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":30,\"nbrPlacementsScanned\":30,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":813} --><\/p>\n<p> Once everything is positioned, drape a dark black cloth over the entire setup and either tape it to the frame or tack it to the frame. <\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":30,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":30,\"nbrPlacementsScanned\":30,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":949} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":31,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":31,\"nbrPlacementsScanned\":30,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":0} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":false,\"currentRuleCount\":900,\"actualCount\":0,\"hasActualCountMetThreshold\":null,\"countRemainingForInjection\":null,\"nextBlockCount\":null,\"hasCountRemainingForInjectionMetThreshold\":null} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"Frame box with draped black cloth.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934449_361_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934449_361_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\">  <\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":31,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":31,\"nbrPlacementsScanned\":31,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":240} --><\/p>\n<p> Adding a black cloth over the monitor and glass will also enhance the mirror effect. To demonstrate, here&#8217;s a split view of two-way glass with black cloth behind the left half of the mirror. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":31,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":31,\"nbrPlacementsScanned\":31,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":432} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"A two-way mirror with black cloth behind the left half, showing better reflection.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934449_263_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934449_263_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\">  <\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":31,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":31,\"nbrPlacementsScanned\":31,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":672} --><\/p>\n<p> Your hardware is complete. Now it&#8217;s time to set up your Raspberry Pi and install the Magic Mirror software. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":31,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":31,\"nbrPlacementsScanned\":31,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":781} --><\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":31,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":31,\"nbrPlacementsScanned\":31,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":781} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":true,\"currentRuleCount\":900,\"actualCount\":781,\"hasActualCountMetThreshold\":true,\"countRemainingForInjection\":119,\"nextBlockCount\":240,\"hasCountRemainingForInjectionMetThreshold\":true,\"nextCount\":1021} --><\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":31,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":31,\"nbrPlacementsScanned\":31,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":900} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":32,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":32,\"nbrPlacementsScanned\":31,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":0} --><\/p>\n<h2 id=\"installing-magic-mirror-on-the-raspberry-pi\"><span class=\"ez-toc-section\" id=\"Installing_Magic_Mirror_on_The_Raspberry_Pi\"><\/span> Installing Magic Mirror on The Raspberry Pi <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"Linux terminal with bash command entered.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934449_113_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934449_113_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\">  <\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":32,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":32,\"nbrPlacementsScanned\":32,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":121} --><\/p>\n<p> To start with, you will want to set your Raspberry Pi up following the standard steps. The easiest thing to do is get a <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.raspberrypi.org\/downloads\/\">copy of NOOBS<\/a> to install the latest version of Raspbian. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":32,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":32,\"nbrPlacementsScanned\":32,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":299} --><\/p>\n<p> This project is powered by the <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/magicmirror.builders\/\">Magic Mirror software<\/a> and is installed and configured primarily in the terminal and a text editor. You don&#8217;t need to be familiar with the terminal; you can copy and paste the commands below. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":32,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":32,\"nbrPlacementsScanned\":32,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":522} --><\/p>\n<p> First, you should ensure your Raspberry Pi is up to date. Run the following commands: <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":32,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":32,\"nbrPlacementsScanned\":32,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":609} --><\/p>\n<pre>sudo apt-get update \n<!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":32,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":32,\"nbrPlacementsScanned\":32,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":630} -->\n<p> sudo apt-get upgrade<\/p><\/pre>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":32,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":32,\"nbrPlacementsScanned\":32,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":652} --><\/p>\n<p> And provide the root password when prompted. Alternatively, you can use <code>su<\/code> and skip all the <code>sudo<\/code> entries. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":32,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":32,\"nbrPlacementsScanned\":32,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":759} --><\/p>\n<p> After all your updates are finished, you will install the Magic Mirror software by running this command: <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":32,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":32,\"nbrPlacementsScanned\":32,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":865} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":true,\"currentRuleCount\":900,\"actualCount\":865,\"hasActualCountMetThreshold\":true,\"countRemainingForInjection\":35,\"nextBlockCount\":109,\"hasCountRemainingForInjectionMetThreshold\":true,\"nextCount\":974} --><\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":32,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":32,\"nbrPlacementsScanned\":32,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":900} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":33,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":33,\"nbrPlacementsScanned\":32,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":0} --><\/p>\n<pre>bash -c \"$(curl -sL <\/pre>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":33,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":33,\"nbrPlacementsScanned\":33,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":74} --><\/p>\n<p> The software will install and prompt you with two options: <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":33,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":33,\"nbrPlacementsScanned\":33,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":134} --><\/p>\n<pre>Do you want to use pm2 for autostarting of your Magic Mirror?<\/pre>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":33,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":33,\"nbrPlacementsScanned\":33,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":197} --><\/p>\n<p> Enabling this option will automatically start the Magic Mirror software when your Raspberry Pi boots up. Type Y and hit enter. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":33,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":33,\"nbrPlacementsScanned\":33,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":325} --><\/p>\n<pre>Do you want to disable the screensaver?<\/pre>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":33,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":33,\"nbrPlacementsScanned\":33,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":366} --><\/p>\n<p> If you don&#8217;t disable the screensaver, it will interfere with the interface. Type Y and hit enter. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":33,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":33,\"nbrPlacementsScanned\":33,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":465} --><\/p>\n<p> After that, the software will finish installing and start up on its own. You need to configure additional options though, so Alt+Tab back to the terminal and type the following: <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":33,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":33,\"nbrPlacementsScanned\":33,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":644} --><\/p>\n<pre>pm2 stop MagicMirror<\/pre>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":33,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":33,\"nbrPlacementsScanned\":33,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":666} --><\/p>\n<p> The Magic Mirror software will stop and close. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":33,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":33,\"nbrPlacementsScanned\":33,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":714} --><\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":33,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":33,\"nbrPlacementsScanned\":33,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":714} --><\/p>\n<h2 id=\"configuring-the-magic-mirror-software\"><span class=\"ez-toc-section\" id=\"Configuring_the_Magic_Mirror_Software\"><\/span> Configuring the Magic Mirror Software <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"Terminal opened to \/boot\/config.txt\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934450_747_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934450_747_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\">  <\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":33,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":33,\"nbrPlacementsScanned\":33,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":954} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":34,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":34,\"nbrPlacementsScanned\":33,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":0} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":false,\"currentRuleCount\":900,\"actualCount\":0,\"hasActualCountMetThreshold\":null,\"countRemainingForInjection\":null,\"nextBlockCount\":null,\"hasCountRemainingForInjectionMetThreshold\":null} --><\/p>\n<p> You might have noticed a few things when the software started: the display is in horizontal mode, the calendar is empty, no weather is displayed, and the time is in 24-hour format. Let&#8217;s take care of that. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":34,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":34,\"nbrPlacementsScanned\":34,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":207} --><\/p>\n<p> First, to switch the orientation of the screen, you&#8217;ll need to change a file that determines settings on startup. In terminal type the following command and then press Enter: <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":34,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":34,\"nbrPlacementsScanned\":34,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":383} --><\/p>\n<pre>sudo nano \/boot\/config.txt<\/pre>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":34,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":34,\"nbrPlacementsScanned\":34,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":411} --><\/p>\n<p> The Config.txt file will open in terminal. Use your down arrow key to scroll to the bottom of the file and add the following text: <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":34,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":34,\"nbrPlacementsScanned\":34,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":543} --><\/p>\n<pre># Rotate display vertically \n<!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":34,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":34,\"nbrPlacementsScanned\":34,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":572} -->\n<p> display_rotate=1<\/p><\/pre>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":34,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":34,\"nbrPlacementsScanned\":34,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":590} --><\/p>\n<p> Press Ctrl+X to close the file. Type Y to confirm you want to save and then hit Enter to confirm the config.txt file name. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":34,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":34,\"nbrPlacementsScanned\":34,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":714} --><\/p>\n<p> To see your change, type the following command in the terminal and then hit Enter: <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":34,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":34,\"nbrPlacementsScanned\":34,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":798} --><\/p>\n<pre>sudo reboot<\/pre>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":34,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":34,\"nbrPlacementsScanned\":34,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":811} --><\/p>\n<p> Your Raspberry Pi will restart, and you should be in portrait mode. You can press Ctrl+M to minimize the magic mirror interface and open the terminal. <\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":34,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":34,\"nbrPlacementsScanned\":34,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":963} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":35,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":35,\"nbrPlacementsScanned\":34,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":0} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":false,\"currentRuleCount\":900,\"actualCount\":0,\"hasActualCountMetThreshold\":null,\"countRemainingForInjection\":null,\"nextBlockCount\":null,\"hasCountRemainingForInjectionMetThreshold\":null} --><\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":35,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":35,\"nbrPlacementsScanned\":35,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":0} --><\/p>\n<h2 id=\"updating-time-calendar-weather-and-news\"><span class=\"ez-toc-section\" id=\"Updating_Time_Calendar_Weather_and_News\"><\/span> Updating Time, Calendar, Weather, and News <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p> Now we&#8217;ll configure the Magic Mirror interface. Open the File Manager application and browse to the following address: <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":35,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":35,\"nbrPlacementsScanned\":35,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":120} --><\/p>\n<pre>\/home\/pi\/MagicMirror\/config<\/pre>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":35,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":35,\"nbrPlacementsScanned\":35,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":149} --><\/p>\n<p> Right-click the config.js file and choose &#8220;Open With.&#8221;\u00a0 Expand the programming category and chose Geany from the list. Then click &#8220;OK.&#8221; <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":35,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":35,\"nbrPlacementsScanned\":35,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":287} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"File manager with open with dialog showing.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934450_380_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934450_380_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\">  <\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":35,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":35,\"nbrPlacementsScanned\":35,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":527} --><\/p>\n<p> The file you&#8217;ve just opened handles the main configuration components of the magic mirror software. It pulls from modules to add features, and you configure preferences of those features here. The Magic Mirror software comes with default modules for time, weather, the calendar, and compliments. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":35,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":35,\"nbrPlacementsScanned\":35,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":824} --><\/p>\n<p> To change the time to a 12-hour format and measurements to imperial, scroll to this section: <\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":35,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":35,\"nbrPlacementsScanned\":35,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":918} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":36,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":36,\"nbrPlacementsScanned\":35,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":0} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":false,\"currentRuleCount\":900,\"actualCount\":0,\"hasActualCountMetThreshold\":null,\"countRemainingForInjection\":null,\"nextBlockCount\":null,\"hasCountRemainingForInjectionMetThreshold\":null} --><\/p>\n<pre>language: \"en\", \n<!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":36,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":36,\"nbrPlacementsScanned\":36,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":17} -->\n<p> timeFormat: 24, <\/p>\n<!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":36,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":36,\"nbrPlacementsScanned\":36,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":34} -->\n<p> units: \"metric\",<\/p><\/pre>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":36,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":36,\"nbrPlacementsScanned\":36,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":52} --><\/p>\n<p> Change the 24 to 12 and &#8220;metric&#8221; to &#8220;imperial.&#8221; You should have: <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":36,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":36,\"nbrPlacementsScanned\":36,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":118} --><\/p>\n<pre>language: \"en\", \n<!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":36,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":36,\"nbrPlacementsScanned\":36,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":135} -->\n<p> timeFormat: 12, <\/p>\n<!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":36,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":36,\"nbrPlacementsScanned\":36,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":152} -->\n<p> units: \"imperial\",<\/p><\/pre>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":36,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":36,\"nbrPlacementsScanned\":36,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":172} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"300\" loading=\"lazy\" alt=\"config.js file with timeFormat set to 12 and units set to imperial\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934450_956_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934450_956_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C300&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\">  <\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":36,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":36,\"nbrPlacementsScanned\":36,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":412} --><\/p>\n<p> Save the file. The change should take effect immediately. If you don&#8217;t see it, run the following command in the terminal or restart your Raspberry Pi: <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":36,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":36,\"nbrPlacementsScanned\":36,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":564} --><\/p>\n<pre>pm2 restart MagicMirror<\/pre>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":36,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":36,\"nbrPlacementsScanned\":36,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":589} --><\/p>\n<p> The same configuration file also houses your calendar and weather settings. To add your Google Calendar, you&#8217;ll first need your &#8220;secret address in iCal format&#8221; link from the Google Calendar website. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":36,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":36,\"nbrPlacementsScanned\":36,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":789} --><\/p>\n<p> Open the config.js section again and scroll to the <code>Module: calendar<\/code> section. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":36,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":36,\"nbrPlacementsScanned\":36,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":867} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":true,\"currentRuleCount\":900,\"actualCount\":867,\"hasActualCountMetThreshold\":true,\"countRemainingForInjection\":33,\"nextBlockCount\":240,\"hasCountRemainingForInjectionMetThreshold\":true,\"nextCount\":1107} --><\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":36,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":36,\"nbrPlacementsScanned\":36,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":900} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":37,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":37,\"nbrPlacementsScanned\":36,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":0} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"Config.js focused on calendar module\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934450_670_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934450_670_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\">  <\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":37,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":37,\"nbrPlacementsScanned\":37,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":207} --><\/p>\n<p> Change &#8220;US Holidays&#8221; to a name you prefer and delete the URL beginning with &#8220;webcal&#8221; between the quotation marks. Then paste in your iCal link (be sure to keep the quotes). <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":37,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":37,\"nbrPlacementsScanned\":37,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":381} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"Config.js focused on calendar module\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934450_670_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934450_670_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\">  <\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":37,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":37,\"nbrPlacementsScanned\":37,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":621} --><\/p>\n<p> To add weather, you will need OpenWeatherMap API keys. Go to the <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/openweathermap.org\/\">OpenWeatherMap<\/a> site and sign up for a free account. Then browse to their <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/home.openweathermap.org\/api_keys\">API section<\/a>. Generate a key and copy it. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":37,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":37,\"nbrPlacementsScanned\":37,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":801} --><\/p>\n<p> Go back to config.js and scroll to the weather and weather forecast modules. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":37,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":37,\"nbrPlacementsScanned\":37,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":879} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":true,\"currentRuleCount\":900,\"actualCount\":879,\"hasActualCountMetThreshold\":true,\"countRemainingForInjection\":21,\"nextBlockCount\":240,\"hasCountRemainingForInjectionMetThreshold\":true,\"nextCount\":1119} --><\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":37,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":37,\"nbrPlacementsScanned\":37,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":900} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":38,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":38,\"nbrPlacementsScanned\":37,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":0} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"Config.txt displaying weather modules.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934451_32_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934451_32_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\">  <\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":38,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":38,\"nbrPlacementsScanned\":38,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":219} --><\/p>\n<p> Paste your copied API key into &#8220;Your_OPENWEATHER_API_KEY&#8221; (be sure to leave the quotes). <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":38,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":38,\"nbrPlacementsScanned\":38,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":309} --><\/p>\n<p> Open a browser and head to the <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/openweathermap.org\/city\/\">OpenWeatherMap city search page<\/a>. Search for your city and click the result.\u00a0The browser link will include a number at the end. For example, Cincinnati&#8217;s link is: <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":38,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":38,\"nbrPlacementsScanned\":38,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":504} --><\/p>\n<pre><\/pre>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":38,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":38,\"nbrPlacementsScanned\":38,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":545} --><\/p>\n<p> Copy the number for your city and paste that into the location ID sections between the quotes. Finally, rename the location from &#8220;New York&#8221; to the name of your city. You should see something like this: <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":38,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":38,\"nbrPlacementsScanned\":38,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":748} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"Weather modules with updated information.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934451_123_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934451_123_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\">  <\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":38,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":38,\"nbrPlacementsScanned\":38,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":988} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":39,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":39,\"nbrPlacementsScanned\":38,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":false,\"actualCount\":0} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":false,\"currentRuleCount\":900,\"actualCount\":0,\"hasActualCountMetThreshold\":null,\"countRemainingForInjection\":null,\"nextBlockCount\":null,\"hasCountRemainingForInjectionMetThreshold\":null} --><\/p>\n<p> To update the news, change out the current link with your favorite RSS feed. For How-To Geek, that&#8217;s: <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":39,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":39,\"nbrPlacementsScanned\":39,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":103} --><\/p>\n<pre><\/pre>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":39,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":39,\"nbrPlacementsScanned\":39,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":142} --><\/p>\n<p> Rename the title to the appropriate website. If you want more than one news site&#8217;s headlines shown, you&#8217;ll need to list them in an array like so: <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":39,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":39,\"nbrPlacementsScanned\":39,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":289} --><\/p>\n<pre>{ \n<!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":39,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":39,\"nbrPlacementsScanned\":39,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":292} -->\n<p> title: \"NPR\", <\/p>\n<!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":39,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":39,\"nbrPlacementsScanned\":39,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":307} -->\n<p> url: \" <\/p>\n<!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":39,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":39,\"nbrPlacementsScanned\":39,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":355} -->\n<p> }, <\/p>\n<!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":39,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":39,\"nbrPlacementsScanned\":39,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":359} -->\n<p> { <\/p>\n<!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":39,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":39,\"nbrPlacementsScanned\":39,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":362} -->\n<p> title: \"How-To Geek\", <\/p>\n<!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":39,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":39,\"nbrPlacementsScanned\":39,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":385} -->\n<p> url: \"\", <\/p>\n<!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":39,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":39,\"nbrPlacementsScanned\":39,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":432} -->\n<p> }<\/p><\/pre>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":39,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":39,\"nbrPlacementsScanned\":39,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":435} --><\/p>\n<p> Your result should look like this: <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":39,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":39,\"nbrPlacementsScanned\":39,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":471} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"Config module showing updated news options.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934451_338_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934451_338_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\">  <\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":39,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":39,\"nbrPlacementsScanned\":39,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":711} --><\/p>\n<p> Congratulations, you&#8217;ve completed your smart mirror! <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":39,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":39,\"nbrPlacementsScanned\":39,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":765} --><br \/>\n<!-- Repeatable debug data: {\"isEarlyInjection\":true,\"currentRuleCount\":900,\"actualCount\":765,\"hasActualCountMetThreshold\":true,\"countRemainingForInjection\":135,\"nextBlockCount\":270,\"hasCountRemainingForInjectionMetThreshold\":true,\"nextCount\":1035} --><\/p>\n<p><!-- Repeatable debug data: {\"injection\":\"before\",\"adPosition\":39,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":39,\"nbrPlacementsScanned\":39,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":900} --><!-- Zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"after\",\"adPosition\":40,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":40,\"nbrPlacementsScanned\":39,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"isEarlyInjection\":true,\"actualCount\":0} --><\/p>\n<p> You can customize it even further if you like. For example, you can remove modules like the compliments or <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/MichMich\/MagicMirror\/wiki\/3rd-party-modules\">add new modules<\/a> from the\u00a0<a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/forum.magicmirror.builders\/category\/5\/modules\">Magic Mirror community<\/a>. Modules let you add features like Google Assistant and Alexa, snowflakes in the winter, or videos from YouTube. <\/p>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":40,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":40,\"nbrPlacementsScanned\":40,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":135} --><\/p>\n<div class=\"body-img landscape \">\n<div class=\"responsive-img image-expandable img-article-item\">\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"650\" height=\"400\" loading=\"lazy\" alt=\"Smart Mirror showing time, date, and calendar.\" data-img-url=\"https:\/\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg\" src=\"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?resize=650%2C400&#038;ssl=1\" style=\"height:auto;max-width:100%\" title=\"\"><figcaption class=\"body-img-caption\">Josh Hendrickson \/ How-To Geek<\/figcaption><\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<p><!-- No repeatable ad for zone: character count repeatable. --><!-- Repeatable debug data: {\"injection\":\"none\",\"adPosition\":40,\"startingPoint\":0,\"skipEvery\":null,\"nbrPlacementFilledEachSkip\":40,\"nbrPlacementsScanned\":40,\"ruleCount\":900,\"degradationStartingPoint\":1,\"stopAds\":null,\"actualCount\":375} --><\/div>\n","protected":false},"excerpt":{"rendered":"<p>A smart mirror can show your calendar, weather, and news like something out of a sci-fi movie. Powered by a Raspberry Pi, you can build your own with some simple tools and hardware. Beautiful, Configurable, and Custom-Built Josh Hendrickson \/ How-To Geek Smart mirrors have been around awhile, and the most prominent version comes from\u00a0Michael &#8230; <a title=\"How to Build Your Own Futuristic Smart Mirror\" class=\"read-more\" href=\"https:\/\/goodwriterz.com\/site\/how-to-build-your-own-futuristic-smart-mirror\/\" aria-label=\"Read more about How to Build Your Own Futuristic Smart Mirror\">\u0625\u0642\u0631\u0623 \u0627\u0644\u0645\u0632\u064a\u062f<\/a><\/p>\n","protected":false},"author":1,"featured_media":20079,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[93],"tags":[276,322],"class_list":["post-20078","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-diy","tag-diy","tag-features"],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/goodwriterz.com\/site\/wp-content\/uploads\/2024\/08\/1724934452_How-to-Build-Your-Own-Futuristic-Smart-Mirror.jpg?fit=650%2C300&ssl=1","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/goodwriterz.com\/site\/wp-json\/wp\/v2\/posts\/20078","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/goodwriterz.com\/site\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/goodwriterz.com\/site\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/goodwriterz.com\/site\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/goodwriterz.com\/site\/wp-json\/wp\/v2\/comments?post=20078"}],"version-history":[{"count":0,"href":"https:\/\/goodwriterz.com\/site\/wp-json\/wp\/v2\/posts\/20078\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/goodwriterz.com\/site\/wp-json\/wp\/v2\/media\/20079"}],"wp:attachment":[{"href":"https:\/\/goodwriterz.com\/site\/wp-json\/wp\/v2\/media?parent=20078"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/goodwriterz.com\/site\/wp-json\/wp\/v2\/categories?post=20078"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/goodwriterz.com\/site\/wp-json\/wp\/v2\/tags?post=20078"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}