Raspberry Pi Photobooth
by FresnoIdeaworks in Circuits > Raspberry Pi
262 Views, 0 Favorites, 0 Comments
Raspberry Pi Photobooth
Our photo booth journey began in March 2019, when Fresno Ideaworks joined the global celebration of the Raspberry Pi Big Birthday Weekend—a worldwide event marking the Raspberry Pi Foundation’s sixth anniversary. Over 100 Raspberry JAMs were held across 40 countries, and we hosted one right here in Fresno.
To make our JAM extra special, we built a photo booth inspired by Ben Nuttall’s jam-photobooth project, created specifically for the Big Birthday Weekend. Ben, a Raspberry Pi Community Manager at the time, published the project to GitHub as part of the official JAM kit.
The booth featured:
- A big arcade-style button to trigger the camera.
- A countdown timer displayed on screen.
- Four quick photos taken in sequence.
- A themed overlay with the Big Birthday Weekend logo.
- Automatic posting to Twitter with hashtags like #PiParty and #RJam.
We customized the overlay for our Fresno JAM and added a few tweaks to suit our setup. The booth was a hit—visitors loved it, and the instant social media sharing added a fun, tech-savvy twist to the event.
You can see examples from our booth and similar booths from other events in the official Raspberry Pi blog post:
Raspberry Jam Big Birthday Weekend 2019 Roundup.
Over the years, we reused the booth for events like ArtHop and our 10th anniversary celebration in 2022 (see above). But by 2025, the original system was outdated—prompting a full rebuild with modern hardware, updated libraries, and new social media integrations.
Supplies
Hardware
- Raspberry Pi 5 (4 GB RAM) – ~$60
- Camera Module 3 – ~$25
- 27W USB-C Power Supply – ~$15
- 64 GB Micro-SD Card – ~$10
- Arcade-style Push Button – salvaged from a previous project
- 7” HDMI Display (1024x768) – reused from old setup
- Laser-cut plywood case (1/8”) – custom design
Software
- Raspberry Pi OS: 2024-07-04 release, Kernel 6.12.34
- Python: Version 3.11.2
- Libraries:
- picamera2 (replaces deprecated picamera)
- instagrapi==2.2.1 (Instagram uploads)
- atproto==0.0.62 (BlueSky uploads)
- schedule==1.2.2 (timing tasks)
- DateTime==5.5
All code and case design files are available on our GitHub page: https://github.com/FresnoIdeaworks
System Setup
1. Install Raspberry Pi OS
Flash the latest Raspberry Pi OS onto your micro-SD card. We used the July 2024 release.
Check the Raspberry Pi website for instructions.
2. Create a virtual environment for the Python code.
- Development is done within a Python virtual environment (required for Bookworm-based Raspberry Pi OS).
- Dependency management is handled via pip and/or requirements.txt.
Install required libraries using pip.
Note: picamera2 replaced picamera from the original jam-photobooth, which no longer supports Camera Module 3. We had to rework the UI since annotate_text was removed. Now we use OpenCV to render messages on the display.
Cut Out and Assemble the Case
The case was designed using the Boxes.py open source parametric design tool. We chose to use the "Console2" style, adjusting the parameters so that the case would comfortably enclose the components.
Extensions were added using GIMP to the patterns for the back for the camera mounting and the front to allow for table edge stability. An opening for the screen and mounting holes were added in LightBurn based on the size and spacing obtained from the Raspberry pi documentation.
Using 1/8" birch plywood and "project board" MDF case pieces were cut on a BOSS 1630 105W CO2 laser cutter using the LightBurn software.
All pieces were press assembled and did not require gluing.
Workflow
User presses the button.
Countdown begins (displayed on screen).
Three photos are taken in sequence.
Images are composited with a themed overlay using Python imaging libraries.
Final image is displayed and uploaded.
Social Media Integration
Instagram: We use instagrapi to upload directly to Instagram.
BlueSky: Posts are handled via the atproto library.
Cross-Posting: IFTTT can replicate posts across platforms for wider reach.
Twitter (now X) no longer offers free API access, so we moved away from it.
Connect Hardware
- Attach the Camera Module 3 to the Pi.
- Wire the push button to a GPIO pin.
- Connect the HDMI display.
- Mount everything inside the laser-cut case.
Image Capture Workflow
Button press triggers a countdown.
Three images are captured in sequence.
Images are composited with a custom overlay.
Final image is uploaded to selected social media platforms.
Final Notes
This project is a great way to combine hardware hacking, Python programming, and creative design. Whether you're documenting a community event or just having fun, a DIY photo booth adds a personal touch.
Let us know if you build your own version or remix ours—we’d love to see it!