Advice for a beginner

Hi

I got an Arduino starter kit and I dabbled with the very simple (tutorial) projects, but I'd like to build something a bit more fun.

What I'd like to do is a bit if a buzzer system for family games at Christmas and parties.

It would consist of four individual boxes, with a giant Light up button on and a master console.

When somebody presses their 'buzzer', I want it to send a signal to the master console, which will (assuming they are the first) light up a button on the console and send a signal back to light up the button on their buzzer.

The master console would also be able to send a signal out to all buzzers to put the lights out.

I have gone through a few ideas here, but I think having a nano in each buzzer box feels like the best way to do this - that way each one will know its own 'identity' and it won't really matter too much which wire is plugged into which buzzer box.

I also quite like the idea that the boxes could be 'daisy-chained' rather than all plugged directly to the master box.

I think most of the programming is easy enough, but what's the best way to communicate between the boards, so they can all be listening for messages to them? Or am I going about this the wrong way?

I am really looking more for guidance on how best to approach it rather than instructions on how to do it. I would like to do some research and learning myself.

Thanks
Chris

Hi! Welcome to the Forum.

If the individual boxes will have only the button and its associated LED and will be hardwired to the console, you can have a Nano on the console and just the wires to send power and signal to the boxes.

A more advanced option is to build wireless boxes. Each one can have a small ESP-32 (like C3 mini) and use ESP-NOW to talk with another ESP at the console. The downside to this approach is that each box will need its own batteries.

If you search for Arduino Jeopardy you’ll find many examples

Thanks

The main reason I thought of putting a board in each is so the could be wired up to any slot -otherwise you would need to make sure the red one went into the red port etc.

Thanks
Chris

Thanks, I'll have a look at this!

AI Reports:
Arduino Jeopardy is not a formal official product—it is usually a quiz-style learning activity based on the Arduino ecosystem, inspired by the TV game show Jeopardy.


:check_mark: What it means in practice

“Arduino Jeopardy” typically refers to a classroom or workshop game where:

  • Questions are arranged in categories (like Jeopardy)
  • Each question has a point value (100, 200, 300…)
  • Students choose a category and difficulty level
  • They answer questions about Arduino concepts

That’s a stupid ask to AI. It’s all confused in believing it’s a product

Doing a Google search will lead to tutorials and videos on how to use the Arduino to build a jeopardy game.

Don’t outsource your brain to AI

Good lesson for me.

Not necessarily. The color of a box is just a visual representation. Inside the sketch, everything will be numbers in a matrix. If the first to hit the button is "slot 2", whatever color the box in slot 2 has will be the winner.

Anyway, as in many other cases, there are plenty of different solutions. You're the creative mind behind the project. So, it's up to you to decide the best hardware/software combination. :wink:

Sorry, what I have in mind was each buzzer would be a different colour, with a corresponding red, green, blue etc. button on the master console.

I want the boxes to be connected with removable cables, so (depending on the room) they could be connected to the master box, or connected in series (daisy-chained) with each other.

To make it a flexible system, I want to make it so that they can be connected pretty much in any order - two to the master, the other two connected in series etc.

So, I was thinking that each would have a little nano with a sketch on hard-coding it as buzzer 1, or red, whatever.

That way when it sends a message to the master console, it knows which one it has come from.

Does that make sense?

The bit I'm really trying to get my head around is the comms between boards.

So, for example you have four buzzers - one connected to the master console, the others connected in series.

How do I make sure that when buzzer B is pressed, it can send the signal 'through' buzzer A to the master console, without the risk of it getting mixed up with a signal that A is sending?

Thanks
Chris

Draw a picture. It conveys a lot of information, as well as shows missing information.

+1 to

comms between boxes and different rooms are at another level

In short I want it not to matter which cables are plugged into which boxes (as long as there's a connection to the master somehow).

So, in the example on the right, box 1 would send a signal to the master console when the button is pressed, be listening for signals addressed to it, and to relay an signals to or from box 3.

Ideally I was hoping to do this with a four-core cable (+V, TX, RX, Ground) and each box would have a in and out port.

I did think about a multi-core cable (so each box would access a common +V and ground but have a line direct to/from the button and LED), but I think I'd need a ten-pin connector for this.

If it really comes to it, I'll just have to go for dumb boxes, but it would be nice to have the flexibility.

Thanks
Chris

Maybe I misunderstood what you meant by room.

If the 4 boxes will be on the same room (within the same walls), I see no point in doing communications between them. Connect them all to the console.

If the 4 boxes will be in different rooms, the distance between the cables will be a problem, specially because you mentioned Tx/Rx, which implies serial communications between the boxes and a message with a unique ID for each one.

In my opinion you're choosing an overcomplicated path and if you're willing to reach this level of complexity, making the boxes wireless will be a much more fun challenge.

You're probably right about going wireless being the sensible option.

Which do you think is better - doing it over Bluetooth or Wifi?

I was quite inspired by this project, would a similar board be a good move?

Thanks
Chris

I have experienced success with Classic Bluetooth and ESP-NOW. But classic bluetooth doesn't come anymore in small footprint ESPs, just BLE and Wifi.

When I tried BLE I didn't like all that service IDs numbers, etc... and the same happened with Wifi and all that html push structures.

So, I would go with ESP-NOW. One ESP32 inside each box. One at the console, receiving the information. Each ESP board has its own MAC, so you can easily know from which board came the signal.

Thanks - I'll look into that.

I haven't completely thought it through but maybe this is an idea:

A hardwire connected system will simplify determining which button box was "first" since you don't have to worry about wireless signal competition, time stamping, etc.

  1. The button boxes have a 3 wire connection. Power, Power return, and an interrupt line.
  2. Connect them together in any parallel/series arrangement you like and connect the 3 wires to the master console.
  3. Put a tiny MCU in each button box, a push button switch, and a LED.

Depending on the distance between the master and the boxes, it may be better to battery power the button boxes and just have signal and ground connections.

The "interrupt" wire is a wire-OR connection that the button box switch connects to ground when pressed. It is connected to an interrupt pin on the master MCU. The button boxes are programmed to both sense the state of this line and pulse this line low when the switch is closed. The master senses this closure and immediately sets it to output and drives it high. The button boxes freeze their action so that no other box can respond. The master polls the button box network to determine which one generated the response.

Minimal button box example

Probably don't have to have the master freeze the button boxes since they can all detect if a button was pressed.

I liked your idea. I was disregarding the influence that the distance from the box to the console can have on the result. But I didn't follow your reasoning here:

How would that be done when you have only one "interrupt" wire connected to the console?

The master knows that one of the boxes triggered the interrupt, but it cannot identify which one. Can it?