This instructable shows the physical build of a small digital picture frame in steam punk style. The frame is powered by a raspberry pi model B+. It dimensions are only 8 in. in the diagonal and it will fit very nicely on a small desk or shelf.
In my house this particular frame will be added to my picture frame network. It will show 10 pictures each day. The raspberry pi downloads these pictures from my ssh server. I have built large wooden 17 in. frames in the past and distributed them to my family. All these frames show the same 10 pictures during the same day creating a family uniting experience that reaches over thousands of kilometer, across oceans and continents.
This frame will likely end up in my office so I can participate in the fun during the day.
This instructable focuses on the physical built, but I will also provide a txt file with all the necessary software instructions in case you are interested to build a similar frame network. You could of course use the frame as a regular picture frame as well. The txt file should give you enough insights to get this done as well.
This is my first steam punk inspired project. Let me know what you think.
Step 1: Working Principle and Software
The working principle of my frame network is shown here together with the distribution of the frames of my network in the world so far. If you are interested in the software details download the attached files. They contain everything you need to know to build such a network yourself. And feel free to ask questions.
As mentioned in the introduction, this particular frame was built to be added to a network of picture frames that I made for my family. Each frame connects during the night hours to my server to download the same 10 new pictures for the next day. Each picture is shown for 6 minutes, one full cycle takes 1 hour. The cycle is repeated until new pictures are downloaded.
My family absolutely loves those frames. Whenever fun memories or very old pictures come up, text messages are sent around talking about the images. At birthdays I smuggle a photoshopped picture of the birthday kid into the random selection to the amusement of everybody. Nice clean fun.
Reason enough for me to build a small one for my desk at work, so that I can participate in the fun during the day.
Step 2: Planning
This really wasn't a project that was well planned out from the beginning to the end. I went with an initial idea, tried things out and modified it as I went. While this was an exciting journey in many ways, the approach also led to delays, rebuilds and undesired changes. The things that mattered the most were:
- The space requirements for the electronics were essential. Don't plan them too tight. I had a lot of trouble to get it all in the available space. There was a trade off of making the frame nice and small and keeping it functional. The length of the cables from the monitor were also an essential factor for the final design.
- The routing of the wood. I planned it out, just to realize that I didn't have the router bits necessary for the job. After I had ordered and received them I stopped the built for a week or two and misinterpreted my own drawings. In the end I had to do the routing all over again and still had to fix the wall thickness for the buttons. A little bit more thinking in the right moment would have saved me a bunch of trouble.
- Most every material used (with exception of the piping) were leftovers from other builds. I love using leftovers and put some new use to them. I keep bins with presorted stuff, while at the same I try to keep the clutter minimized. There is only that much spare stuff you can have around.
- Patience. Don't rush. Although things don't go as fast as you'd like, once you rush it you will start to make mistakes (like I did). I remind myself from time to time that this is a hobby. It doesn't matter if it is done today or tomorrow. To me it matters that it is done well and makes me feel good when I look at it.
Step 3: Materials
Ok, I am done with the bla bla. Here we go with the bill of materials:
- 2x Nippel 1/2 in. x 4 1/2 in. Black Steel Pipe Connector
- 2x Nippel 1/2 in. x 4 in. Black Steel Pipe Connector
- 4x 1/2 in. Black Malleable Iron Threaded Tee
- 1x 1/2 in. Black Malleable Iron Cap
- 4x 1/2 in. Black Malleable Iron 90° FPT x MPT Street Elbow
- some 1/4" bars
- Plastic frame with some ornaments approximately for a picture the size of the monitor (I got mine from hobby lobby.)
- 2x 1/2in. Black Floor Flange
- 1x Nippel 1/2 in. x Close Black Steel Pipe Connector
- 1x Nippel 1/2 in. x 3 in. Black Steel Pipe Connector
- 1/2 in. Black Malleable Iron 90 degree FPT x FPT Elbow
- 1x 8 in. TFT LCD Display ModuleHDMI+VGA+2AV Driver Board for Raspberry Pi, $40, (I bought a similar one, though NOT with a flat cable and also much more expensive)
- 1x AC/DC Power Adapter 12V 4A 48W with 5.5x2.1mm DC Plug, $12.50
- 1x 19 Pin HDMI Male to Male Adapter Coupler for HDTV, $2.15
- 1x Raspberry Pi, $35, any model really, but the Raspberry Pi 3 - Model B - ARMv8 with 1G RAM comes with Wifi
- 1x Miniature WiFi (802.11b/g/n) Module, $12 (only needed if your older Pi doesn't have Wifi built in)
- 2x micro momentary push button (I used old ones, but you can check this out as a source)
- 1x rotary switch
- 1x 1 kOhm resistor
- 1x 10 kOhm resistor
- 1x Connector Power Jack
Odds and Ends:
- Screws & nuts
- Bullet Shells
- Epoxy Glue (my favorite is shown in the pictures)
- Shrink tubing
- Thermal paste
Step 4: Tools
The tools I used were:
- Allen wrenches
- Saw or Flex
- Dremel with cutting wheel
- Random Orbital Sander
- Router bit, round inside cut, 1-inch Cutting Dia
- Router bit, Round outside cut, 3/8" with bearring
- Sandpaper from 120 - 400 grit
- Drill, Forstner bit, 1 1/2 in. diameter
- Drills of various sizes
- Miter square
- Table saw
- 6 in. belt sander
- Solder Iron
Step 5: Monitor Stand
In this step I explain how I mounted the monitor in a cheap plastic frame that had some ornamentation on it and fit in the steam punk theme.
- Measure the active area of the monitor and buy a frame in a more or less fitting size for a couple of bucks. Mine monitor was a little bit too large for the frame opening. The frame needed to be adapted.
- Center the router plate and install the router guide bushing kit
- Cut a test cut. This will give you the exact offset of your cutting template to the router bit.
- Based on the test cut, create a template for expanding the recessed area of the frame so it fits the monitor. Consider what the active / visual area of the monitor is.
- If needed use cardboard or other material as height adjustment and cut.
- Test the fit. Ideally, switch the monitor on and test it life.
- Rip the hangers/fastener and extra material that is not needed any more out of the frame.
- Clean it all up and if required make it flush with a chisel.
- Cut a not too thick piece of wood (e.g. 0.5") with the table saw so that it fits on the backside of the frame.
- Cut the edge with a router bit to give it a finished look.
- Drill a hole in the center that is large enough for the connectors of the monitor, but small enough to be well covered by the floor flange for the 1/2" pipe
- Sand the wood and the edges with a random orbital sander or by hand to a smooth finish.
- If needed (as in my case) router out a channel for the cable to maximize cable length into and out of the pipe.
- Select screws and drill holes to be able to fasten the floor flange.
- Measure the length of the screws and if required cut them to length with a dremel.
- On a piece of cardboard or old table, dab the backside of the wood with black and gold acrylic paint. Use plenty of paint so it gets some three dimensional structure. Use both colors when wet so that the colors blend a little and you get a nice continuous effect.
- Once dry add the floor flange pre-assembled with the shortest available nipple and a 90 degree bend.
- Feed the cable through.
- Add the other floor flange pre-assembled with a nipple that allows the monitor the desired clearance from the ground. Tighten it well.
- Sandwich the monitor between frame and wood and glue into place. If possible use a removable glue. I couldn't get it done with hot glue so I took a risk and used epoxy.
- Wait until it is dry.
Step 6: Metal Frame
In this step I am explaining how I put the frame together. I didn't take that many pictures for this step and added a drawing to display how I put the last piece together.
- Make a decision on the size of the base and the frame surrounding it. Give yourself a little bit more space than I did. I did not leave more than 1" for the wood and the PC boards. Turns out that is not much and makes things harder.
- Assemble the frame with pipe pliers and a vice. Be careful to create the same distances between the T- and 90 degree pieces.
- Finish the U-shape of the main body with the 4 T-fitting feet first.
- Make the elevated cross section separately carefully adjusting it to the same width.
- Without shortening the threaded section of the last piece, grind off the outside thread by maybe 1/2". It needs to fit into the fitting without showing that it wasn't screwed in. See drawings.
- Rotate the foot of the opposite side a little and screw the untouched thread of the crossbar into place.
- Rotate the foot back and seat the ground part into place inside of the top of the T-fitting.
- Ensure it looks right, or repeat/improve.
- Now flip it over and weld it in place through the inside of the foot. (Alternatively you can glue it with the magical epoxy pixie dust stuff.
- Cut a couple of 1/4 inch steel bars to size to fit between the feet. They'll act as support for the wood base and keep the feet from rotating.
- Weld them into place.
Step 7: Wooden Base
In this step we'll build the wooden base:
- Find a 2.5"-3" thick piece of wood. I used a beetle kill pine piece I had laying around.
- Measure your dimensions carefully and transfer them to the wood. The dimensions are:
- The inside dimensions needed to fit the Raspberry Pi/Monitor board assembly
- The outside dimensions needed to fit into the pipe frame
- The outside dimensions needed to fit onto the pipe frame, i.e. an overlap with half a pipe thickness around the pipe frame.
Step 8: Computer and Monitor Board
In this step we are putting the electronics together and fit them into the wooden base. While this appears to be a sequential step it is rather one of the first steps. You obviously have to think ahead, know the size of the monitor driver and raspberry pi boards, make the base large enough to fit them, and then design and build the pipe frame and the wood around them.
- You can plug the boards together with an HDMI connector. This connector replaces the HDMI cable and allows for the smallest possible foot print.
- You may have to line up the connectors by placing one board facing up and the other one down. That worked well for this built as the monitor board needed to face the cable coming from the monitor.
- Adjust the height of the boards with standoffs. You can use extra long screws to figure out what height offset you need. Then it works best to use standoffs of the appropriate length.
- Screw the standoff onto the boards and them glue them into wood base with the epoxy glue. After the glue is dried you can simply unscrew the boards whenever needed.
- The monitor board comes with a control board that allows to switch the monitor power off and adjust a whole number of settings. Glue this board with standoffs onto the monitor board. This fit in my case perfectly into the height of the wood base.
- The monitor board used was powered with 12V 2A DC wall wart. The raspberry pi needs 5V and up to 2.5A depending on the model. Rather than having two power supplies plugged into the frame, purchase a 12V 4A DC supply for both.
- Make a small 7805 voltage regulator board with noise caps at inlet and outlet. Insulate the end and drill a hole to fasten it using one of the screws for the raspberry pi board.
- Connect a cable to jack for the 12V input and solder it to the monitor board as well as to the 5V regulator input.
- Solder the output of the 5V regulator to the proper locations at the raspberry pi (see pictures).
- The voltage regulator will get hot when it has to regulate 7V down at 1A or more. This is obviously 7W in heat. It will need a heat sink.
- Take a piece of metal and cut it with snips to length. I used a piece that was leftover from an HVAC metal strip. Make it as long as possible to fit in the wooden base. My first one was short and got really hot. So I had to make a longer later one when I was testing the setup.
- Drill a hole in it and mount it with thermal grease on the regulator using a screw and a nut.
- Bent it if needed to clear all the other parts in the build without protruding from the wood base.
- For the shutdown switch I needed three RPI contacts, 3.3V, ground, and an input pin. I chose the pins marked in the pinout picture for my built.
- Cut all other pins short. While it almost hurt to do so, they are not needed for this application.
- Due to space restrictions I bent the three pins over to make more space for the homemade momentary switches.
- Connect a 10k and a 1k resistor to each other and then solder the end of 10k to the ground and that of the 1k to the GPIO pin, as shown in the pictures.
- They will be connected to the shutdown switch in the next step.
Step 9: Control Buttons
In this step we'll be building custom made momentary buttons and an on/off turn switch in the steam punk theme.
But first some explanations on the functionality of the 2x momentary buttons and 1x on/off switch:
- A momentary button will be used to switch the monitor off for the night. When pressed, the monitor goes dark. When pressed again, the monitor lights up again. Pressing or not, the raspberry pi will remain powered on and running since it needs to download the new batch of pictures during the night.
- A second momentary button is used as the shutdown button. When pressed, it triggers a shutdown sequence program in the raspberry pi. The pi is listening continuously to the input at the GPIO pin that is used for this button (GPIO 17).
- After a shutdown the computer is off, but it remains connected to power. To safely disconnect it from power (in case you are going on a vacation or want to disconnect the frame) or to restart it again, you need an on/off switch. Turn the on/off switch to cut power from the device after it had been shutdown. Turn it again to start up the computer again.
- Failing to shut down the raspberry pi properly could damage the SD card and cause the raspberry pi to malfunction. Be aware as this creates a bunch of extra work to it up and running again. Always make a backup of your SD card.
Momentary Bullet Buttons
- One day during tinker night one of my fellow "Faraday Cage Fighters" had some used brass shells laying around in a corner of his shop. I liked the brass feel of them and he donated a variety of sizes for my frame.
- It took some thinking and some testing, but soon enough I came up with a way on how to use the shells as button knobs.
- The schematic shown in the pictures shows how the buttons work:
- When pressing the shell, a spring is compressed and a screw moved through a small hole.
- The screw pushes a regular momentary switch and engages it.
- The switch is held with a bracket in place capable to provide the counter pressure.
- A nut will keep the screw and button in place and the spring will push the shell back out into starting position when the shell is not pressed.
- For the implementation, choose all the items you'd like to use as controls. I picked two bullet shells with 10mm diameter and one 1/2 in. pipe cap for momentary switches and a rotary on/off switch, respectively.
- Consider the spacing inside your wooden base and choose the area for the controls. In my design one end of the wood base was left accessible from the outside. This side holds the controls. This was the side my buttons had to go.
- Place the shells and cap on that side and decide on the final spacing. Mark it all down or record it carefully.
- Glue long 10-24 screws into the shells using epoxy glue. Align them carefully. The threads need to protrude out of the shell by at least 1 in. If they are longer, that's ok, we'll cut them to length later. I filled the allen screw head with epoxy before assembly to avoid air pockets and get a good surface contact of the glue.
- Let it dry. You can help with the alignment by drilling 1/2 in. deep clearance holes for the bullets and through holes for the screws in a piece of 3/4 in. scrap wood. Insert the glued assembly and let it dry in place.
- Find springs that fit inside the shell, but are longer than the shell. I stretched mine a little just by pulling them apart.
- Through testing I realized that I'll get best results when using a 3/4 in. piece of wood. 1/2 in. deep hole for the bullet (to guide the bullet well and prevent wobbling) and a through hole for the screw in the center of the larger hole. The side wall that I had for the controls was only 1/4 in. thick. I reinforced the section needed for the momentary bullet buttons with a small 1/2 in. thick piece of scrap wood.
- Cut the wood.
- Sand a nice radius into one side so it fit to the inside radius the router bit left behind.
- Glue it into place with wood glue and a clamp.
- Adjust the nut if you have problems
- Glue the nut into place if you have the right location.
Step 10: Rotary Switch
- Find a rotary switch of small dimensions that can handle the total currents of your setup.
- The monitor board required a 12V / 2A power supply.
- The raspberry pi is recommended to have a 5V / 2A supply.
- I tried to find a 12V / 4A panel mount switch to shut both off at the same time.
- This switch seemed perfect to me with respect to size and specifications.
Step 11: Final Assembly
In this step we'll tie it all together and get the assembly of monitor, power supply and computer functional and ready for testing.
- If you haven't done so yet, glue the brackets with the micro switches exactly behind the bullet buttons.
- Solder the cables from the monitor on/off bullet in parallel to the power on/off of the small monitor control board.
- Whenever possible slide shrink tubing on the cables you are going to solder on.
- Solder the power cables that go to the small regulator board and to the jack to the rotary switch.
- Solder the jack to the power cables coming from the rotary switch.
- Solder the cable from the shutdown bullet button to the resistors and the ground of the raspberry pi.
- Shrink the shrink tubing of all connections.
- Put the rotary switch in place and route the cables.
Step 12: Functionality Test and Last Fixes
In this step we are testing the functionality, bring the computer up to date and fix the last things before we assemble it hopefully for the last time.
- Connect an ethernet cable with internet on it and a usb keyboard to the raspberry pi.
- Start the pi by switching on the power.
- Check if the computer starts up and if the monitor shows a picture. (I am assuming you have gone through the software setup described in the downloadable txt file of step 2.)
- Press escape to see the command line of the pi.
- Update your pi to the latest version with:
- sudo apt-get update
- sudo apt-get upgrade
- Measure out the available space in the wood base for the heat sink.
- Cut a piece of material for the heat sink.
- Bend it at the appropriate angle using a vice.
- The piece of metal I had was bent back on itself on both sides. I opened an airgap to allow for more cooling.
- Mark the spot for the hole and center punch it.
- Drill it out.
- Dab thermal grease on the voltage regulator.
- Screw the heat sink in place.
Step 13: Final Thoughts
Thanks for hanging on for the entire instructable.
The built was quite a process and took some unexpected turns. For example when I realized that I couldn't screw on the last threading of the black pipe. It's obviously the little things that matter at times.
In any way, in retrospect I'd give myself at least a half inch extra in each direction.
Here some thanks to my fellow "Faraday Cage Fighters". Thanks for the good company, the consulting and for helping out with one or the other tools that I happen to not have. (One day I'll have them all, I promise.)
All in all I am very happy how the frame looks and feels. Another great little gadget to have around.
I am looking forward to your comments and questions.