{"id":16569989,"url":"https://github.com/andygrunwald/things-with-buzzers-hardware","last_synced_at":"2025-10-19T05:28:05.036Z","repository":{"id":45856889,"uuid":"187480819","full_name":"andygrunwald/things-with-buzzers-hardware","owner":"andygrunwald","description":"Everything you need to build hardware game show buzzers (and to do awesome things with it!) 🚀","archived":false,"fork":false,"pushed_at":"2023-12-17T18:46:30.000Z","size":17328,"stargazers_count":15,"open_issues_count":3,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-01T20:51:12.071Z","etag":null,"topics":["hacktoberfest","hardware","things-with-buzzers"],"latest_commit_sha":null,"homepage":"https://andygrunwald.com/blog/things-with-buzzers-building-your-own-game-show-buzzers/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andygrunwald.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":["andygrunwald","lhess","mre"]}},"created_at":"2019-05-19T13:33:09.000Z","updated_at":"2024-12-08T16:22:58.000Z","dependencies_parsed_at":"2022-09-15T18:50:20.420Z","dependency_job_id":null,"html_url":"https://github.com/andygrunwald/things-with-buzzers-hardware","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andygrunwald%2Fthings-with-buzzers-hardware","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andygrunwald%2Fthings-with-buzzers-hardware/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andygrunwald%2Fthings-with-buzzers-hardware/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andygrunwald%2Fthings-with-buzzers-hardware/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andygrunwald","download_url":"https://codeload.github.com/andygrunwald/things-with-buzzers-hardware/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238751731,"owners_count":19524627,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","hardware","things-with-buzzers"],"created_at":"2024-10-11T21:16:17.932Z","updated_at":"2025-10-19T05:28:04.966Z","avatar_url":"https://github.com/andygrunwald.png","language":"Python","funding_links":["https://github.com/sponsors/andygrunwald","https://github.com/sponsors/lhess","https://github.com/sponsors/mre"],"categories":[],"sub_categories":[],"readme":"# things with buzzers: hardware\n\nBuild your own hardware game show buzzers and do [awesome things](#things-you-can-do-with-buzzers) with it! 🚀\n\nThis repository contains everything you need to build hardware buzzers and connecting them with your software.\nStart today having fun, and make people happy by providing them an unforgettable time.\n\n\u003e For even more context, we recommend reading [things with buzzers: building them](https://andygrunwald.com/blog/things-with-buzzers-building-them/).\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/buzzers-raspberrypi.jpg\" title=\"The finished product: Four buzzers, a Raspberry Pi incl. hat\" alt=\"The finished product: Four buzzers, a Raspberry Pi incl. hat\"\u003e\n\u003c/p\u003e\n\n## Table of Contents\n\n- [How we build and run them](#how-we-build-and-run-them)\n- [What we need / Bill of materials (BOM)](#what-we-need--bill-of-materials-bom)\n- [Buzzers](#buzzers)\n- [Raspberry Pi Hat](#raspberry-pi-hat)\n  - [GPIO pin out](#gpio-pin-out)\n- [Raspberry Pi](#raspberry-pi)\n- [Custom Raspberry Pi case](#custom-raspberry-pi-case)\n- [How we can test the buzzers (with software)](#how-we-can-test-the-buzzers-with-software)\n- [The result](#the-result)\n- [Things you can do with buzzers](#things-you-can-do-with-buzzers)\n- [Alternative hardware buzzer projects](#alternative-hardware-buzzer-projects)\n- [Contribute](#contribute)\n- [Acknowledgments](#acknowledgments)\n\n## How we build and run them\n\nWe built four game show buzzers in four different colors (red, green, blue, yellow).\nThe buzzer cases are self-printed with a 3D-Printer.\nEach buzzer case has a female USB connector embedded.\n\nThe central control unit is a Raspberry Pi 3 Model B+ (following _Pi_) with a custom build hat module (circuit board).\nThe hat module offers four female USB connectors and maps them onto the GPIO of the Pi.\n\nEach buzzer connects via a USB cable to the Pi hat.\nOn the Pi, we can place software and read the buzzer signals (e.g., buzzer pressed) and react on this.\n\nIf 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.\nAs a small software example: Show in the UI which button is pressed.\n\nIt is how it looks like:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/buzzer-setup-hardware.png\" title=\"The complete setup: Buzzer -\u003e USB -\u003e Raspberry Pi -\u003e Computer\" alt=\"The complete setup: Buzzer -\u003e USB -\u003e Raspberry Pi -\u003e Computer\"\u003e\n\u003c/p\u003e\n\n_You are missing the context, what this is all about?_\nHave a look at\n\n* [(1) things with buzzers: Jeopardy! frontend](https://github.com/andygrunwald/things-with-buzzers-jeopardy)\n* [(1) things with buzzers: sports competition frontend](https://github.com/andygrunwald/things-with-buzzers-sports-competition)\n* [(2) things with buzzers: websocket](https://github.com/andygrunwald/things-with-buzzers-websocket)\n\n## What we need / Bill of materials (BOM)\n\nTo replicate this project and build your buzzers, you need a couple of things.\nWe have created a complete list of what you need, a so-called _Bill of material (BOM)_.\n\nCheck it out: [Bill of materials (BOM)](./bill-of-materials.md).\n\n## Buzzers\n\nFirst, we start with the buzzer case and print it with a 3D printer.\nPrinting instructions / Step files can be found in the [3d-models folder for the buzzer cases](./3d-models/buzzer/).\nFeel free to choose the color of your printing material for the right look.\nGo ahead and print!\n\nIf you are new to 3D printing, step files are printing instructions.\nYou can few and edit them with software like [Fusion 360 from Autodesk](https://www.autodesk.com/products/fusion-360/free-trial) (they offer [a free version for startups and hobbyists](https://www.autodesk.com/campaigns/fusion-360-for-hobbyists)).\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"400\" src=\"images/3d-buzzer-housing.png\" title=\"3D model of the buzzer case\" alt=\"3D model of the buzzer case\"\u003e\n  \u003cimg width=\"400\" src=\"images/3d-buzzer-lid.png\" title=\"3D model of the buzzer lid\" alt=\"3D model of the buzzer lid\"\u003e\n\u003c/p\u003e\n\nNext step would be to build the small circuit board that connects the buzzer with the USB socket:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg height=\"600\" src=\"./images/buzzer-building/12-buzzer-wiring-complete.jpg\" title=\"Buzzer wired internally\" alt=\"Buzzer wired internally\"\u003e\n\u003c/p\u003e\n\nCheck out the **step-by-step image guide on how to build this** in our [buzzer building folder](./images/buzzer-building/README.md).\n\nCongratulations, you build your first game show buzzer. How awesome is this?\n\n## Raspberry Pi Hat\n\nSecond, we build our custom Pi hat.\nThe buzzers are connected to the GPIO on the Raspberry Pi.\nFor convenience reasons, we built a custom Pi hat with USB sockets.\nThis makes it easier to assemble and disassemble the setup.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"400\" src=\"images/raspberry-pi-hat-front.jpg\" title=\"Raspberry Pi hat front view\" alt=\"Raspberry Pi hat front view\"\u003e\n  \u003cimg width=\"400\" src=\"images/raspberry-pi-hat-back.jpg\" title=\"Raspberry Pi hat back view\" alt=\"Raspberry Pi hat back view\"\u003e\n\u003c/p\u003e\n\nWe used [EasyEDA](https://easyeda.com/) to design the printed circuit board (PCB).\n**We made the project public. Check it out at [RPI 4Button LED HUB from derebbe @ EasyEDA](https://easyeda.com/derebbe/RPI-4Button-LED-HUB)**.\n\nThe EasyEDA project shows you which resistor, transistor or pin has to be placed.\nFurthermore, you can [order the pre-designed PCB at EasyEDA](https://docs.easyeda.com/en/PCB/Order-PCB).\nPre-designed, in this case, means: You get the circuit board and need to place the components on it.\nAll wholes are pre-defined, and all components are connected already.\n\nIf you want to create the circuit board on your own, you can find all Gerber files in our [Raspberry Pi Hat Gerber folder](./raspberry-pi-hat-gerber/).\nYou can also do a fresh export from [our project on EasyEDA](https://easyeda.com/derebbe/RPI-4Button-LED-HUB).\n\nIf this is done, place the hat on the GPIOs on top of the Raspberry Pi.\nBy this, you are good to go!\n\n### GPIO pin out\n\nPlacing the hat on the pi, you connect the buzzers with the GPIO.\nTo react with your software on buzzer pushed, you need to know which pins your software need to listen on.\nThe [GPIO pin out assignment](https://www.raspberrypi.org/documentation/usage/gpio/) looks like the following:\n\n| USB Port  | GPIO Pin (BCM) | GPIO Pin (Physical) | Purpose |\n| --------- | -------------- | ------------------- | ------- |\n| Port #1   | 21             | 40                  | Button  |\n| Port #1   | 26             | 37                  | LED     |\n| Port #2   | 20             | 38                  | Button  |\n| Port #2   | 19             | 35                  | LED     |\n| Port #3   | 16             | 36                  | Button  |\n| Port #3   | 13             | 33                  | LED     |\n| Port #4   | 12             | 32                  | Button  |\n| Port #4   | 6              | 31                  | LED     |\n\nThe [pin-out mapping from the go-rpio documentation](https://godoc.org/github.com/stianeikeland/go-rpio) is super helpful.\n\n## Raspberry Pi\n\nThird and last step lets set up the Pi!\nOn the Raspberry Pi (following _Pi_) itself, we install a [standard Raspbian Lite operating system](https://www.raspberrypi.org/downloads/raspbian/) without any desktop functionality.\n\nTo access the Pi from an external client (e.g., laptop or mobile phone) you should connect it to a network.\nEither to an existing one via a typical RJ45 LAN cable or a wireless network (can be done via [`raspi-config`](https://www.raspberrypi.org/documentation/configuration/raspi-config.md)).\nIf you want to run it completely independent and maybe offline, we recommend to [configure the Pi as a wireless access point](https://www.raspberrypi.org/documentation/configuration/wireless/access-point.md).\n\nAdd the Pi hat onto the GPIO and move on to your first software tests.\n\n## Custom Raspberry Pi case\n\nA Pi with a hat consumes more space.\nEspecially with a custom hat, it is hard to find a case that fits.\nThat's why we printed our own.\n\nPrinting instructions / Step files can be found in the 3d-models folder for the raspberry pi case.\nFeel free to choose the color of your printing material for the right look.\nGo ahead and print!\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"400\" src=\"images/3d-raspberry-pi-case.png\" title=\"3D model of the custom Raspberry Pi case\" alt=\"3D model of the custom Raspberry Pi case\"\u003e\n  \u003cimg width=\"400\" src=\"images/3d-raspberry-pi-case-lid.png\" title=\"3D model of the custom Raspberry Pi case lid\" alt=\"3D model of the custom Raspberry Pi case lid\"\u003e\n\u003c/p\u003e\n\n## How we can test the buzzers (with software)\n\nSet everything up.\nConnect the buzzers with the Raspberry Pi and start the machine.\nIt is time to test our new hardware with software ❤️.\n\nHave a look at our test scripts and test applications.\nChoose the one you like the most (or by roll a dice):\n\n* [test script written in Python 🐍](./software/python/)\n* [test application written in Go](./software/go/)\n\nIf everything works out, it is okay to freak out and run naked through your flat.\nYou deserved it. You have built the foundation for more.\nDon't stop. Find out [what you can do with buzzers](#things-you-can-do-with-buzzers).\n\n## The result\n\nWe have set up a quick demo setup.\nHave a quick look at this video: [things with buzzers: hardware showcase @ YouTube](https://youtu.be/pAQNX0Fhxk4).\n\n## Things you can do with buzzers\n\n* [Running a Jeopardy! game show](https://andygrunwald.com/blog/things-with-buzzers-playing-jeopardy/)\n* [Stopping athletes time during a sports event](https://andygrunwald.com/blog/things-with-buzzers-a-sports-competition/)\n\n## Alternative hardware buzzer projects\n\n* [Slim one handed buzzers by Ross and Garrett](https://github.com/gdsimco/JParty-with-buzzers/blob/8b5948cd840acf981036fda1b671626e5d60780b/physicalbuzzers/README.md)\n\n## Contribute\n\nIf you are a maker or an engineer or just someone who wants to create and ship awesome things: *Go ahead and make this better*.\nFeel free to fork it and play your changes back via a [Pull Request](https://help.github.com/en/articles/about-pull-requests).\n\nIf you ...\n* are unsure\n* plan to do a more significant rework\n* want to get feedback about the idea before you put the effort in\n\n[Open an issue](https://github.com/andygrunwald/things-with-buzzers-hardware/issues/new) and let us talk about your idea.\n\nYou have built your own buzzers and did awesome things with it?\nWrite an article in your blog, or tell us the story in an issue or make a Pull Request with a Markdown file.\nBut tell us. Let us know. Inspire us!\n\nWe believe that we can do more together. Let's to it together! 🚀\n\n## Acknowledgments\n\nA big thank you to [Lars Heß / @lhess](https://github.com/lhess) and [Matthias Endler / @mre](https://github.com/mre).\nWithout them, this project would not happen.\n\nLars has designed and built the complete hardware.\nMatthias helped a lot with the software and motivation part 😀\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandygrunwald%2Fthings-with-buzzers-hardware","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandygrunwald%2Fthings-with-buzzers-hardware","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandygrunwald%2Fthings-with-buzzers-hardware/lists"}