Fun PuffinFun Puffin
← All projects

Lotto Machine

View on GitHub →

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.

How it works

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.

Hardware

Boards2× ESP32 dev boards — one per unit
Lights2× WS2812/NeoPixel LED strips, 50 LEDs each
InputA push button with a built-in indicator LED, on the button station only
SoundA serial MP3 player module (DFPlayer-style) and speaker, on the button station only

Firmware

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.