M574 usage on RRF 3



  • I'm trying to wrap my head on the implementation of M574 S parameter in firmware 3. I have an active low endstop conected to e0stop on duet wifi.
    The endstop is not triggered on all below cases.
    M574 A2 S0 P"e0stop" M119shows endstop triggered at max stop.
    M574 A2 S1 P"e0stop" M119 shows endstop is triggered at max stop as well.

    The way it worked for me is M574 A2 S1 P"!e0stop" M119 or M574 A2 S0 P"!e0stop" M119 or even M574 A2 P"!e0stop" M119, completely missing the S parameter.
    That doesn't appear to be documented in the reprap firmware 3 overview or https://duet3d.dozuki.com/Wiki/Gcode#Section_M574_Set_endstop_configuration

    Is RRF3 completely ignoring the S parameter unless is S2/S3/S4 and a P parameter is present? From the documentation I understand S0/S1 is needed when used to home an axis other than Z.


  • administrators

    Thanks for reporting this. S0 is handled correctly for endstops on Duet 3 expansion boards, but S0 is currently treated the same as S1 for endstop switches connected to a main board. I will fix this in the next release.



  • Same behaviour on duex expansion board, I am using duet wifi+duex. the firmware ignores the S parameter but respects the ! sign. My first thought was that in RRF 3 the S parameter specifies only the endstop type and active high/low input is decided by the presence of the "!" sign, which could be also a valid approach.



  • @dc42 said in M574 usage on RRF 3:

    Thanks for reporting this. S0 is handled correctly for endstops on Duet 3 expansion boards, but S0 is currently treated the same as S1 for endstop switches connected to a main board. I will fix this in the next release.

    Actually David, this thread prompted me to check what I ended up with for my Metrol switch which is connected to expansion board 2 because I remember inverting the pin to get it to work. What I have is this M574 Z1 P"!2.io1.in" - note the complete lack of an "S" parameter.

    Edit. But don't the "S" parameter and inverting the pin by using "!" achieve the same thing? If so, then maybe all that needs changing is the documentation?


  • administrators

    @deckingman said in M574 usage on RRF 3:

    Edit. But don't the "S" parameter and inverting the pin by using "!" achieve the same thing? If so, then maybe all that needs changing is the documentation?

    Yes, so I could remove the S0 option. But that wasn't my intention.



  • @dc42 said in M574 usage on RRF 3:

    Yes, so I could remove the S0 option. But that wasn't my intention.

    Fair enough. For info my other 6 end stops all use "S1" which is why I didn't come across the issue. I have one or more end stops connected to all 3 expansion boards as well the main board, so let me know if you want me to test anything.


  • administrators

    @dc42 said in M574 usage on RRF 3:

    Thanks for reporting this. S0 is handled correctly for endstops on Duet 3 expansion boards, but S0 is currently treated the same as S1 for endstop switches connected to a main board. I will fix this in the next release.

    There is a new build at https://www.dropbox.com/sh/3azy1njy3ayjsbp/AACquxr2m00eV568RZg5QG5wa?dl=0 which should fix this. It also fixes file upload issues when running in standalone mode.


Log in to reply