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!

things with buzzers: The final result - four game show buzzers, a raspberry pi, and a custom printed circuit board.

things with buzzers: The final result - four game show buzzers, a raspberry pi, and a custom printed circuit board.

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:

  1. to build the same and to have fun with friends and colleagues
  2. 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

things with buzzers: Architecture diagram of how the single parts play together.

things with buzzers: Architecture diagram of how the single parts play together.

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:

  1. Listen to the GPIO for signals and transforms them into “a buzzer was pushed” activity.
  2. 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:

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:

things with buzzers: The workplace to solder everything together.

things with buzzers: The workplace to solder everything together.


things with buzzers: Creating the custom printed circuit board.

things with buzzers: Creating the custom printed circuit board.


things with buzzers: Lars Heß needs to fix Andy Grunwald's hardware bugs.

things with buzzers: Lars Heß needs to fix Andy Grunwald’s hardware bugs.


things with buzzers: Coding session to figure out how different GPIO libraries work to catch buzzer signals.

things with buzzers: Coding session to figure out how different GPIO libraries work to catch buzzer signals.


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. 😀