Raspberry Pi Wall Calendar

Raspberry Pi Wall Calendar

Finished product

Finished product first. My inspiration came from this project here: imgur.com/a/z94Vr, which was inspired by this one: www.instructables.com/id/Raspberry-Pi-Wall-Mounted-Calender-and-Notificatio/?ALLSTEPS
Ok, it's pretty much an exact copy. I have no creativity, or serious coding chops, so I copied those two projects pretty heavily.
This was supposed to be a surprise mother's day present for my wife, which means I couldn't work on it when she was around. Which means it was a very very LATE mother's day present. As in, I gave it to her a week ago.
For a lot more detail on the coding and whatnot, you can check out the previous projects, as I pretty much copied those. Although I did add a couple nice touches. But basically, I'm just running a web server on the pi, and the index page is the page you see. I have it set so it loads a browser with that page on boot, in kiosk mode, so there are no scroll bars or url bars. Found a script that makes the mouse disappear too.

A python script (stolen from the previous projects) maps the buttons to different keys, as well as mapping them to the GPIO pins on the Pi, giving different functions for each one.

Here's what I used:
Dell 1707FPT 17" display (had this already, didn't have to buy it)A second Dell 1707FPT 17" display as a backup for when this one dies – $30
Raspberry Pi 3 – $40
HDMI to DVI cable – $10
16GB Micro SD card – had it laying around
Micro SD card extension cable – $8 (www.amazon.com/gp/product/B011GPZYQM/ref=oh_aui_search_detailpage?ie=UTF8&psc=1)
Wood was free from a friend
Stain, polyurethane, forstner bits, sand paper, recessed outlet, and other crap – $whoknows

Like the projects I ripped off, the calendar is an embed of my wife's google calendar.
The left button is mapped to the "p" key, which makes the calendar go back a month. The next button is the "n" button, so it goes forward a month. The third button switches the calendar to agenda view, and the last button is mapped to the ESC key, which cancels the screensaver slideshow. Each button has a secondary function, if held down longer than 2 seconds. Reboot, Shutdown, refresh, and turning the screen off.

It was the count down timer for the kids bus that I really liked about the previous project, so i implemented one as well, which kicks off via a cron job in the morning. It displays a big countdown timer at the top of the page, telling the kids they have 10 minutes before it's time to leave for school. The kids seem to like it. After the countdown is done, and the kids are off to school, I have a cron job that starts the screensaver, so the calendar won't burn into the screen all day long, as well as creating a nice digital picture frame for most of the day. The far right button kills that instantly if you need to use the calendar, (ESC key) and will come back on in 10 minutes if left idle. I did have to set up a cron job to kill the screensaver entirely in the middle of the night, otherwise the calendar and countdown timers would not display the next morning.

I also have a cron job that turns off the power to the HDMI port at 10pm, which then causes the monitor to go to sleep. Which is good because that sucker needs some hours to cool down at night. It kicks the screen back on at 6:30 am, ready for another day.

One of the coolest things on my interface is a script a friend wrote for me. It's a web scraper that reaches out to the school district's website and scrapes the day's lunch, and displays it on my screen. So the screen will display today's lunch choice, as well as the next days choice, so they can get their lunches ready the night before. (The kids don't always like what the school is serving, so this way they can easily see what they're having, so they can choose between home lunch or school lunch.)

Then during most of the day it's a pretty dang good looking digital picture frame. Once the kids are off to school it starts a slideshow with pictures I've cropped specifically to fit the frame. It's a slow slideshow, I have each picture up for like 5 minutes. But it just so happens that my "p" and "n" buttons also cycle through the pictures on the slideshow! That was an added bonus.

I didn't get enough pictures or info here to make this a real how-to. That would have taken much more time than 10 minutes in front of the laptop. However, if you want to make one yourself, the two previous projects I linked to have much better write-ups, including all the code you need to get it up and running.

It's not as good as some out there, but I wanted to share it. I think I'd like to do another one, but with a touch screen. What is the difference between that and just hanging a table on the wall you say? Not much. Not much at all.

Gutted monitor

First I freed the monitor from it's plastic prison. This allowed me to have a smaller form factor in the end, as I could build a custom frame to house it in.
Customizing the cage

I removed all the monitor circuitry here so I could cut some holes in the cage a bit, but it just so happened that there was a spot where there was no circuitry that was the perfect size for my Pi. I lined it up in the cage, marked where my holes would go, and then used my dremel to cut some access holes for HDMI and power, as well as the USB slots.
Voiding the warranty

The riser screws I had were just slightly too big to fit into the mounting holes on the Pi, so I gathered all the guts I had and drilled the holes slightly bigger.
Power and HDMI

The edges look sharp here, but I buffed them down quite a bit, so they're not sharp.
USB access

Originally I was thinking I was going to put a USB extension cable to the side of the frame to give me the option of connecting a mouse and keyboard should I need to do some troubleshooting. However I found that my old bluetooth media center keyboard worked perfectly, so I just plugged the bluetooth dongle in and left it there permanently. Works like a charm. I just pull out that keyboard if I ever need it.
First test

