Apologies in advance for the huge description below!
Our project involves 24 Mini Maestros with 24 channels each, driving a total of 576 servos. Earlier small prototypes went well, but now I’ve got the full setup under construction, I’m seeing odd behaviour when I daisy chain the Mini Maestros together. I’m hoping I can get some pointers to track down where the issue might lie.
As it stands, I have two chains of twelve, so two of the Maestros are plugged into a Raspberry Pi, and then each one has eleven Maestros daisy chained onto the back. Each Maestro’s set of 24 servos is arranged in a column, forming a large grid that will be used as a mechanical display with a resolution of 24x24. I have each set of four columns connected to its own 5V, 12A power supply on VSRV, and all of the Maestros’ processors get their power on VIN from a single 5V, 2A supply.
The Maestros are all set to 115200 baud, the masters are in USB chained mode, and the chained Maestros are in fixed rate UART mode. I don’t get any errors back from the Maestros while they’re in action.
The problem that I’m seeing is that often the servos move in a “steppy” way instead of smoothly. By this, I mean that they briefly turn part of the way in the right direction, then stop for a while, then turn a bit more until they eventually reach the target position. They don’t overshoot or oscillate, though. The individual steps happen every 1.6 seconds or so. Whole columns step in sync. It takes a lot longer than it should to reach the target position.
I’m testing half of the unit at the moment, so I have one chain of twelve in total. With this full chain, I usually get the steppy behaviour, and I can see that it’s actually broken down into three groups of four columns, as I can see the groups are slightly out of sync. This matches how they’re connected to the power supply. Sometimes the first one or two blocks of four columns work perfectly, and I think it did all three blocks perfectly just once! When this is the case case, I have smooth, fast movement from the working columns, but the remainder still move in steps.
I’ve also tried shortening the chains. It’s hard to tell if that makes it more reliable, but it’s still far more failure than success. However, every column works on its own if I set it to USB chained mode.
My main issue is to narrow down where the problem might be coming from. On the one hand, changing the programmed pattern that the servos are meant to be displaying causes it to start working properly for some blocks of columns, or more likely makes it steppy if it wasn’t already. That suggests that it might be a bug in my software. However, on the other hand, if I pull out the USB plug so that commands are no longer being sent to the Maestros, the steppy blocks of servos keep stepping until they’ve reached their target positions, and that suggests that it’s a Maestro problem!