WISEGUYS · game-show buzzer controller
Buzz
Net 10
Rev 0.3
Ten button inputs, sampled every microsecond, ranked on the board
and delivered over Ethernet to your show software. Wire a plain push
button between + and IN — the board powers
it, timestamps it and tells every connected show PC who was first.
No USB, no driver, no guesswork about who pressed first.
- Outline
- 100 × 100mm
- Button inputs
- 10+ LED each
- Sampling
- 1µs, all 10 at once
- Supply
- 11.5–30V DC
- Network
- 10/100Ethernet
- Idle power
- 0.29W, measured
Who was first — to the microsecond
/ overviewIn a buzzer round the only question that matters is who pressed first, and the answer must never depend on a busy network, a slow PC or a USB hub. BuzzNet 10 settles it on the board itself, then reports the result — with the timestamps — to every show PC that is listening.
Timed in hardware
A timer and DMA copy all ten inputs into memory one million times a second, in the same clock cycle. Every press gets a microsecond timestamp the moment it happens; the network only delivers the result, so its latency can never change a ranking.
Plug in a button
Each input is a pair of pluggable 5.08 mm screw terminals:
+ and IN. By default the board powers the
buttons itself, so a plain push button and two wires are all you need.
An LED per input shows every press during set-up.
Ethernet, not USB
A WIZnet W5500 with hardwired TCP/IP behind an RJ45 jack. DHCP with a fixed fallback address, found automatically by the PC tools, and up to four show PCs connected at once — a main and a backup controller can both follow the same round.
Every connector at the edge
/ field interfaceTen inputs
Five 4-pole plugs, two buttons each. Every channel runs through a TI ISO1212 current-limited input (≈ 2.25 mA), a 33 V TVS and an indicator LED. The inputs accept 0 to +30 V and are designed to switch at about 9–10 V, so 12 V and 24 V buttons both work.
DC input
A regulated 12–24 V adapter with its own current limit (≤ 3 A). Reverse-polarity Schottky, a 0.5 A resettable fuse, a 33 V transient clamp and a TI LMR51610 buck to 3.3 V. Measured on the first board: the 3.3 V rail reads 3.309 V from 11.5 to 30 V.
Isolated mode
Optional. Pull the two jumpers JP1/JP2 and feed the buttons from a separate 11–30 V supply here: the button side is then separated from the logic and network side by the ISO1212 barrier. For long cables, noisy sites and ground loops.
RJ45, 10/100
HanRun HR911105A magjack with the magnetics and link/activity LEDs built in, the W5500 placed right behind it. The board finds its address by DHCP within two seconds of power-up.
Expansion header
Keyed 16-way box header with ten 3.3 V logic outputs and power, for the planned OUT10 lamp-driver board on a ribbon cable: one lamp per player, switched by the same controller that ranks the presses.
Service headers
For the workshop, not the show. A debug log and the microcontroller's own serial bootloader on J10, SWD debugging on J9, and a factory reset by bridging two pins of J10 at power-up. Firmware updates themselves go over the network.
Arm. Press. Ranked.
/ a round of playThe show PC arms the board; from that moment every first press is timed from the arm and ranked. Contact bounce never counts twice, and settings cannot change while a round is running.
- RANK — every player gets a place: 1st, 2nd, 3rd… with the time since the arm
- FIRST — the first press wins and the round closes itself; a true tie is reported as a tie
- ALL — every press and release is reported, for games without a ranking
- Lockout — after a press a button is ignored for 50 ms (adjustable), so a bouncing contact is one press
- Exclude — take a player out of the round from the PC, without touching a cable
- Glitch filter — spikes shorter than the filter time (1–1000 µs, default 20) on a long cable are not presses
- First touch — a bouncing contact is timed at its very first touch, even with a long filter, so a slow button never loses its place
t is
microseconds since the arm. Each touch bounced dozens of times —
every input still produced exactly one PRESS.
One line of text per event. The protocol is plain ASCII over TCP, so any show system that can open a socket can read it — and WISEGUYS ships ready-made .NET components for the ones that cannot.
On the show network
/ tcp 5000 · udp 5001 · http 80Show control
TCP 5000The show software connects and talks in short text lines:
ARM, DISARM, MODE, STATUS.
Presses arrive the moment the board has them, on every connection.
- Clients
- up to 4 at once, a 5th is refused
- Events
- sent to every connected client
- Reply
- 0.35 ms average, measured
- Keep-alive
- every 10 s, so a vanished PC frees its slot
Set-up
UDP 5001A broadcast DISCOVER finds every board on the network,
even one in the wrong subnet. Name, DHCP or static address and a full
factory reset can be set from the PC without knowing the board's IP.
- Address
- DHCP; fallback 192.168.1.200 after 5 s
- Identity
- unique MAC per board, from the chip's ID
- Name
- BuzzNet-XXXX, or your own, e.g. Stage-A
- Status LED
- steady, blink or double blink at a glance
Firmware update
HTTP 80Put the board in update mode, open its address in a browser, choose the update file, upload — done in a couple of seconds, no cable and no tool to install. Two firmware slots: the new version runs on trial and has to prove itself first.
- Upload
- ≈ 1.5 s for a full update, measured
- Safety
- 3 failed starts → automatic return to the previous version
- Files
- only genuine BuzzNet updates, checked before anything is erased
- In a show
- refused while a round is armed
From the button to the show PC
ISO1212
Current-limited, filtered input stage; the button cable stays on its side of the barrier.
~110 ns propagationTimer + DMA
All ten inputs read in one register access, one million times a second, no CPU involved.
1 µs resolutionSTM32G431
Edges found, timestamped from the arm, ranked and locked out — on a 170 MHz Cortex-M4.
64-bit board clockW5500
One line per event to every connected show PC, over hardwired TCP/IP.
latency never changes a rankMeasured on the first board
/ board A · 2026-10-15/16These numbers come from the first assembled board, measured on the bench with a lab supply, a multimeter and the PC tools.
from 11.5 to 30 V in
−30 V for 10 s
number, LED and event
4 clients · 0 errors
99 % under 0.74 ms
DHCP address
same at 12, 24, 30 V
10 inputs, one button
Not just buzzers
/ any open or closed contactTo the board every input is simply open or closed. That makes BuzzNet 10 just as useful as a ten-channel contact interface: door and drawer contacts, reed switches, pressure mats, key switches, limit switches or a 24 V signal from a PLC. Every change is reported the moment it happens, over wired Ethernet — no Wi-Fi dropouts, no batteries.
Puzzles and props
Hidden switches, drawers, key switches and magnetic contacts, all on one box per room. Long cables are fine, and isolated mode keeps the prop wiring apart from the network side.
Home automation
Doors, windows, gates and alarm contacts as ten sensors in Home Assistant, updated instantly — with invert for normally-closed contacts.
Interactive installations
Buttons, pedals and contacts in museums, trade-show stands and visitor attractions, read by the software that runs the display.
12–24 V signals
Machine and PLC outputs read directly: the inputs accept 0 to 30 V and switch at about 9–10 V, each with its own LED.
Home Assistant
integrationAdd the board in Home Assistant and its ten inputs appear as binary sensors. Boards on the network are found automatically.
- Updates
- pushed by the board, no polling
- Per input
- name, type (door, window, motion…), invert
- Status
- sensors show unavailable while the board is offline
MQTT
bridgeEvery input as an MQTT topic, for escape-room game-master software, Node-RED or any MQTT system. Serves every board it finds on the network.
- Topics
- buzznet/<board>/input/1…10 → ON / OFF
- Runs as
- Home Assistant add-on, Docker container or Python
- State
- retained, plus an online flag per board
Node-RED & your own code
open protocolReady-made Node-RED flows — straight to the board, or through MQTT with an example puzzle. Or write your own: the protocol is plain text over TCP, documented with Python and C# examples.
- Flows
- direct TCP and MQTT, import and deploy
- Protocol
- TCP 5000, one text line per change
- Boards
- up to 4 connections each
One board, one job. For sensor use the integrations switch the board to report every change; use a board either in a buzzer show or as a contact interface, not both at the same time.
Ten buttons.
One winner.
BuzzNet 10 is designed and built by WISEGUYS for our own game shows and for the productions we work with. Ask us about boards, the enclosure, button cabling, the show-software components and the Home Assistant, MQTT and Node-RED integrations.