I have around 400 devices that i want to address in a star topology. Each device controls a set of LED strips (27*12 resolution). The idea is display a video animation in a good frame per second rate (at least 25fps).
I was successful controlling one set using Arduino (working code in this post). The step of transforming the video into RGB values was done with ffmpeg tool in Linux , the program then transform RGB values to a raw binary frames ready to be sent by the Arduino to the LED strip.
So to send these frames from the Linux program to all the Arduinos i have made an MQTT layer through TCP/IP where each device listen on a topic and the Linux program send according frame to it.
The problem is the heavy delay between sending the frames to all of the 400 devices and the start of the animation (trust me it seems awful resolution where each LED strips shows the RGB values in delay from the others).
I want to stay at 60fps which gives around 16ms between each frame being converted ,sent and displayed. So we are on a milliseconds tolerant architecture.
My question is how to implement a synchronized network with above considerations ?
Below a picture of a 12 pixel strip :