Wireless gameshow button, what components to use?

Hi,

About two years ago I created a gameshow button box/buzzer with LED lights that would turn on when one of the four buttons are pressed and that would block out the other players.

Basically Jeopardy.

All the buttons are connected to the box via ca 4 meter cables and this spiderweb of cables does not look good.
Back then it seemed too ambitious to go wireless but perhaps there are some nice electronics now available.

There are 433MHz modules.
SparkFun RFM69 434 MHz SparkFun RFM69 Breakout (434MHz) - WRL-12823 - SparkFun Electronics

I guess I would need:

  • Arduino board as a master + the Transceiver
  • Arduino Nano as game button 1 + the tranceiver
  • Arduino Nano as game button 2 + the tranceiver
  • Arduino Nano as game button 3 + the tranceiver
  • Arduino Nano as game button 4 + the tranceiver

And all of the standalone buttons would require power, ON/OFF switches and perhaps some indicator LED-s.
Its a big step in requirements to get rid of four cables.

Perhaps some cheap Garage door keyfobs can be used to register the button presses.
I could buy 4 of these and use just a single button on each of them. But they seem to be encrypted and add additional complexity for my very simple requirement.

All I want is to identify within a few meters of range if a button has been pressed. And it needs to be very low latency - people swear they pressed the button first during quiz shows.

EDIT: I want basically exactly that: https://youtu.be/-mk-rfa4g_w?t=154

Instead of sending the button press to the master send a timestamp from the Nano. On each Nano, when a button is pressed, record and send the value of micros() (or millis()) and let the master find the lowest number between the returned timestamps. That way latency from the button press to the reception by the master is no longer a factor.

taavik:
All I want is to identify within a few meters of range if a button has been pressed. And it needs to be very low latency - people swear they pressed the button first during quiz shows.

You need a transmitter and receiver pair for each button and each pair needs to be on a frequency so that the pairs do not interfere with each other. .

If two or three people press buttons a few mS apart, and there is only a single receiver, the packets collide, and the last person who presses a button a couple of seconds later gets through.

I would record the micros of the reception of the multi/broadcast "buttons may be pressed" message.
Then record the micros of the button press like @groundFungus explained.
The difference is the reaction time.

I have no experience with the RFM69, so I would use NRF24L01+s.

This Simple nRF24L01+ Tutorial may be of interest.

However from a hardware point of view an ESP8266 might be simpler as it combines a microprocessor and wireless in one. And they can be built as a very small package

ESP8266showingHeaderPins.png

And using the ESP-NOW feature will probably be simpler than using WiFi.

Note that none of this is intended to contradict earlier advice about using timing to avoid the problems of collisions.

…R

groundFungus:
Instead of sending the button press to the master send a timestamp from the Nano. On each Nano, when a button is pressed, record and send the value of micros() (or millis()) and let the master find the lowest number between the returned timestamps. That way latency from the button press to the reception by the master is no longer a factor.

Oh great! :astonished:

And just how are you going to synchronise millis() on all of the Nanos, eh? :roll_eyes:

Paul__B:
And just how are you going to synchronise millis() on all of the Nanos, eh? :roll_eyes:

I think Reply #3 provides a method, or perhaps it is a work-around.

...R

I have some experience with ESP8266 but avoided it because it would need to be set up using a specific router with a specific SSID and password.
Taking the set to a friends house would render it useless.

The ESP-NOW feature would solve all of that... the devices would communicate with each other directly...without a router. I must look deeper into this. Seems like a really good solution.

taavik:
I have some experience with ESP8266 but avoided it because it would need to be set up using a specific router with a specific SSID and password.
Taking the set to a friends house would render it useless.

Couldn't you set up an ESP8266 as a server and have the other ESP8266s as clients? Then there would be no need for a router and you could bring the whole thing with you.

I just mention this in case you are already very comfortable with web programming. I think I would use ESP-NOW myself.

...R