Build your own hardware game show buzzers and do awesome things with it! π
This repository contains everything you need to build hardware buzzers and connecting them with your software. Start today having fun, and make people happy by providing them an unforgettable time.
For even more context, we recommend reading things with buzzers: building them.
- How we build and run them
- What we need / Bill of materials (BOM)
- Buzzers
- Raspberry Pi Hat
- Raspberry Pi
- Custom Raspberry Pi case
- How we can test the buzzers (with software)
- The result
- Things you can do with buzzers
- Alternative hardware buzzer projects
- Contribute
- Acknowledgments
We built four game show buzzers in four different colors (red, green, blue, yellow). The buzzer cases are self-printed with a 3D-Printer. Each buzzer case has a female USB connector embedded.
The central control unit is a Raspberry Pi 3 Model B+ (following Pi) with a custom build hat module (circuit board). The hat module offers four female USB connectors and maps them onto the GPIO of the Pi.
Each buzzer connects via a USB cable to the Pi hat. On the Pi, we can place software and read the buzzer signals (e.g., buzzer pressed) and react on this.
If the software (running on the Pi) offers a UI and the Pi connects to a network (or opens up a new network), a client can connect to it. As a small software example: Show in the UI which button is pressed.
It is how it looks like:
You are missing the context, what this is all about? Have a look at
- (1) things with buzzers: Jeopardy! frontend
- (1) things with buzzers: sports competition frontend
- (2) things with buzzers: websocket
To replicate this project and build your buzzers, you need a couple of things. We have created a complete list of what you need, a so-called Bill of material (BOM).
Check it out: Bill of materials (BOM).
First, we start with the buzzer case and print it with a 3D printer. Printing instructions / Step files can be found in the 3d-models folder for the buzzer cases. Feel free to choose the color of your printing material for the right look. Go ahead and print!
If you are new to 3D printing, step files are printing instructions. You can few and edit them with software like Fusion 360 from Autodesk (they offer a free version for startups and hobbyists).
Next step would be to build the small circuit board that connects the buzzer with the USB socket:
Check out the step-by-step image guide on how to build this in our buzzer building folder.
Congratulations, you build your first game show buzzer. How awesome is this?
Second, we build our custom Pi hat. The buzzers are connected to the GPIO on the Raspberry Pi. For convenience reasons, we built a custom Pi hat with USB sockets. This makes it easier to assemble and disassemble the setup.
We used EasyEDA to design the printed circuit board (PCB). We made the project public. Check it out at RPI 4Button LED HUB from derebbe @ EasyEDA.
The EasyEDA project shows you which resistor, transistor or pin has to be placed. Furthermore, you can order the pre-designed PCB at EasyEDA. Pre-designed, in this case, means: You get the circuit board and need to place the components on it. All wholes are pre-defined, and all components are connected already.
If you want to create the circuit board on your own, you can find all Gerber files in our Raspberry Pi Hat Gerber folder. You can also do a fresh export from our project on EasyEDA.
If this is done, place the hat on the GPIOs on top of the Raspberry Pi. By this, you are good to go!
Placing the hat on the pi, you connect the buzzers with the GPIO. To react with your software on buzzer pushed, you need to know which pins your software need to listen on. The GPIO pin out assignment looks like the following:
USB Port | GPIO Pin (BCM) | GPIO Pin (Physical) | Purpose |
---|---|---|---|
Port #1 | 21 | 40 | Button |
Port #1 | 26 | 37 | LED |
Port #2 | 20 | 38 | Button |
Port #2 | 19 | 35 | LED |
Port #3 | 16 | 36 | Button |
Port #3 | 13 | 33 | LED |
Port #4 | 12 | 32 | Button |
Port #4 | 6 | 31 | LED |
The pin-out mapping from the go-rpio documentation is super helpful.
Third and last step lets set up the Pi! On the Raspberry Pi (following Pi) itself, we install a standard Raspbian Lite operating system without any desktop functionality.
To access the Pi from an external client (e.g., laptop or mobile phone) you should connect it to a network.
Either to an existing one via a typical RJ45 LAN cable or a wireless network (can be done via raspi-config
).
If you want to run it completely independent and maybe offline, we recommend to configure the Pi as a wireless access point.
Add the Pi hat onto the GPIO and move on to your first software tests.
A Pi with a hat consumes more space. Especially with a custom hat, it is hard to find a case that fits. That's why we printed our own.
Printing instructions / Step files can be found in the 3d-models folder for the raspberry pi case. Feel free to choose the color of your printing material for the right look. Go ahead and print!
Set everything up. Connect the buzzers with the Raspberry Pi and start the machine. It is time to test our new hardware with software β€οΈ.
Have a look at our test scripts and test applications. Choose the one you like the most (or by roll a dice):
If everything works out, it is okay to freak out and run naked through your flat. You deserved it. You have built the foundation for more. Don't stop. Find out what you can do with buzzers.
We have set up a quick demo setup. Have a quick look at this video: things with buzzers: hardware showcase @ YouTube.
If you are a maker or an engineer or just someone who wants to create and ship awesome things: Go ahead and make this better. Feel free to fork it and play your changes back via a Pull Request.
If you ...
- are unsure
- plan to do a more significant rework
- want to get feedback about the idea before you put the effort in
Open an issue and let us talk about your idea.
You have built your own buzzers and did awesome things with it? Write an article in your blog, or tell us the story in an issue or make a Pull Request with a Markdown file. But tell us. Let us know. Inspire us!
We believe that we can do more together. Let's to it together! π
A big thank you to Lars HeΓ / @lhess and Matthias Endler / @mre. Without them, this project would not happen.
Lars has designed and built the complete hardware. Matthias helped a lot with the software and motivation part π