Doubling Stepper Drivers With (somewhat) Independent Control?

It’s basically all in the summary. I’d like to use a smoothie for my upcoming Mostly-Printed CNC project, but I’d really like to take advantage of the dual endstop feature they have for their Marlin boards. The MPCNC has two stepper drivers per axis and they follow all the same gcode. If the two steppers get out of sync, you can issue a g28 and they home just like you’d expect, except each stepper only stops when it hits it’s own endstop. The current guide to doubling steppers involves wiring two drivers to the same control pins. Easy enough, but I have a feeling that if I do that, both steppers will stop when the master stepper hits its respective endstop. I want them to home independently. Is there a module or an alternate firmware that supports or could be tricked into supporting this?

Thanks in advance!

Imported from wikidot will do exactly what you want.

Brilliant! Thank you!

So I’m having to to do the transistor trick to get my motors to keep power during the homing sequence. Here’s my plan:

Remap alpha_step_pin to 1.22, then wire transistor with 1.22 on source, 1.31 on gate, and 2.0 on drain.
For X2 motor transistor, wire 1.22 on source, 1.30 on gate, and 2.3 on drain.
Remap beta_step_pin to 1.23, ther wire transistor with 1.23 on source, 0.8 on gate, and 2.1 on drain.
For Y2 motor transistor, wire 1.23 on source, 0.7 on gate, and 2.8 on drain.

Does this seem right? I think I understand how using a transistor instead of an AND gate should work: drain doesn’t see voltage unless source and gate both have voltage. In the first example, I don’t think it matters if I swap 1.22 and 1.31, as long as 2.0 is drain, right? Unfortunately, I don’t have any transistors laying around. I do have some mosfets, but they’re super beefy and I don’t think they’ll switch at 3v. Can you suggest a transistor model that will do the trick?

Did you get this working? I am doing the same but having an issue on the Smoothieboard v1.0a 5 driver board. The M5 (epsilon) driver current is not being set or being set to max and causing a driver shutdown / stuttering. I have tried everything from recompiling with AXIS=5 CNC=1 to setting epsilon_current to 0.3 (so I can see that it changes). It is almost like the second digipot chip is not being set. I am so close to working but this is stopping everything. Even if I do not use the dual Endstop (still flip-flopping), I can’t get it to work as a mirrored stepper because of the current issue. Any thoughts? I have alpha / beta/ gamma / delta / epsilon current being set in the config. All but delta / gamma have the enable / step / dir pins set per the stepper mirroring instructions.

Yeah, I have this mostly working. Right now I’m having to remap step pins so I can get my drivers to stay powered while they’re disabled by using the transistor trick in arthur’s post.

Regarding your problem, I might suggest using a different pin for your switch module for epsilon. Maybe the pin you’re using just has a crap solder joint.

Wait, that’s not what you’re after. I don’t know what’s causing your issue, exactly, but here’s my motor module:

  1. Stepper module pins ( ports, and pin numbers, appending “!” to the number will invert a pin )

alpha_step_pin 2.0 # Pin for alpha stepper step signal
alpha_dir_pin 0.5 # Pin for alpha stepper direction
alpha_en_pin 0.4 # Pin for alpha enable pin
alpha_current 1.5 # X stepper motor current
alpha_max_rate 11000.0 # mm/min

beta_step_pin 2.1 # Pin for beta stepper step signal
beta_dir_pin 0.11 # Pin for beta stepper direction
beta_en_pin 0.10 # Pin for beta enable
beta_current 1.5 # Y stepper motor current
beta_max_rate 11000.0 # mm/min

gamma_step_pin 2.2 # Pin for gamma stepper step signal
gamma_dir_pin 0.20 # Pin for gamma stepper direction
gamma_en_pin 0.19 # Pin for gamma enable
gamma_current 1.5 # Z stepper motor current
gamma_max_rate 500.0 # mm/min

delta_current 1.5 # X2 stepper motor current
epsilon_current 1.5 # Y2 stepper motor current