A hybrid digital-and-human game, built for a trade show booth. A visitor pressed a button, and three presenters staffing the booth each shook a small box and pulled something out of it. Pull the same thing as the other two, and the visitor won a prize. This project is the machine that ran that moment: press the button, and the sound and lights across two connected units gave the presenters their cue to shake and reveal together.
The technology wasn't really the point: it was the icebreaker. A visitor tapping the button pulled three presenters into a shared, slightly theatrical moment on the spot: a small, obvious, fun reason for someone walking by to stop, and for the people staffing the booth to engage with them directly. That mix of a visitor's tap and the presenters' live reaction is what turned booth traffic into actual conversations.
Under the hood it's a pair of ESP32 boards talking to each other wirelessly, so the light show could run both at the button station and at a second spot a few feet away, with no wires between them.
The button station is the visitor-facing kiosk:
The second light unit sat elsewhere at the booth, with no wired connection to the button station at all:
The two units only need to share a Wi-Fi channel; there's no dependency on message content beyond “a round just started,” which keeps both sides of the firmware simple. Judging the actual win (did all three presenters pull the same thing?) happened live, in front of the visitor, not something the machine tracked.
| Boards | 2× ESP32 dev boards, one per unit |
| Lights | 2× WS2812/NeoPixel LED strips, 50 LEDs each |
| Input | A push button with a built-in indicator LED, on the button station only |
| Sound | A serial MP3 player module (DFPlayer-style) and speaker, on the button station only |
Two Arduino sketches, one per role: the button station and the remote light unit each run their own, and only need to agree on a Wi-Fi channel to find each other.
Built with the ESP32 Arduino core's ESP-NOW wrapper and the Adafruit NeoPixel library.