Best way to control 600+ stepper motors

Hello, my name is Paul and I am new to Pololu. I have purchased 2 Maestros 24 and I like them, however I really want to control say 600+ stepper motors, individually or all at once with no delay from the first to the last one.

I dont believe the Maestros can drive a stepper motors and I guess the TIC controllers as Brandon mentioned in another post could be an option, but is there a way to daisy chain them somehow so that you can use one arduino or raspberry?

Regards,

Paul

Hello, Paul.

Yes, similarly to the Maestro, you can daisy-chain multiple Tic controllers together using the TTL serial interface. You can find information about that in the “Setting up serial control” section of the Tic user’s guide. Please note that if you need to receive data back from the Tics, you will need to AND all of the returning TX signals together before connecting them to the RX pin on your main controller.

You might consider the I2C interface instead, which does not require the AND gates. However, the I2C address is 7-bits, so you can only have 127 unique addresses (whereas with serial you can use the optional 14-bit device number to independently address more units). You can find information in the “Setting up I2C control” section of the same user’s guide.

If you need to independently control all of the stepper motors, you would need one Tic for each one. If you do not need independent control of all of them, you might be able to cut down on the number of Tics required by connecting multiple motors in series or parallel to each one, but if you are not familiar with how these setups work, I recommend researching it first to make sure you configure it properly.

You will likely run into some practical challenges when trying to use that many controllers. For example, the pull-up resistors on the communication pins will all be getting connected in parallel, and at some point, they will probably be too strong, and you could also run into limitations with using long lengths of wire and capacitance on the lines. As far as a delay between the first and last controller, they do not have any special features to synchronize movements, so if you are sending individual commands to each one, there will be some delay since the commands are all sent one after another. How long the delay is will generally depend on factors like the communication interface and speed you are using and which particular command you are using. It will probably take at least 81 ms to update all the Tics, and that number was calculated using some optimistic assumptions (400 kHz I2C, 600 Tics, Tics not stretching the clock line, one command sent at a time).

Brandon