Control 4 linear stepper actuator with 4 driver boards and 1 arduino

I am building a setup where I want four linear stepper actuators to move at the same speed to the same position. I found some relevant discussion, but I am still confused. The plan is to use a combination of 4 Actuonix stepper motors (Actuonix S20-50-38-B Stepper Actuator) and 4 Stepper Driver Board TIC T825 controlled by Arduino Mega 2560. I have a few questions here:

  1. should I use serial or I2C control? what's the pros and cons?
  2. Can I break out a single control signal output from Arduino into four lines and directly connect them to the actuators, or do I need some transmitters?
  3. is it possible to control four actuators separately but have them synced?
  4. How should I plan out the powering and shields for the circuits?

I2C is a bus using 2 pins. If the drivers have I2C and they can be configured having different addresses I2C can be used. Making the steppers move exactly at the same time will not work. On stepper at the time can be commanded.

Using dir/step the same step output can be connected to all 4 drivers. If direction is the same for all steppers, do the same to the dir line.

What are the demands for "sync"?

Sum up the stepper current needed and get a power supply delivering 25 - 50% more.

1 Like

thanks! The device is built to evenly stretch a square fabric at the same time toward four (+-x and +-y) directions. It does not to be extremely precise, but it is better to have them start/stop moving at the same time to the preset position.
It seems to me that i'd better use a dir/step and have the same pin directly connected to all four drivers?

That sounds like the best choice.
Do some thinking how You will proceed when setting up the rig the first time. It's not a problem to disconnect 3 drivers/steppers and move one stepper to the desired position. Then do the same to the other ones, one a the time.

1 Like

Is within a step inside of 10 us or 1us or 0us precise enough? You could use digitalWrites or on AVR you could use low-level port writes like PINB = 0b1111 and reserve flexibility for independent motion.

Here's a sim of an arduino coordinating random vectors of motion for 6 steppers/driverboards with digitalWrite():

1 Like

thanks! It should be enough for this project/ This sim really helps! I will try it out with digital write.

This might be a dumb question - but what are these buttons for in the sim? it seems that are are all connected to the ground of arduino

They are not used in that simulation. They are connected to the hard-wired limit switch pins on a RUMBA/RAMPS 3d printer controller board that I was playing with with other simulations. There's a link in the comments to a simple g-code interpreter sim.

1 Like

got it. thanks!

I use that setup for code for 5-6 steppers

If you just need 4 steppers, I have another sim wired up per the Protoneer CNC shield V3 with CodingBadly's GCode Interpreter:

Or for more than 6 steppers, I've got this wired up for simulation: FastLEDStepperManyAxisStepper - Wokwi ESP32, STM32, Arduino Simulator

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.