Wireless Jeopardy Buzzer - Clock syncing and which wireless setup?

I have been wanting to do some simple wireless buzzers for some time now. I have participated in multiple trivia/jeopardy games with friends/coworkers with crummy apps or inconsistent hand raising. It's motivated me to put together a simple system.

From what I have researched, this is not trivial due to potential transmission interference. You can reference some of the resources I have included below

My current approach would either involve using the NRF2401+ or an Arduino Nano 33. I like the Nano 33 as wifi is already built into it. I would like to assume that the range would suffice? From what I understand these could act more like a wifi server.

To avoid interference I would like to go with a synced clock approach. I originally thought that if each arduino could be paired with a ds3231-rtc it would be easy to sync the clocks when ever necessary and then just simply transmit a time stamp. However, basic libraries from what I understand only report down to 1 second. I would like to shoot for at least 1 ms. Of course there are internal timers on the Arduinos that can report micro seconds. Could one could potentially run faster than the other? I could setup some tests on my own to determine if that is the case. Again, the thought process would be to sync them at start maybe with a wired connection even. Or maybe a wireless sync would be reliable enough? Regardless, it would be ideal if they could stay usably accurate for at least an hour.

Thanks for any input in advanced!

Here is the research I have done on this subject all ready:
https://www.youtube.com/watch?v=b3iqji1DUG0
While his setup his finished product is fantastic, it is is very complex with the resending algorithms he has implemented. I would actually still be concerned that the resending could result in inaccurate results. Maybe its a non issue because the system is so fast.
Whandall Response - This sounds like a reasonable solution if I were to choose the NRF2401+. I would be willing to trust that this solution is accurate. It would take some time to become familiar with how the radios work.
Robin2 - Again another approach with time stamps, I wonder if there could be some inconsistencies in transmission times that could influence this approach.
timer - How to get millisecond resolution from DS3231 RTC - Stack Overflowgetting mili out of ds3231-rtc - Maybe milli seconds would be good enough for 99% of the time

The way I see it is that each player's button can set a Flip Flop. Each FF when set, has diodes to keep the others in reset. So now you have a clear winner with no synch required. When ready, the moderator presses a master reset to clear all FFs.

2 Likes

I think you're overcomplicating it. When a button is pressed, have the arduino send a UDP message. First message to arrive is the winner.

2 Likes

Hello Chazz7555

Set up a simple system consisting of a main station and several player stations.
These stations communicate via HC-12 radio modules. Each player station has a button and a RGB LED. The main station has a RGB LED for each player station.
Now you have to think a little about the communication protocol and how collisions are handled.
When the main station has received a valid message from the player station, the main station switches off the receiver and confirms receipt to the player. All these states are indicated by the RGB LEDs.
After a timeout or a manual start, the main station switches the receiver on again.

Hth and have a nice day and enjoy coding in C++.

I appreciate the feed back. I was concerned about keeping the clocks synced and your response kinda clues me into how unrealistic this approach likely is then.

No, I think collisions are a valid concern. I may still give first past the post a try. Maybe the threshold for interference is really tiny and its actually a non-issue, but many have cited collisions as an issue and that's why I want to have an alternative scheme in mind at least.

Would this be a wired approach? I'm struggling to understand how this would resolve the transmission interference.

It could be wired or wireless links could be used. It just solves the clocking problem and need to sync anything.

If you use ESP32-microcontrollers which have WiFi on board (price starting at 3 dollars)
sending messages using the ESP-NOW-protocol,
the timing-problem will be solved on the receiver-side.

Each received message includes the MAC-Adress of the sender.
With the MAC-adress you can determine which sender the message comes from.

Receiving is done by a call-back-function
You assign time-stamps on the central receiving unit
and you are done

If you're using Wi-Fi then you don't need to synchronize clocks. At startup, have each system set its time from a network time server, e.g., time.nist.gov and they can report the time that they saw the button pressed when the send the message.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.