Introduction: GIF Photo Booth
This is a GIF Photo Booth that I made for my wedding. I didn't want to spend a ton of money renting one so I decided to DIY a (relatively) low-cost version. While this seems really complex on first glance, if you've ever built something using a microcontroller before, this project is actually fairly easy. It's definitely easier than planning a wedding. That much is for certain.
Anyhow, this photo booth takes a series of 6 images, compresses them into a GIF file and then uploads it to Giphy. In doing this it creates a great online archive of your special event. The fact that it creates animated image sequences makes it super-fun for your guests to play with, and everyone has a great time using it. It was a big hit.
Step 1: Materials
Materials you will need:
(x1) Raspberry Pi starter kit
(x1) Raspberry Pi camera V2
(x1) Thumb drive
(x1) 12" camera extension cable
(x1) LCD screen
(x1) HDMI cable
(x1) USB extension port
(x1) USB hub
(x1) USB keyboard
(x1) USB mouse
(x1) 1/4" mono jack
(x1) Power jack
(x1) 6-pin female header
(x1) 12V to 5V power adapter
(x1) 12V power supply
(x1) 25' 1/4" to 1/4" mono cable
(x1) Foot pedal switch
(x1) Video tripod
(x2) 16" x 1-1/4" x 1-/14" x 1/8" thick aluminum bars *
(x6) 1/4-20 x 3/8" thumb screws (for back panel)
(x6) 6-32 x 3/8 flathead bolts (for front panel)
(x4) M4 x 10mm bolts (for screen)
(x2) M2 x 8mm bolts (for camera)
(x2) #4 x 1/16" spacers (for camera)
(x4) #4 x 1/8" spacers (for Raspberry Pi)
(x4) 4-40 x 3/8" bolts (for Raspberry Pi)
(x2) 6-32 x 3/8" bolts (for power converter)
(x1) Stranded wire
(x1) Assorted shrink tube
(x5) Small zip ties
(x1) 18" x 18" x 1/8" black acrylic
(x1) 18" x 18" 1/4" black acrylic
(x1) 12" x 12" vinyl adhesive (optional)
* I purchased a 3' bar and cut it down to size.
Tools you will need:
(x1) 1/4-20 tap
(x1) 6-32 tap
(x1) 4-40 tap
(x1) M2 tap
(x1) #7 drill bit
(x1) #35 drill bit
(x1) 1/2" Countersink Bit
Step 2: Cut the Acrylic
Download the attached cutting templates. Cut the front piece out of 1/4" black acrylic. Cut the back piece out of 1/8" black acrylic.
Ideally these pieces will be laser cut. If you do not have a laser cutter, or access to one through a local makerspace or want to pay an online service, then you can check out this Instructable which goes over digital fabrication by hand.
Step 3: Thumb Screws
Line up the aluminum bars along the top and bottom edge of the 1/8" back panel. These are the edges that have three equally spaced holes.
Mark the center point of each of these holes on the aluminum bars using a transfer punch. Drill all the markings with #7 drill bits.Thread the holes with a 1/4-20 tap.
Also, while you're at it mark, drill and thread a 1/4-20 hole centered upon the plane that is perpendicular to one of the side with three holes on it. This will later serve to mount the photo booth to a tripod.
Attach the back panel to the aluminum bars using 1/4-20 thumbscrews.
Step 4: Thread
Thread the four holes on the acrylic back panel that are arranged in a small square with a 4-40 tap. The Raspberry Pi will be mounted here.
Step 5: Mount the Screen
Mount the LCD screen to center of the back panel using M4 bolts.
Flip the back assembly over so that the screen is facing up. Line up the 1/4" front plate atop the assembly.
Mark the three equally spaced mounting holes on the front panel onto the aluminum bar with a transfer punch.
Release the thumb screws from the back panel and once again free the aluminum bar from the acrylic panels.
Drill the new markings on the aluminum bar with a #35 drill bit. Thread them using a 6-32 drill bit.
While you're in the drilling mood, countersink both pairs of three mounting holes on the top and bottom of the acrylic panel's front face.
Flip the acrylic over so that the countersunk holes are facing down. Peel the protective coating off of this side. This is now the inward facing side.
Line up the aluminum bars with the mounting holes and fasten them in place with 6-32 x 3/8" flathead bolts.
Step 7: Peel the Back
Peel the coating off the inside face of the 1/4" back panel. This is the face the LCD screen is attached to.
Step 8: Mount the Electronics
Now is time to mount the electronics to the acrylic back panel.
Mount the power jack, 1/4" mono jack and the USB jack to the panel using their mounting hardware.
Attach the 12V to 5V power convertor with 6/32 x 3/8" bolts.
Finally, attach the Raspberry Pi to the back panel using 4-40 x 3/8" bolts and 1/8" spacers.
Step 9: Plug in Some Cables
Connect the HDMI cable between the monitor and the Raspberry Pi.
Connect the cable from the panel-mount USB jack to the USB jack on the Raspberry Pi.
Step 10: Connect the Jack
Pull the four central pins out of the female header, leaving the two outside pins in place.
Solder a 12" red wire to one of the pins and a 12" green wire to the other pin.
Solder the other side of the red wire to the 1/4" jack's signal terminal. Solder the other of the green wire the to the 1/4" jack's outer barrel terminal. Honestly, if you mix these up it does not matter too much in this scenario.
Slide the female header onto Raspberry Pi's male header pins closest to the edge of the board such that one wire connects to Pin 18 and the other wire connects to 5V power. The red wire should technically go to the power pin. However, once again it honestly does not matter if this gets reversed since the switch that these wires are ultimately attached to is not directional.
Step 11: Wire the Power Jack
Connect the red wire from the 12V power converter to the terminal connect to the center pin of the power jack.
Connect the black wire right next to the red wire from the power brick to the other terminal of the power jack.
Step 12: Wire the Plug
Next, cut the plug end off the power supply to the LCD screen.
Strip back the insulation from the two wires connected to the plug.
Connect the one wire that is continuous with the plug's barrel jack to the ground connection of the power jack.
Connect the other wire continuous with the inside of the plug to the 12V power connection on the jack.
Step 13: Connect the USB Plug
Cut the micro USB plug off of the Raspberry Pi's USB power adapter.
Solder the red power wire from the plug to the yellow 5V wire from the 12V to 5V power converter.
Connect the two black ground wires together as well.
Insulate the connections with shrink tube.
Step 14: Plug in Some More Stuff
Plug the power jack cable into LCD screen.
Insert the USB plug into the Raspberry Pi's USB input jack.
Clean up the cables by coiling them together and using a zip ties to keep them bundled.
Step 15: Mount the Camera
Thread the two camera mounting holes in the acrylic front plate using a M2 tap.
Use M2 x 8mm bolts and 1/16" spacers to mount the Raspberry Pi camera to the inside of the front panel.
Step 16: Attach the Back Panel
Attach the back panel of the photo booth to the aluminum bars using the thumbscrews.
Step 17: Peel the Cover
Peel the protective coating off the photo booth's front acrylic panel.
Step 18: Labels (optional)
I cut a vinyl label which read "GIF PHOTO BOOTH" using a hobby vinyl cutter and placed it on the back. This was so that when people saw it from elsewhere in the room they knew what it was.
I also used vinyl to put information on the front of the photo booth letting people know the website they could visit to retrieve their pictures.
Step 19: Assemble the Pedal Switch
Open up the pedal switch as per the instructions on the switch.
Cut one end off of the 1/4" cable and strip back the outer insulation to reveal an insulated inner signal wire and an exposed ground wire.
Strip back a little insulation away from the signal wire. Solder one wire to the common terminal and the other wire to the NO (normally open) terminal. When the switch gets pressed the two terminals should make electrical contact.
Secure the cable in place inside the switch. I did this by both tying a stress relief knot (to keep it from getting pulled through) and also by using the inner stress relief clamp that was inside of the switch (the part with two screws).
Once I was sure it all looked good, I closed the switch back up.
Step 20: About the Program
The program for the photo booth is based off of Lara Grant's Tumblr GIF Photo Booth. However, I decided to make some changes to it. For starters, it uploads to Giphy instead of Tumblr. Also, I created a more graphical interface to guide you through the process. Finally, I play back the gif at the end of the photo-taking sequence.
I should note that my 'GIF playback' is actually just a method of cycling through the image sequence that is used to create the GIF. I found that actual GIF playback was slow and unreliable, and kind of a pain-in-the-neck.
The code itself is fairly plug-and-play and does not need much customization.
This is the only line in the code that needs to be customized to upload to Giphy:
gif = upload(['*****INSERT CUSTOM TAGS*****'], 'animation.gif', username='*****INSERT YOUR GIPHY USERNAME HERE*****', api_key='******INSERT YOUR GIPHY API KEY HERE*****')
This line requires inserting your API key, username and custom tags. You should customize in text edit on your computer before copying it over to the Raspberry Pi.
In order to get an API key you need to register with Giphy for Developers. In order to really get it to work, you then need to apply for a production key in order to be able to upload more than 10 pictures a day. Also, to be entirely honest, the Giphy library I was using didn't work without the production key (this should not be the case).
Speaking of Giphy python libraries, you will need to download and install the following two libraries on your Raspberry Pi if you don't already have them:
Now that you got all that, download the attached zip file (PythonFiles.zip), and load it onto a USB stick
Step 21: Plug Everything In
The next step is to plug in everything in the following order:
- First, plug in the USB hub
- Next, plug the keyboard, mouse, and thumb drive with the software in the hub
- Once that is done plug the foot switch in the 1/4" jack
- Finally, plug in the 12V power supply to boot everything up.
Step 22: Setup the Raspberry Pi
If you have never used a Raspberry Pi before or need a refresher on configuring it, check out Lesson 2 of Lara's Raspberry Pi Class.
Once your Raspberry Pi is configured, you are connected to a wifi network, and all of the photo booth files have been copied to the desktop, type the following into the Terminal:
This should run the GIF photo booth.
If you are having trouble uploading GIFs, make sure that you have entered the correct username and API key. Also, be sure that you have formally registered your app with Giphy to get a full production key.
Once the program is running, you can unplug the USB hub (should you wish).
Step 23: Setup the Photo Booth
When your photo booth is thoroughly tested and you are ready for its debut, the next step is to install it.
Setup the photo booth on a tripod somewhere with a lot of floor space. Plug everything in, power it up, make sure it is connected to the internet and run the python script (as previously outlined).
It's best to point it at a blank wall or some sort of special backdrop.
For our wedding, I set up two C-Stands supporting a large white photo backdrop (which I had to iron). I attached the cloth to the C-stands by cutting a few small holes in it and zip tying it in place.
Step 24: Have Fun!
Now is time to just let the photo booth do it's thing and have fun.
Did you find this useful, fun, or entertaining?
Follow @madeineuphoria to see my latest projects.
2 years ago
It was fun, indeed! Highly recommend this!
2 years ago
Hi, thanks for another great lesson.
Unfortunately when I try to view the pdf, it says invalid format and won't open. Your pdf from the electronics super lesson as well, by the way, opens fine in pdf. Thanks,
3 years ago
have you run into any other programs that would run on a ipad that would be free or one time purchase, think of my kids school dance etc.
3 years ago
can you use a ipad for generating the images, , did you use a ring light for illumintation?
Reply 3 years ago
The app (as it currently stands) won't run on an iPad.
I didn't use any lighting.
3 years ago
every time i try to run the booth it keeps telling me that:
x error of failed request: badvalue ( integer parameter out of range for operation) i have pygame any giphy libraries installed whats the problem?
i think it might be because i havent filled out my username and api key yet, but tbh im not sure. any ideas?
Reply 3 years ago
I don't know. That error message alone does not say much. However, if there is no username and api key, I could see that causing errors.
You could try running it line by line and seeing where it fails (or something similar).
4 years ago
Awwwwww this is so cute! For your wedding pics, I mean. The Instructable itself is really informative.
Reply 4 years ago
Question 4 years ago on Step 24
Great project, thinking about building for my kids school. Do you have a rough estimate of total cost of materials? Thanks!
Answer 4 years ago
I had a lot of the stuff already on hand, but I am guessing that if you had to buy everything needed it would probably cost somewhere in the range of $300 - $500. You may be able to get cheaper materials than I link to if you shop around.