2 Motors Working in Unison


I have a simple problem that I don’t know how to address. I need 2 stepper motors to always turn in unison - ie at the same time - and I am wondering if this is a simple problem or a complex one.

I have designed my own CNC mill and it is absolutely imperative that 2 of the motors always turn in unison. The design is hard to explain but basically it solves an engineering problem I had.

Can anyone tell me if the new Smoothie v2 does this? Or is that more of a GCODE or post processing thing?

Thanks in advance.

There are three fundamental ways to do that.

  • Software sends the same signal on multiple ports to multiple stepper motor drivers. While this won’t be perfectly in sync it will be effectively in sync.
  • Hardware has one port routed to multiple stepper motor drivers. This should be exactly in sync. You can always add an external stepper driver if your controller doesn’t have this ability.
  • One stepper motor drivers drives multiple stepper motors, with a choice of
    • Motors in parallel (typical cheap 3d printer choice, each motor sees the full voltage but only half the current, more likely to get out of sync)
    • Motors in series (each motor sees half the voltage but the whole current, unlikely to get out of sync)

Only the first has any software aspect.

1 Like

Wow sounds like good advice. I will show you a screenshot of the design - it’s super beefy - maybe a little too much so but i’m too dumb to design it any better.

I figured out later that if I have twin ballscrews on the X axis that my cuts will be stronger and more rigid - if I can get both motors to spin exactly the same - less math too

So a 2.5D router?

I have an OX, which is belt-driven and fails harmlessly (except to the workpiece) if one stepper fails to move in sync with the other on the Y axis which is the only axis driven with two steppers. I chose the option of one hardware port routed to two external drivers. I have the STEP, DIR, ENABLE, and GROUND lines from one port on my controller board (not using a stepstick or direct motor control ports) connected to two external stepper driver units.

However, usually, you want to go out of your way to use a single motor on an axis if possible, and that’s even more true with ballscrews. If you had a failure that caused one of two steppers to fail (and there are lots of opportunities for that) is there any chance that the racking would cause damage to one or both screws?

I would use a single stronger stepper and a timing belt rather than multiple steppers. With the mechanical advantage of the ballscrew, timing belt would behave well WRT cutting forces. You could use a pair of 60T or 80T timing pulleys between the ballscrews and the forces on the belt would be essentially insubstantial, and you would know that the screws would run in sync. You could use two pulleys, one on each end of the screws, and have redundancy in case of a belt failure.

I can’t tell what you are making the frame out of, but it looks thin relative to your screws and rod. I’d expect compliance in your frame to be more of an issue than any timing belt stretch if you did that.

Have you considered bolting rail for open pillow block bearings to a frame element for your dual-ballscrew axis?

I know these ideas aren’t what you came here to ask, but I couldn’t help myself. :wink:


1 Like