exorgroup:
Data may look like 6750|M-200|S100|R255255255 for every arduino slaveBaud rate - the fastest possible without data loss as data will be sent for every unit
This is 30 bytes of text but I assume the values are partly integers, and that | is used as separator.
assume 200 devices @30 bytes per second == 6000bytes /second = 65.000 baud
if the values are indeed integers you can send them binary and you do not need separators only a start and stop char.
written in binary format, using <> as start/stop chars
< ==> 1 byte
[6750] ==> 2 bytes
M ==> 1 byte
[-200] ==> 2 bytes
S ==> 1 byte
[100] ==> 1 byte
R ==> 1 byte
[255][255][255] ==> 3 bytes
==> 1 byte
OK there are assumptions made but it could be as less as 13 bytes,
so you can send 2-2.5x faster if you send the data as binary bits instead of text.
13 bytes x 200 devices = 3000bytes/second = 30Kbaud.
Please confirm the structure of the data packet. (fieldname and range per field)
e.g.
struct
{
int identifier;
byte RGB[3];
}