Arduino Uno - Multiple Serial based functions

I have my own serial ring ideas, didn’t know there’s others. Each chip in the ring can send at the same time.

GoForSmoke:
Each chip in the ring can send at the same time.

Indeed. But is that an essential requirement or just something that is done because it can be done?

Wireless offers capabilities (and shortcomings) that are different from a wired system and I think a conversion from a multipoint wired system to wireless needs to be viewed from a broader perspective than simply dispensing with cables.

...R

For sure, I was only thinking of what the two could share in common.

The same basic system I've been trying to get into acceptable form could work with both but yes that would not be the best possible system. It still could be fun and more than capable of average house/yard/greenhouse/farm automations. It could extend range and allow wire and wireless in the same ring possibly without much or any change at all.

I don't know where if anywhere else it could go, I'm really in the finding out more of what's possible phase.

Robin2:
Indeed. But is that an essential requirement or just something that is done because it can be done?

It's simple and neat, a way to break a job up between multiple controllers. Keep the fast coordinated tasks on the same chips and pass lower priority data and control around the ring. Each chip runs a comm task that recognizes keys that run functions it has mainly to set flags and values that trigger or inform on-chip tasks. Each message begins with the chip ID that doesn't send the original message along as it's read, once around at most is enough so default ID==origionator.
That's the basic outline. I was thinking of a way to broadcast with SPI and how to collect slave responses w/o interrupting the cast and see, the ring system can do that.

When I write multiple tasks into void loop() and pass control and data through variables.... this is a way to do that between controllers, a way to split the code without rewriting the tasks, just adding passing the data along.

GoForSmoke:
Each message begins with the chip ID that doesn't send the original message along as it's read, once around at most is enough so default ID==origionator.

How many messages per second go around your ring and how many bytes are in each message?

...R

You didn't ask what baud rate but then I didn't spec a baud rate or message length or number of messages.
That's because the general rules don't limit any of that, they're flexible.

How many messages, etc, depend on the implementation.

If the controllers are busy on a local task, a high baud rate will be undesireable as there is no special device to send and receive with wired serial beyond an AVR UART or USI.

How many messages per second minimum is implementation specific but the fast interprocess needs are supposed to stay on the same chip. I would NOT try splitting motor control and sensor feedback for that across chips and expect the ring to carry coordinating data. I would have no problem with having one chip handle a big button matrix sending debounced button presses around the ring. Ring data should not be high timing priority.
I'd try to keep the ring baud rate to 115200 or 57600 just to give the controllers time to run on-chip tasks depending of course how intense those might be.

Notice that I didn't specify how many controllers max should be on the ring. I leave that up to the developer. A 3 chip ring will get messages around faster than a 5 chip ring, if one chip needs to pass data to one other quickly then what chip order might a developer choose to implement that?

GoForSmoke:
How many messages per second minimum is implementation specific

[.....]

Notice that I didn't specify how many controllers max should be on the ring. I leave that up to the developer.

To my mind that sounds like a description of a general purpose system that will work but which may not be ideal for some situations where wireless is available.

To be honest I don't see any justification for "pass the parcel" if a wireless system can directly address the intended recipient.

My starting point would be to avoid a wireless ring unless it is essential.

...R