Multiple endstops on Y axis



  • Hey there,

    I am currently running a custom printer which needs two y axis endstops to align and synchronize the y axis. I have recently updated my duet 2 wifi to RR firmware 3.0beta12 and since version 3 now works with multiple endstops per axis out of the box I want to use that feature. How would one set that up?

    My y axis is currently mapped to motors 2 (z driver) and 1 (y driver) and my y axis endstops are connected to z and y endstop pins of the duet. Is the following sufficient to set this up so that both y axis motors move to home until they both hit the endstop?

    M574 Y1 S1 P"ystop"
    M574 Z1 S1 P"zstop"
    M577 P"ystop+zstop"

    Thanks in advance!



  • see
    https://duet3d.dozuki.com/Wiki/Gcode#Section_M574_RepRapFirmware_Num_3

    To use two Z motors using independent homing switches, declare two Z motors in M584, then declare two pins for Z endstops in a single M574 command. Example

    M584 X0 Y1 Z2:3 E4
    M574 Z1 S1 P"io2.in+io3.in" ; Z axis with two motors, individual min endstops, active high



  • Thank you very much! This is what I was looking for.

    This following Gcode works:

    M574 Z1 S0 P"zstop+ystop"
    M574 Y1 S0 P"zstop+ystop"

    Is there a possible bug in the documentation?

    According to the doc, this should work:

    M584 X0 Y1 Z2:3 E4
    M574 Z1 S1 P"io2.in+io3.in" ; Z axis with two motors, individual min endstops, active high

    In my config I have the following:

    M584 X0 Y2:1 Z3:4
    Now when I add M574 Y1 S0 P"zstop+ystop" to this it results in the endstop connected to the Z motor to be ignored.

    Only when I declare it like this:

    M574 Z1 S0 P"zstop+ystop"
    M574 Y1 S0 P"zstop+ystop"

    it does what it is supposed to do: home the "z motor" and "y motor" until they hit their designated endstops.



  • if it work ok. but it does not sound right.

    M574 Y1 S0 P"zstop+ystop" should have been enough.

    did you swap the endstop connectors around as the order is important?


  • administrators

    @Veti is right. The fact that you have one of the Y motors connected to the Z connector is taken care of by the M584 command. The M574 command is concerned with which axis you are homing, not which motors that axis uses.



  • @Veti what do you mean with swapping the endstop connector?



  • see the documentation

    The order of endstop switch pin names in M574 must match the order of Z motor driver numbers in M584. When homing Z, RRF_3 homes the motors of the axis at the same time, independently to their defined endstops.



  • As I have defined M584 Y2:1 shouldn't be M574 Y1 S0 P"zstop+ystop" correct?



  • @marc8991 said in Multiple endstops on Y axis:

    M584 Y2:1 shouldn't be M574 Y1 S0 P"zstop+ystop"

    can you try it the other way round?


  • administrators

    @marc8991 said in Multiple endstops on Y axis:

    As I have defined M584 Y2:1 shouldn't be M574 Y1 S0 P"zstop+ystop" correct?

    Your M584 command declares the Y motors to be connected to the Z and Y motor outputs, in that order. In the M574 command you must list the endstop connectors in corresponding order. Therefore, if the Y motor connected to the Z output has an endstop switch connected to the zstop input, and the Y motor connected to the Y output has an endstop switch connected to the ystop input, then your M574 command is correct. If you swapped the endstop connections over, you would need to list them as "ystop+zstop" in the M574 command.


Log in to reply