My Digital Dashboard Raspberry Pi Project

 This is my digital dashboard that I just made- it sits on the wall right next to my desk and is just “always there”. I’ve gotthe local time, world time, well, I mean go by US west coast time, Joel should be aspleep,but he’s probably not. I’ve got the weather, my upcoming video plan and to-do on here andin the last two weeks that I’ve been using it, it has already made my work so much moreefficient because it totally keeps me on track. You can use this setup for everything, though.As a family planner, a digital picture frame or even, with a much smaller screen, as adesktop clock with your next tasks coming up. And all this is is a TV and a RaspberryPi, so let me show you how I built this one, how I set everything up to work smoothly fromthe Pi and as energy efficiently as possible and what I would do different next time. So let’s go through what parts I used. First,the screen. 




This is a 43”, 4K LED TV from JVC. It’s really amazing how cheap TVs havebecome just in the last two years - and the price difference between 1080p and 4K modelshas also shrunk to almost zero, so getting the higher-resolution model was a no-braineras it makes especially smaller text so much more readable, which means I can actuallymake use of the large screen size and put more stuff on it. Of course, you can alsouse an old computer screen or any other spare display, but make sure it has decent viewingangles, especially if you plan on mounting it in portrait, and also keep an eye on powerdraw. I picked this exact model because it’s agood bit more energy efficient than others - and since it’ll be on for 10 hours a day,that does make a difference in the long run. 


Now, for what’s controlling this, obviously,it’s a Raspberry Pi - 4. The older Pis would have probably been fast enough, but don’tsupport 4K output over HDMI. Yes, there are a few hacks that may allow you to get 4K fromthem, but I wanted to eliminate as many potential hiccups as possible - this should be a zero-hassleand -maintenance setup for me and was already enough work. I may still try an older Pi inthe future, though. So for the software that’s driving all this.There are two, maybe three ready-to-go solutions for this. The first one, and maybe the mostobvious one, is MagicMirror². That’s a Raspberry-Pi-native software that’s madeto sit behind a semi-transparent, mirrored piece of glass and shine its information throughthat mirror, creating that “mirror, mirror on the wall” illusion. MagicMirror² isfree and open-source and has a ton of plugins and expansions. But. First, the interfaceis optimized to just be black and white, since it’s made to shine through a mirror, andgetting anything to look nice without that mirror is going to take some effort. And,the more severe issue for me, the way you set up MagicMirror² is by editing JSON filesover remote desktop or through an SSH terminal. I don’t have those sort of masochistic tendencies,so that didn’t particularly excite me. 


But I tried anyways, and after digging throughthe tons of different calendar plugins and finding the one that seems to be the go-topowerful option, I just gave up when I saw the 50-page-long documentation on how to writethe JSON that would display a shared calendar. Like, this shouldn’t be so hard. For me,that’s not fun to set up, and changing anything in the future would mean re-learning the entirething again. It also kind of explains that when MagPi,the official Raspberry Pi Magazine, covered MagicMirror², they spent five pages explaininghow to build the build the wooden frame, and only one page on software. It would probablyscare a lot of people away if they covered it more realistically - which is the otherway around. One page on the frame, five pages on how to edit JSON files.The next alternative is DAKboard, and that’s the one that I’m actually using right now.It’s not an open-source software, it is a paid software-as-a-service, which I’musually not a fan of, but there is a somewhat limited free version available. 


This projectis not sponsored by them, I don’t even have an affiliate link for DAKboard, but thereare affiliate links to all the hardware and tools I’m using down in the video description.So, the one massive advantage that DAKboard has is that it’s entirely browser-based.Both the configuration and the dashboard itself happen entirely in a browser window, whichmeans you can use any kind of hardware for the screen setup as long as it can displaya website; and you can change and update what’s shown on the screen from any other computerwithout remote-desktop’ing into the Raspberry Pi or going through a console.It took me all of ten minutes to get DAKBoard running, and then a bit longer to figure outwhat I actually wanted to have on here, where, how large, etc.



There is one more software that I found, and that’s Mirr-OS by glancr, which I believeis somewhat open-source. It’s made by a guy from Berlin, but it seemed a bit too focusedon living behind a mirror again, which means very simplified graphics, and the list ofintegrations and features is also still quite short. With each of these solutions, there are stilla few things that I did to the Raspberry Pi OS to make it work for this application, butI’ll get to those towards the end of the video. But now that I knew that the softwareworked and did what I wanted it to, it was time to mount everything to the wall and tobuild a bezel for the screen to make it look a bit less like a failed home cinema setup. I started by installing the wall mount forthe TV itself. 



