tl;dr: We built custom game show buzzers, wrote a WebSocket server, and connected them to various applications. Finally, we documented and open-sourced everything. Check out the things with buzzers series hardware, websocket and a frontend like Jeopardy!. Start today, and build your own!
If you like this article, you might want to read things with buzzers: playing Jeopardy! and things with buzzers: a sports competition as well.
Why we did it
Every year, between Christmas and New Year's Eve, the Chaos Computer Club is running their conference called Chaos Communication Congress. An inspiring event with a lot of exciting and insightful content. For many attendees, one session is their yearly highlight: Hacker Jeopardy. A self-built version of the popular game show Jeopardy! with a modified set of answers/questions to target the hacker audience.
Inspired by this, I had two motivational goals:
- to build the same and to have fun with friends and colleagues
- to combine software (a field I know) with hardware (an area I don't know) and create something real
The idea slept for a long time. On the 1st of December 2017, I remembered it and ordered four big red buzzers. Nothing happened again for some time until my employer (trivago) announced an internal tech conference planned for March 2019.
This was the chance! I motivated my two friends Lars and Matthias, and we gave it a shot!
How it works
We split the project into three parts: (1) frontends, (2) websocket, and the (3) hardware.
The (3) hardware part contains the actual buzzers, the cables, and a custom printed circuit board (PCB). The buzzers connect via USB sockets to a Raspberry Pi (Pi). A PCB was built and placed onto the GPIO of the Pi (a so-called hat).
The (2) websocket part is a software installed on the Pi. It does two things:
- Listen to the GPIO for signals and transforms them into "a buzzer was pushed" activity.
- Host a webserver to serve static files and a WebSocket server to push out the buzzer-push signals to clients.
The (1) frontends (e.g., Jeopardy! or a sports competition scoreboard) can be either static single-page apps served by the webserver or applications written in a language of your choice installed on the Pi. The Pi itself either opens its wireless network or will be configured to join an existing one. A laptop connects to the webserver and provides the game to the audience via a projector.
Build your own
I documented everything and open-sourced it!
These repositories contain a lot of detailed information with picture guides to replicate this project and have fun with people:
- the buzzer and Pi hat hardware (things with buzzers: hardware)
- the WebSocket server software (things with buzzers: WebSocket)
- the Jeopardy! frontend (things with buzzers: Jeopardy!)
- a sports competition scoreboard (things with buzzers: sports competition)
Building them
With a little bit of preparation, we met at Lars' home on the 15th of January 2019 to get things going. Here are a few insights:
The buzzer hardware with software test.
Credits
A big thank you to Lars and Matthias. 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. 😀