Serial communication between 10 Arduinos

HI -

I'm planning to use serial communication - between 10 Arduino NANO's - upcourse - my application need is met - by just one channel communication - and the communication happens only when there is an event with any of the arduinos, speed is not critical and it's just one binary data.

Appreciate, advises if this configuration works.

You need to explain what you are trying to achieve more clearly.

A diagram and an overall description of the project would be a great help.

Do you want to be able to use Serial.print() or Serial.write() to send data?
Give an example of the data that you want to send.
Is the data just going from one Arduino to all the others or is there a need for 2-way communication?


Single master? Multi-master? Addressed or broadcast? On one board, or over cables?

From your description it sounds like any Arduino can initiate communication. This is not an easy situation to deal with at those numbers. You need to deal with arbitration, collision detection, collision avoidance, and a host of other issues.

Something like CAN is probably your best bet.

Enclosing a ppt - will have one master and 9 slaves addressed, want to use serial write, data in one direction from slaves to master, data is integer, just 1 byte (sending binary 1 or 0), communication over cable, collision is tolerated(loss of data)

enclosing png file

Images from Reply #4 so we don’t have to download them. See this Image Guide




If the data flow is from the slaves to the master then that wiring arrangement won’t work. Each slave’s TX needs to be protected from all the other TXs and the master’s RX by a diode (one for each slave) that allows the slave to pull DOWN the master RX but prevents the slave from pulling the master RX up. Then the master RX needs a pullup resistor (4700 ohms should be OK). Like this.


In addition to that you need some means to ensure that only one slave talks at any one time. To my mind the simplest way to achieve that is for the master to send a message asking each slave in turn to send data.

You can include a character in the messages to identify the slave the master is talking to or the slave that is sending data.