This is a standard, off-the-shelf unit, I tried to get one that was reasonablythin since I didn’t want the frame to stick out too far from the wall; the TV is thickenough as-is. Most wall mounts let you mount the TV in normal landscape orientation orin portrait, but if you have one that is particularly flimsy, the TV may tilt forward a bit toomuch for comfort. Mounts with a taller base like this one tend to be sturdier, and thebezel I’m still adding will help hold it in place, too.In case you’re wondering, no this is not a studwall, this is not drywall, in fact,this is a two-flue, brick chimney that I’m mounting this to. Usually, you should neverdrill into a chimney, as that could allow for flue gases to escape or create a firehazard, but in my case, one flue has never been used and will never be used, and alreadycarries the cables for my solar panels from the roof into the basement where the inverterslive, and this other flue is now double, or actually triple-lined with polymer pipe eversince we upgraded to a condensing gas heater. That means, in my case, this can be treatedlike a solid bearing wall. With the bonus feature of being able to run wires in theempty flu. 



So now that the TV was mounted, I could getstarted on making the wood bezel. I picked up a few pine boards as they were cheap andhad a nice, lively texture that would break up the sterile look of the dashboard. I startedby joining two boards for the facia and got to cutting out the bezel area. Sure, thereare more material-efficient ways of making a bezel like this, for example by joiningsegments with miter cuts, but I wanted the grain to run in all the same direction in the front.I routed out a large lip or pocket for the TV to sit further towards the front - it onlyneeded to be this big on one side, but the spacing from the edge of the visible screento the rear box-section of the wooden frame needs to be the same on all edges.I then added a bunch of chamfers on all sides of the bezel, for looks, but also to makethat second facia on top of the TV’s original bezel look as thin as possible.Now, just because I’m using a bunch of tools here doesn’t mean that you can’t makea frame like this if you don’t have all of them. I’m not using any of these toolsparticularly effectively, so all you need if you’re a bit creative is some sort ofa saw, sandpaper and wood glue. 



You can also get different raw materials that need lesswork to get them into shape to make your life even easier, like thin plywood for that frontfacia. For the back portion of the bezel, I printeda bunch of grills to cover up some cutouts for ventilation - both the screen and thePi do need some airflow, but passive convection should be enough.The back itself is a simple butt-joined rectangle, I added a few brad nails for strength andso that I could keep on working right away. The back frame then simply gets glued to thebezel, and after that, I was ready for a quick round of sanding and the first coat of varnish.I looked into using a stain first, but since I wanted an almost black color, using coloredvarnish ended up being a simpler, more consistent and cheaper option. After a second coat ofpaint, the frame was done and ready to be mounted. Aaaaand.. I screwed up. Yeah, uh, rememberhow I like to measure from the 10cm mark on a measuring tape so that I don’t need todeal with the wiggly end? Well, turns out if you forget to subtract those 10cm fromyour measurement, you don’t actually get the correct dimension.I already thought the aspect ratio looked a bit off to be 16:9, but the dimensions onmy sketches checked out. Ah well, at least it was easy enough to fix. I had thought aboutjust tossing this frame and 3D printing one instead on that huge Raptor 2.0 printer, butfigured I could reuse the wooden bezel and just cut a chunk out of the top and bottom,glue it back together, sand it down and give it a fresh coat of paint. So that’s whatI did, and yeah, you can still see where it got joined back together if you know whatyou’re looking for, but if you don’t, you can’t really tell. So for mounting the frame, I used pieces ofwhat you’d call 1x2 in the US, commonly known as Dachlatten here, and to align theframe to the screen, I used some double-sided tape to temporarily stick down the slat, thenunscrewed the frame and anchored it down in that position. 



Worked really well! And ofcourse, you can always fine-tune the position with a hammer. Next, I needed power, and rememberhow I said this was a chimney? Well, that makes it easy! I fished up a wire throughthe flute and then had a licensed electrician hook up the connections. I first thought I’dneed to add an extension to this frame on the bottom to hide the wiring, but it turnsout there was enough space behind the screen to hide a full powerstrip and USB supply,and for the Raspberry Pi 4, well, I just taped that to the back of the TV, there’s no needto choke it even more with putting a printed case around it, after all, it is already enclosedby the frame and all. And no, for what this PI is doing, it definitely does not need afan or heatsink. So back on goes the bezel, these two vent grills on the bottom and topalso hide the screws that mount the bezel to the wall, just to make it a bit prettier.I mean, it’s not like anyone is ever going to see it, but still. So how did I set up the Raspberry Pi? It allstarts with the standard Raspbian setup, since I use the Pi4, it’s the newest one theyoffered as of today (which is August 2019). I did all the regular things that the setupassistant walks you through, that is WiFi and changing the password, but after that,it was mostly making the Pi work smoothly in this use case. Reading off all the commandsI used is not super fun for a video, so I’ll link the article on toms3d.org in the descriptionwhere I have all the steps listed in full detail. So here’s the short version:First, I needed a way to access the PI without attaching a keyboard to it. For that, I enabledSSH and VNC remote access with the raspbi-config tool.