Getting ready to power it up for the first time in it's new home. Turns out the USB ports on the monitor supply enough power to power the Pi, which was perfect, as I didn't need to tap into the circuitry on the monitor or figure out some other way to power it. I am a little suspicious that it is slightly under powered though, as every now and then I get that little rainbow square at the top right hand corner of the screen.
Starting the frame

Just trying to get an image of how it will look, as well as making some cutting marks for the frame pieces. I never did find out what kind of wood this is, but it's a very nice looking hard wood.
Back of frame

I needed to make a rabbet edge on the frame so it would set down nice and low in the frame. There are probably a few ways to do this, but a friend with a table saw helped me cut these out. It looks messy from the back, but as you can see in the next few shots, it looks great from the front.
Looking good

I don't think it was even assembled at this point, but I was admiring how it looked at this point.
Testing the monitor's fit

I wanted to make sure the monitor was going to fit just right before I started screwing things together. Looking good!
Assembling the face

I used a Kreg jig to drill those holes for the screws. Then I glued and screwed, and clamped over night. Yes I need more/better clamps.
Got the sides on

The sides are a different wood than the face, I could only get enough of that wood for the front. Finally got all the sides on, glued and screwed. Added some metal braces in the corners just to be sure.
Gap in the wood

I am no woodworker that's for sure, so I'm sure there was some way to fix this. But no matter how much clamping I put on there, I could not get this sucker to close the gap. I ended up using a mixture of sawdust and glue to try to fill it, which just turned into a nightmare of sanding forever to get it to come down smooth. Never got it perfect, but it turned out ok.
Ready for some holes

Frame is all glued and screwed together, now I need to drill some holes for the buttons.
Pilot holes and recess for button nut

The buttons I purchased from eBay have little nuts that hold them to the surface your'e mounting to, and my wood was too thick for the buttons to fit all the way through, so I had to drill some recesses for the nut (as well as a socket) to fit down in. Drilled some pilot holes first, then used forstner bits to drill nice flat bottomed recesses.
Holes done

My recesses weren't perfectly centered with the holes, so my socket wouldn't fit in a couple of them, but I was able to get them finger tight, which is fine with me.
Ready for sanding

Holes drilled, glue dry, this sucker is read for sanding. My cuts and gluing were not that great, so I had to do a LOT of sanding in order to get everything smoothed out.
Ready for a finish

All sanded, it's looking pretty good.
Heat ventilation

I'm not sure there are enough holes to do a whole lot of good, but this monitor gets HOT, so I needed to have some way for the heat to escape. The raspberry pi stays pretty cool fortunately.
Stain

Originally, I planned on doing a natural finish just using some Linseed oil, however after trying it out on a few test pieces, I decided I needed a darker look. One coat of stain did the trick.
Oops

After doing a coat of polyurethane, I tried to sand it down a bit using 200 grit sandpaper, which just created these terrible scratches. Had to get my 1000 grit out and smooth it out a bit. You can still see a few scratches in the right light, but It ended up turning out ok.
Fitting the monitor

3 coats of poly later, I was ready to mount the hardware. Not having the pi readly accessible added some challenges. So I used a 40 pin IDE cable attached to the pi to make it easier to connect the buttons, and the micro SD extension cable to make it easy to remove the SD card when needed.
All wired up

I soldered the wires to the buttons, and the used a butt ton of hot glue to hold all the cables in place. Plumbers tape to hold the monitor in snug. After spending so much time on this project, I was afraid that my old used monitor was going to die a year into using this thing, so I bought an identical monitor off craigslist for $30 that will sit on a shelf waiting for the day this one dies. Then I can transfer my pi and custom cage onto the new monitor and it will drop in place without too much effort. The frame was the hardest part of this project, so if I needed to replace the monitor, I wanted to be able to keep the frame.
Finished

Finally all assembled, and ready to go!
Vent holes

They may not be super functional, but I'm pretty pleased with my vent holes.
First boot

Booting the pi for the first time. You can see that my frame was not perfect. It doesn't cover up the monitor bezel all the way. But for my first frame, and first REAL woodworking project, I'm pleased with it.
Buttons

I think the buttons stand out really nicely with the darker stain.
Sleeping

Home sweet home

We decided on this spot, in between the bathroom and the laundry room for a few reasons. It's right near the kitchen, which is the hub of activity, so it's easy to pop over and look at, yet not out in the main part of the house. It is VERY bright, and wouldn't really look that great out in the midst of everything. Also, on the other side of that wall was the bathroom light switch, which made it easy to wire up an outlet on this side of the wall. I installed a recessed outlet right behind the frame, so I would not have any cables dangling down. Nice and clean. My friend said the buttons make it look like an old Palm Pilot.
Palm Pilot

He's not wrong.
Working great

I'm very pleased with it, and the wife and kids enjoy it.
Source : paqmanbiker from Reddit