1

I am planning to use an Arduino (Nano ideally, or Other) to send and receive information from several software serial ports to other arduinos, over their available pins, ideally 8 ports.

I could understand an Asynchrounous Communication having one master and 8 slaves, with the master enabling communication from one port, receiving the data from that port, and then move onto the next port, into a sampling loop.

The SoftwareSerial library allows to set up the pins individually, and set the listen() port (thanks Juraj).

I read the AltSoftSerial library handle some of the limitations of the SoftwareSerial library, but I just realized the pins cannot be configured (without... cloning the full library?).

Question is:

  • Option 1: Should I stick with the SoftwareSerial library?,
  • Option 2: Should I try the AltSoftSerial library, and figure how to duplicate it (i think this is a NO)?
  • Option 3: Understand that none of these libraries are prepared for this, and seek for other alternative?
  • Option 4: It is pointless to have several serial trunks in Arduino, if only one will work at a time, and should hence try to arrange just one serial trunk?
  • 1
    you must set which instance should listen with listen(). only one can listen – Juraj Feb 5 at 19:02
  • 2
    You might be better off with an rs485 multi-drop bus. – Majenko Feb 5 at 19:23
2

I tried to use MIDI (which is quite slow: 31,250 bps), and that didn't work reliable with the software serial on the Arduino Uno. Since I wanted multiple ports, I switched to the Arduino Mega which has FOUR harware serial ports. I would suggest this above using so many software serial ports; it also will relieve your processor to use hardware serials.

1

You could use a part with 2 hardware serial ports (Atmega1284P), and use a simple mux chip to switch between the slaves for the master to receive from, such as DG406 https://www.digikey.com/products/en/integrated-circuits-ics/interface-analog-switches-multiplexers-demultiplexers/747?k=dg406&k=&pkeyword=dg406&sv=0&pv1989=0&pv433=170&sf=0&quantity=&ColumnSort=0&page=1&stock=1&pageSize=25

Hardware serial will allow for faster comm's too, vs software serial. 1284P is Arduino friendly too.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.