Raspberry Pi Photobooth

by FresnoIdeaworks in Circuits > Raspberry Pi

262 Views, 0 Favorites, 0 Comments

Raspberry Pi Photobooth

20250906_163643.jpg
PiJam2019-2.jpg
PiJam2019-1.jpg
Anniversary1.jpg
Anniversary2.jpg

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

  1. Raspberry Pi 5 (4 GB RAM) – ~$60
  2. Camera Module 3 – ~$25
  3. 27W USB-C Power Supply – ~$15
  4. 64 GB Micro-SD Card – ~$10
  5. Arcade-style Push Button – salvaged from a previous project
  6. 7” HDMI Display (1024x768) – reused from old setup
  7. Laser-cut plywood case (1/8”) – custom design

Software

  1. Raspberry Pi OS: 2024-07-04 release, Kernel 6.12.34
  2. Python: Version 3.11.2
  3. Libraries:
  4. picamera2 (replaces deprecated picamera)
  5. instagrapi==2.2.1 (Instagram uploads)
  6. atproto==0.0.62 (BlueSky uploads)
  7. schedule==1.2.2 (timing tasks)
  8. 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.

python3 -m venv booth-env
source booth-env/bin/activate

Install required libraries using pip.

pip install picamera2 instagrapi atproto schedule DateTime

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

20250902_202500.jpg
20250902_202511.jpg
20250902_202514.jpg

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

20250829_173514.jpg
20250904_201646.jpg

- 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!