Then, I needed a way to automatically show the DAKboard interface on boot. For that,I added a startup command to the LXDE desktop environment that would launch Chromium infull screen. And that works really nicely. But there’s still the issue that this screenis rotated. Normally, you can easily configure the entire HDMI output to be rotated withthe boot config, but with a 4K screen, the entire image would get shifted off screenso that most of it is black and you’re only seeing a small slit of the image. Not great.So instead I tried a few Chrome plugins that would rotate just the website. And there area bunch of prank plugins, but “page rotate” did exactly what I needed. However, you needto click it every time, which doesn’t work here, so I looked at what it did to the pageand replicated it. Essentially, it’s creating an iframe, which is a virtual browser windowwithin the real browser window and it’s rotating that in its entirety. Works beautifully. Next, there were two small annoyances to fix,and those were that the screen would go blank after 15 minutes, that’s a simple fix inthe desktop environment’s config, and the next one was that there’s a mouse cursoron screen, which we definitely don’t need, and that’s fixed by installing unclutterand adding it to autostart. Lastly, I wanted to schedule the TV turningon and off because, well, what’s the point of having it on during the night. So I setup HDMI-CEC, which lets the Pi control the TV over HDMI and turn it on and off when needed.Make sure you’ve got the PI plugged into an HDMI port that supports CEC for that towork. For the scheduling, I used cron, the oldskool linux scheduler, so now the screenturns on at 8 AM and turns off at 6PM. Nice ten-hour work day, perfect. 


And lastly, to save a bit more energy, I turneddown the screen to minimum brightness, it’s still very readable at that setting and probablyreduces power consumption by two thirds or so. That’s also one of the reasons why Ididn’t add a mirror in front, as I’d have to crank the brightness just to make it throughthe mirror and then to compete with the glare on top of that. So this is good. Now, for the actual DAKboard layout, you cango with the free pre-defined ones, but I wanted to try creating a custom one. Now, what youput in here is up to you, but here’s what I have on it. Up top, it just felt right tohave the local date and time, and then next to it, I have some world times for US westcoast, LA, east coast, New York City, Hong Kong, and Sydney, so these just always giveme an idea of what time it is for the people that I’m talking to on Twitter or via email.Next up, weather, and then a calendar of the next 90 days. Right now, I’m only havingit display my video schedule, but usually, I also have my work calendar on here withevents and deadlines, I just hid that for the video because that doesn’t really needto be public. I really enjoy having 90 days in advance here, that gives me a chance tofor example order stuff from Aliexpress for an upcoming build and the stuff actually gettinghere in time. Now, down here, for now I’ve put a todolist, but I’ll probably still change that around. If you have ideas of what might fitin here, let me know in the comments! One of the features that DAKboard is onlyunlocking for paid users is the option to use custom CSS to change how all this stufflooks. But you can also add that feature with a Chrome plugin that just applies the looksright in the browser. 



What I added here was a consistent spacing in these calendar cells,by default they shrink and grow based on how much information each row has, then I changedsome of the font sizes and added a blurry shadow under all the text and icons to makeit a bit more readable. And that’s it! There are still a few things that I may addor change in the future, and that’s for example power button on the side that letsme cleanly shut down the Pi, because if you just jank power or switch off the mains fuse,you do that too often and at some point it’s just not going to boot up anymore. For now,I’ve got a copy of the SD card, so if that ever happens, I’ll be back up and runningfairly quickly. It could also make sense to actually underclockthe Pi4, but since all that’s doing is limiting the maximum clock and this one is idle mostof the time anyways, I don’t think it’s going to make much of a difference for heatand power draw. But what I will try is getting an older Pito output 4K - that way, I can use this Pi4 for more demanding tasks and permanently deploya Pi1 for the dashboard. And if I were to build this again, I wouldprobably skip the entire TV wall mount and just use the TV’s bezel to tape it to thewooden frame. There’s more than enough contact area there, and knowing how well VHB tapesticks, I’d have zero doubts that it would hold up over time. That would make aligningthe frame to the screen much easier and it would also make for a slimmer build that doesn’tstick out as far from the wall. 


I’d also drill a small hole for the infrared receiverin the TV to make the remote a bit less awkward to use.Like I mentioned, I’ll have the software guide linked in the description below, alsodown there you can find the list of parts and tools that I used if you’re lookinginto making one yourself, and if so, let me know in the comments what you’re thinkingabout using it for! And as always, if you found this video helpful,interesting, entertaining, leave a like, get subscribed, and if you’re up for it, joinin on Patreon or through YouTube memberships to support the channel. Thank you all so much,thanks for watching, and I’ll see you in the next one.