The woodwork was mostly done with a router, a table saw and a drill press. This was my first router project ever, and since I liked the outcome I am documenting this with lots of detail.
The electronic aspect of the digital picture frame was realized with a raspberry pi and a monitor. Tutorials for many similar frames, such as this one, this one, this one, this one, or this one are available at instructables or other sites in the net. I specifically got inspired by this one which, to my knowledge, was the first digital picture frame that frequently downloaded new pictures. In that case every night, all the pictures from an artsy fartsy website. I adapted this idea. My digital frame downloads every night a predetermined amount of family pictures from my ssh server and displays them during the day. The main idea behind this is to build more of these frames and give them as presents to my and my wife's parents, sisters, and brothers. The way the frames are set up, everybody sees the same pictures at the same day, a family uniting picture viewing experience in my case across thousands of miles, state lines, country lines, and continents.
Since this was also my first raspberry pi project I found the instructions of this website to be a good knowledge base to get a kick start for most of the software challenges. That was great for me since I have limited programming experience.
Big thanks to my buddy who wrote the python random picture selection software for me. You rock. I couldn't have done that without you.
Again, due to the amount of sources out there I am not getting into the details of the software and the raspberry pi setup in this instructable. If there is a large interest expressed in the comments I will consider adding a sequel instructable that addresses these topics in the near future.
Note that the digital picture frame is operated with three buttons: one (red) toggle button, and two push buttons (black and red). As mentioned before, the raspberry pi downloads new pictures to the picture frame every night. These pictures will be displayed the next day. Therefore, during regular nights the computer remains running but the monitor can be switched off or on with the black push button. All electronic components of the frame can be powered down as well. This is useful for vacations or other extended periods of days that the frame will not be looked at. Shutting down the frame is a two step process. The red push button triggers execution of a software that safely shuts down the computer. This has to be done first and is necessary to avoid potential damage to the memory card. Subsequently the red toggle switch is operated. The toggle switch powers down the entire hardware including the monitor and the power supply of the raspberry pi. When the frame is powered down, obviously no pictures are downloaded to the raspberry pi any more and the frame will not consume any power. In this state it can be unplugged and moved as desired. The red toggle switch is also used to start up the raspberry pi and the rest of the frame.
All in all, it was my goal to build something that was technically challenging, aesthetic to look at (maybe even a conversational piece), unifies family, and has the potential to deliver a “wow” effect. With respect to my own expectations, I succeeded on all levels, but judge yourself and let me know if you liked it.
Step 1: Materials Needed
- 1x thick wooden board: 2.40 m (8 feet) long or less x 431.8 - 482.6 mm (17 - 19”) wide x 63.5 mm (2.5”) thick.
- 1x wooden board: ~9 mm (~0.35”) thick, ~ 400 mm (~16”) wide, ~610 mm (~24”) long
For Assembling the Digital Picture Frame in the Frame
- Aluminum bar material totaling approximately 440 mm (17.3”) x 12.7 mm (0.5”) x 3.125 mm (0.125”)
- Two component epoxy
- Screws – Home Depot or Lowes
- Small Washers – Home Depot or Lowes
- Cable for Signals – I used leftover telephone cable
- Cable for 110V AC – I used leftover power cord type cable
- 1 red push button – Newark, # 35K5739, $4.34
- 1 black push button – Newark, # 35K5740, $4.34
- 1 toggle switch – Newark, # 03P2449, $1.90
- Standoffs – Newark, # 35M1725, $0.235
- Old Monitor including DVI cable and power cord – ebay or craigslist ~$40 or less
- Raspberry Pi, Model B – Newark, # 43W5302, $35.00
- SD card, 4GB with OS for Raspberry Pi – Newark, # 96T7436
- HDMI to DVI adapter – Newark, # 74M6205, $6.39
- Power Supply 5V DC, - Newark, # 53W8467, $7.95 , requires micro usb cable, I used one from an old phone
- Resistor 1 kW, ¼ W, Newark or Radio Shack
- Resistor 10 kW, ¼ W, Newark or Radio Shack
Step 2: Tools Needed
- Table saw
- Drill press
- Set of general purpose drill bits up to 12.7 mm (0.5”)
- Set of Brad point drill bits up to 12.7 mm (0.5”)
- Forstner drill bit 15 mm (0.59“)
- Forstner drill bit 20 mm (0.79“)
- Jig saw
- Jig saw blades for wood, clean cutting
- Jig saw blade for metal
- Hand saw
- Center punch
- Router bits
Step 3: Cutting and Sanding the Board
I sanded the natural / uncut sides of the wood with 150 grit sandpaper to remove a darker looking residue, which, I guess, may be dried up stuff that is between the bark and the wood. The stuff came off quite nicely. To keep the rustic look, I was careful not to overdo the sanding.
Then I sanded the sides that were cut with the table saw to a smooth finish, using 150 grit sandpaper. Next, I very lightly rounded all edges with the same sandpaper.
Step 4: Marking the Cutout Area
Remember that the wooden board had two natural edges that were not parallel to each other. I started with the sides, found the center of the board and used the top to bottom distance as my base for the vertical dimension. Also note that I did not make any marks outside of the area that I planned to cut out. This could have scratched or otherwise impacted the surface finish, and I wanted to avoid an unnecessary sanding job.
Step 5: Marking and Drilling Corner Holes
I used a medium to slow speed on my brad point drill bit and drilled out the hole in one run. The figures show a close up after the drilling process, and the board with all four holes.
Step 6: Marking the Cutout Area
Step 7: Checking the Blade Alignment
Step 8: Cutting the Inside of the Frame
Step 9: Building a Template for Routing Action 1
Step 10: Routing Action 1 – Shaving the Cutout to Exact Dimensions
I routed all four sides, frequently checking the alignment of the template. The final result of this step was a hole that exactly matched in size the area of the monitor that could be illuminated. The exceptions were the four edges. Since I was using a router, the edges of the area were round.
Step 11: Routing Action 2 - Cutting the Decorative Shape of the Picture Frame
This is one of the more critical steps in this built. Anything that goes wrong in this particular step cannot be easily hidden afterwards.
Because the router bit had a larger diameter than my plastic base plate, I had to remove the base plate and use the router only with the structural metal base. This was not ideal, but worked ok. The metal base by itself did not slide that well and I was very careful to make sure I kept the base very flat on the wood so that it didn't get hung up or scratch it. Don't force it. You'll get hung up. And any time you tip the base you cut a dip/depression that you'll not be able to get rid off anymore. For the next time I am doing this, I intend to substitute the original base plate with a custom made plastic plate that can accommodate the large router bit. This will allow for a larger contact area of the router and will improve the sliding capabilities.
However, the cut went smooth enough and after cleaning up the edges with the sandpaper sponge I got the desired effect of a picture frame look.
Step 12: Marking Up the Backside of the Frame - I
A) Dimensions To Recess Monitor
I marked the outside dimensions of the monitor on the back of the frame. I listed these dimensions in step 4 to be 398 mm x 325 mm (15.67” x 12.80”). Since I had a couple of screws protruding a little at the side of the monitor and in general I wanted a good easy fit, I expanded the horizontal dimension by 2mm (0.08“) and the vertical dimension by 1 mm (0.04“). My total dimensions for the recessed monitor area thus added up to 400 mm x 326 mm (15.75” x 12.83”). For the monitor that I used, the distances from the outside of the monitor to the viewing area (active LCD area) were symmetric. This allowed me to center the monitor with respect to the hole. I ignored the fact that I was shifting the viewing area down by 0.5 mm (0.02”).
B) Dimensions To Allow Air Circulation, Fasteners, Cable Mounting
I marked the extended area all around the monitor. This area consisted of additional 30 mm (1.18") at each side, 20 mm at the bottom, and 30 mm (1.18”) at the top. Again, these areas were supposed to provide air access to the monitor so that the monitor would not heat up when running continuously in the frame. That obviously meant that the material present in these areas also had to be removed.
C) Dimensions To Align Template Boards
From the outside dimensions of the monitor, that I marked in section A, I drew parallel lines that were exactly 62 mm (2.44”) offset to the outside. This dimension was specific to my router and the router bit I was using. The 62 mm (2.44”) was the distance between the edge of the 12.7 mm (1/2”) diameter router bit and the edge of the plastic router base plate that I had reattached to my router. In other words, the 62 mm (2.44”) was the distance for my setup that a guiding plank needed to be for an exact cut. Note that due to (i) the height and width of the board and (ii) the requirement for a precise cut, I marked the locations of the template board edges only for the area marked and described in A) and not for the area described in B).
In the figures you can see the process of measuring and marking, as well as the finished markings. Furthermore, you can see where I clamped a single template board with a straight edge onto the frame. This board acted as the guide for the base plate of the router and helped to create exactly the desired recessed area for the monitor on one (out of four) particular side of the frame.
Step 13: Router Action 3 - Cutting the Recessed Area for the Monitor
The pictures show for selected depths the setting of the depth gauge and the edge after routing with that particular depth. Note that I had no guides in place that stop my movement at the side of the routing pass. I routed “free hand style” up to the edge where the area for air circulation ended. With each deeper pass I was specifically careful to only lightly touch upon the end of the pass to avoid straining the router bit or router.
The pictures also show that the horizontal alignment of the template boards did not give me a large area to clamp my boards to. To work around this issue I employed my spare/testing material to act as an extension of the frame. By clamping frame and extra material with two clamps and the frame on the other side with another two clamps, I was able to align and secure everything so that I could reproducibly run all eight passes without any difficulties.
Note that my router bit was almost the same diameter or in some cases even less than the width of the pass I needed to route. It is better to reduce the load on the router bit and therefore, as shown in one of the pictures, I routed the half of the width of each pass that was at the edge of the cutout before I routed the other half. The second pass was entirely guided by the template board. To have a reasonable control over the first pass as well, I turned my router clockwise a little bit, so that the base plate contacted the template with a different spot. This turn allowed me to increase and control the distance between template and edge of router bit reasonably well. I found this to work well for me to get a reasonable straight first “half” pass.
Note that you'll need the exact depth settings of this step in the subsequent routing steps as well. Do not change your depth settings.
The pictures show how the back of the frame looked after all four sides had been cut. They further show that the monitor neatly fit into the recessed area.
Step 14: Marking Up the Backside of the Frame - II
(A) Fasten the Monitor to Frame
To fasten the monitor to the frame, I decided to use some leftover aluminum bars that were approximately 3.175 mm (0.125”) thick and 12.7 mm (0.5”) wide. I picked out four locations for the fastener two on the left and two on the right side of the monitor. As shown in the pictures I placed one fastener closer to the top and one closer to the bottom on each side. Important for the location was that (i) the fastener would press against a flat part of the monitor back, (ii) that this part was a section that was rigid and (iii) that no conflicts existed with cables or other frame/monitor parts. After I identified four sections for the fasteners, I carefully measured how much wood I needed to remove to have a section of wood that was exactly the same height than the monitor. The material depth I had to remove equaled the distance from the back of the monitor to the back of the wood frame. In my case it was 10 mm (0.39”). I marked all locations and recorded all values for the subsequent routing step.
(B) Allowing for Maximum Cooling
For maximum ventilation I needed to leave enough material to keep the frame in place, while removing as much material as I could. I decided on a 7 mm (0.28”) boarder section to keep the frame in place and remove all the other material with exception of the locations for the fasteners. This height represented half the thickness of the monitor at the sides.
The top is the hottest section of the monitor. To allow for sufficient convective cooling, I cut additional horizontal and vertical channels into the wood. The horizontal pass spanned over the entire width at maximum routing depth, i.e. the routing depth of the plane that is in contact with the front of the monitor. I then added 12.7 mm (0.5”) wide channels in vertical direction. These were spaced 21 mm (0.83”) from each other. This should allow for sufficient convective air flow at the top of the monitor, which happens to be the hottest part of the monitor.
I only have a limited amount of pictures for this step. Please refer to the next step for pictures that show the backside of the frame after completing the routing step.
Step 15: Routing Action 4 – Shaping Air Ventilation and Fastener Sections
Exception 1: The guidance / template boards were all fastened using the method that requires an additional board and that was also introduced in step 13.
Exception 2: No marking/line was available for alignment of the template board. Instead the distance to the alignment board was carefully measured prior to and after securing the clamps.
Exception 3: I routed the sections for the vertical canals at the top without any guides, i.e. free hand. I only used marks indicating the center position of the canal. The results were not that straight. For future projects I would mark the edges of the canals when reaching the appropriate height level. Then I would route them free hand using the lines as guidance. This would result in more evenly spaced and straighter vertical channels. I would additionally suggest to fabricate a larger base plate for the router. Such a plate should make it easier to keep the router level when routing further away from the edge.
Exception 4: The fastener section required a router depth that could not be easily adjusted by simply turning the step depth gauge to the next step. It needed an intermediate step. The depth levels that were adjusted in step 13 were still needed for routing out deeper sections of the frame. To reproducibly adjust the routing depth to the required intermediate level I searched for and found a material that had a thickness that I could use in combination with the step gauge. As shown in one of the pictures, I used a washer that allowed me to reproducibly adjust the router depth to the intermediate height that the fastener area required to be flush with the monitor back. The use of the washer is demonstrated in one of the pictures. With this little trick I didn't have to change the original depth settings and could still use them for the other areas.
Exception 5: I implemented the suggestion made in exception 3 before routing the fastener areas. After reaching the height level of the fasteners, I marked the edges of the fastener areas before I routed out the deeper levels. The areas for the fasteners came out fairly straight and good looking although they were routed free hand, i.e without guide or template boards.
The first picture shows the washer that I used for reproducibly adjusting the height of the router bit to an intermediate step by using the height gauge of my router. In this picture the router is lowered to this particular intermediate height. I locked the router height and then I wiggled the washer out from beneath the height adjustment. ONLY ROUTE WITH WASHER REMOVED.
The other pictures show the top and side of the frame during different stages of the production process. The edges of the final frame were carefully sanded with a sandpaper sponge. The figures also show the frame after finishing the routing steps with the inserted monitor.
Step 16: Making Standoffs for Frame
The outer dimensions of the stand offs were 50 mm (1.97”) x 50 mm (1.97”) x thickness of board. They had an 18 mm (0.71“) x 32 mm (1.26“) cutout section at one corner of the 50 mm (1.97”) x 50 mm (1.97”) square. I created them in pairs of two. I marked the outlines of two stand offs on the board with the cutout sections facing each other. Note that there is ~5 mm (0.20”) additional space between the stand offs. This extra material will be removed when separating the two parts with the table saw at the end of this step.
I clamped the board onto my workbench, with wood protruding over the edge. I used the jig saw to saw along the outer 18 mm (0.71“) long cutout line. Then I cut a larger diameter curve towards one of the inside edges of the cutout area. I moved the jig saw slowly and didn't force the bend, so that the blade remained straight at all times. The removed material enabled me to cut out both of the 32 mm (1.26“) sections. The final shape of the stand offs was cut on the table saw. Since these are small pieces, make sure you use a push handle and proper care.
I continued by marking the hole locations. My screws were shorter than the wood, so I had to insert them into the standoff. This meant that the clearance hole I drilled had two diameter: (i) the top part of the hole was wide enough for inserting the screw head and a small washer, and (ii) the bottom part was a clearance hole for the threaded part of the screw. I used brad tipped drills and a drill press to drill the holes. I set the depth settings of the drill press so that 20 mm (0.79”) of the screw were screwed into the frame and approximately the same length was inserted in the stand offs.
I marked on each standoff the corner of the frame where I was going to use it. For example I marked OL for “top left” and additionally indicated with a triangle the orientation of the stand off. Then I aligned the standoff and by pushing the sharp tipped brad point drill bit through the hole I marked the hole location on the frame. The process is shown in the pictures. After marking all four standoffs, I selected a drill whose diameter matched the core diameter of the screws. I adjusted the drilling depth on the drill press to ensure that I drill only deep enough to accommodate the length of screw entering the frame. Then I drilled the holes for the standoffs. Note, don't fasten the standoffs yet. This is done in a later step after sanding everything.
Step 17: Making Fasteners for Monitor
To prepare for attaching the fasteners to the frame, I inserted the monitor into the frame, moved the fastener to the desired position and recorded with pencil on the fastener which fastener I was using in which corner of the frame. Then I marked the hole locations with a brad point drill bit that would fit through the holes in the aluminum bars. To drill the holes I selected a general purpose drill bit that had a slightly smaller diameter than the core of the screws. I adjusted the drill depth and drilled the holes with my drill press. I did not fasten the monitor yet, this happens a few steps down the road.
Step 18: Preparing Frame for Two Push Button Switches and Toggle Switch
I was going to use a total of three switches: (i) a red and a black push button with (on) functionality, and (ii) a toggle switch with off – on functionality. The black push button switch was going to be used to power the monitor off or on. This button was placed toward the bottom of the frame's right side when you look at the back. It's center dimensions were 50 mm (1.97”) from the bottom and 30 mm (1.18”) from the side.
The red push button and the toggle switch are usually operated together. They shutdown the raspberry pi and switch off the power, respectively. I grouped them together and placed them toward the top of the frame's right side when you look at the back . The red push button is supposed to be used prior to the red latching switch. Therefore I placed it higher than the toggle switch, because the operators hand will typically trail down the edge of the frame from the top down to find these buttons. It's center dimensions were 50 mm (1.97”) from the top and 30 mm (1.18”) from the side. The toggle switch was located 40 mm (1.57”) lower than the red push button switch.
I used Forstner drill bits of 15 mm (0.59”) and 20 mm (0.79”) for the push buttons and toggle switch, respectively. I adjusted the drill depth with my drill press considering that some extra depth was required for the solder connections and routing of the cables. I drilled at a medium speed giving the drill bit plenty of time to cut the hole. If you go too fast with Forstner drill bits you may potentially burn up / overheat the drill bit. So be patient and take your time. After drilling the main hole I added additional holes for the cables. I drilled these from the inside of the frame toward the outside. I chose general purpose drill bits for theses holes. They had the same diameter than the cable that I was going to connect to the respective push button or switch. I carefully eyeballed the angle and slowly drilled from the air ventilation area into the frame until the drill penetrated the hole drilled for the push button or switch. The frame was now ready for the push buttons and toggle switch install.
Step 19: Preparing Wire to Hang Up Frame
The cable was to be fastened on the frame using two strews. The screw locations were chosen to be at the same height than the fasteners for the monitor, however, I offset them horizontally by 25 mm (0.98”) towards the outsides of the frame.
Prior to drilling the holes for the ring terminals with my hand held drill, I marked the desired drill depth on the drill bit by wrapping a little bit of tape it. To not drill to deep, I stopped drilling as soon as the tape contacted the wood.
Step 20: Finishing the Wood Surfaces
Step 21: Mounting the Monitor
Step 22: Mounting the Raspberry Pi
Step 23: Mounting and Installing Push Buttons and Toggle Switch
A) Mounting Push Buttons and Toggle Switch
I inserted the cables into the respective holes, stripped the ends and soldered them to the connectors of the push buttons and toggle switch. Simultaneously, I pulled the wire back and inserted the push button or toggle switch half into the hole. Before I fully seated any of the buttons/switch, I tested their functionality with a multimeter. When it was confirmed I fully seated the device in the hole.
B) Connecting Monitor Off Push Button
Monitors typically have a few buttons inserted in their housing that allow you to adjust contrast, color, vertical and horizontal orientation, and maybe other things. The black “monitor off” push button needed to be connected in parallel to the regular monitor control button. If connected properly, it didn't matter if you'd pressed the original button or the new button, the monitor went on or off just the same.
When disassembling the monitor housing, I had removed a small circuit board that held the actual buttons and sent the signals to the monitor via a flat cable. I wanted to keep the functionality of the monitor buttons available in case adjustments were necessary and decided to mount the buttons from the housing on the backside of the frame. I used a small hand saw to cut out the plastic section of the monitor housing that held the original buttons. As a sanity check, I screwed the small pc board back into this plastic section and tested if the buttons were still working. Then I removed the pc board again and, using a multimeter, checked which contacts were connected when pressing the power button.
I shortened the wires coming from my newly installed black push button to allow for nice and neat cable routing, stripped the ends and carefully soldered the wires to the appropriate solder contact of the power button. The soldering was a little tricky since the pc board was an smd board and not much contact area was available for soldering. However, I reassembled the board with the section of plastic housing and confirmed functionality of all the buttons including my new monitor on/off button.
Everything worked like a charm and I fastened the plastic housing section with two component epoxy onto the frame below the monitor.
C) Shutdown Button
The red “shutdown” push button was connected to the raspberry pi's connector pins 1, 9, and 11 (GPIO 17) using a 1 and a 10 kOhm resistor. You can learn all about the hardware and software of that switch here:
Find GPIO related info and a download for the headers here and here:
D) Power Toggle Switch
As shown in the electrical schematic, the toggle switch cuts power to all electrical devices, i.e. the monitor and the raspberry pi. As mentioned before, prior to using the toggle switch, it is important to shutdown the computer by pressing the red push button. The toggle switch is also used to start the raspberry pi after a shutdown. For this purpose it has to be switched off, then switched back on.
All 110V AC connections were placed within a small plastic box to minimize the associated shock hazard. The box further contained the 110V AC to 5V DC power adapter for the raspberry pi. The box had a removable top and fit perfectly into the lower left section of the back of the monitor without protruding beyond the wooden stand offs. There were no good ways to fasten the box with screws, so I decided to glue the box with heavy duty epoxy onto the frame. To level the box and give it good support I used two aluminum pieces of the same material that I had used to make the fasteners for the monitor. I glued these pieces first together and then onto the monitor. Then I placed the box on top, without gluing it at first, to plan the cable routing and organize everything inside the box.
Organizing and Routing Cables to the Terminal Box
To safe space, I opened the 5V power supply and removed the 110V AC prongs. I chose to place the power supply in the upper left corner of the box and decided on hole locations for inserting the cables. I determined the appropriate drill diameter and drilled a total of three holes for (i) the main power supply cable, (ii) the power cable to the monitor, and (iii) the power toggle switch and the raspberry pi power supply cable. I cut the existing power cord for the monitor just short enough to enter the box and be connected. I stripped a couple of inches of the insulation and fed it through the hole into the box. Then I used zip ties at the outside and the inside of the box to create a strain relief for the cable. I repeated the procedure with the much longer part of the power cord that contained the plug. I further took out the pc board from the 5V power supply and cut the 5V power cable off. I plugged the micro usb cable into the raspberry pi and routed it back to the box. I did the same with the cable that was attached to the toggle switch and fed both together into the box. These two cables also shared the same zip ties for strain reliefs. I shortened both cables, but kept them long enough for easy routing and connecting inside of the box.
Wiring the Terminal Box
I stripped the 5V cable and soldered it back onto the outlet of the 5V power supply. I soldered the incoming neutral (from the outlet plug) to the neutral of the 5V power supply and the neutral going to the monitor. I soldered the incoming ground to the ground going to the monitor. And I soldered the incoming line/hot to one of the two cable strands going to the toggle switch. The other strand of that cable, i.e. now coming from the toggle switch if you like, I soldered to the remaining open contact of the 5V power supply and to the line/hot going to the monitor. I insulated everything with shrink tubing.
Finishing the Terminal Box
Since the box was all wired up, I mixed a small batch of epoxy glue and glued the casing of the 5V power supply into the box. I made sure I also glued the pc board in place so that it was not able to slide out of the casing. When everything had dried, I mixed a large batch of epoxy glue and glued the box onto the aluminum bars and the surfaces below the box. I weighed down the box and let it dry. In the meantime I selected a medium sized general purpose drill and drilled as many holes as possible into the top of the box. I cleaned up the holes with a larger drill bit and fastened the top on the box.
Finishing the Wiring
As the final step I used some more epoxy and glued cable tie mounts to strategic position on the frame. With these mounts and zip ties I routed all the cables in a neat and secure way after the epoxy had dried.
Attaching the Wire to Hang Up the Frame
Once everything was done I attached the wire to hang up the frame with two screws.