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 buzzers and a custom printed circuit board.

The final result - four buzzers 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 also.

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 it works

Architecture diagram of 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:

  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 web server 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, on the 15th of January 2019, we met at Lars’ home to get things going. Here are a few insights:

things with buzzers: The workplace to solder everything together.

The workplace to solder everything together.

things with buzzers: Creating the custom printed circuit board.

Hacky thing: Creating the custom printed circuit board.

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

Lars needs to fix Andy’s hardware bugs.

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

Coding session to figure out how different GPIO libraries work to catch buzzer signals.

The buzzer hardware <-> 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. 😀