Introduction: Button Party - Photobooth (Raspberry PI)

For one of our recent events we were looking for a way to equip each of our 8 offices in Belgium with a massive button, whenever the button is pressed a sound plays and a picture is taken and uploaded to slack.


For one button you will need:

- 1 x Raspberry Pi (model doesnt really matter, we went for 3B)

- 1 x Power Supply

- 1 x SD Card ( We went with raspbian lite)

- 1 x Set of Speakers (link)

- 1 x 100mm button (link)

- 4 x Header Cables

- 1 x Resistor

- 4 x mounting screws

Step 1: Go to Your Local Hackerspace / Makerlab / Fablab

For the next step you will need access to a Lasercutter.

If you live in Belgium go here.

For the button casing we went with 6 milimeter MDF wood.

Make sure the laser cutter is set to:

  • 6mm / MDF
  • red = CUT
  • black = ENGRAV

For tips and tricks on how to get the best results I would recommend reading this post.

Step 2: Glue All the Boxes!

The next step is easy and fun.

Buy some regular wood glue and glue all the pieces EXCEPT the backplate.

PS: Did we tell you you can also build these boxes in plexi ? If you do make sure you reverse all the text on them because it will be mirrored when you engrave.

Step 3: Attach the Raspberry Pi

We included some nice mounting holes for you to attach the Pi to the wooden backplate.

You should mount the Pi with the HDMI facing the open square.

Step 4: Start Soldering

There are a lot of ways to connect a push button to a Pi, and unfortunately most of them are just wrong.

I would recommend reading up on this article before you continue.

Step 5: Upload the Software!

The way that our software works is like this:

- Pi Runs Debian

- Debian Runs Python

- Python Connects to GPIO for button presses

- Python runs pygame (for easy Webcam access and visuals)

Whenever a picture is taken pygame will send a REST call to a PHP server listening for POST-data.

The PHP server keeps track of all images and uploads them to slack.

You can go ahead and download our photo booth software from GitHub