Duet 3 Z endstop as Z probe



  • I am trying to set up a non-retracting switch as both the Z-endstop and the Z probe for mesh leveling. Currently, I have the following lines of code:

    M574 P"io0.in" Z1 S1 ; Set Z endstop probe
    M558 P5 C"io0.in" H3 F360 T20000

    The z-endstop works correctly, but trying to run bed mesh compensation causes it to force manual leveling, which means something is wrong with my z-probe config. Anyone know what I am doing wrong?



  • You can't define two things to one pin. The M558 is failing with a duplicate pin. You probably don't see this at boot because the web has not connected fast enough. do a M98 P"0:/sys/config.g" and you will see the error.

    But... you don't even really need to pursue that:

    Define only the probe. It will also work as a stop, just by existing.



  • I am pretty sure before that I only had the M574 command, and the bed mesh compensation was still manual. If I only set the M558, how will it know which pin is the Z endstop for homing?



  • If a probe is defined, it will use it to home.

    This is my current endstop/probe definition on a Jubilee

    M574 X1 S1 P"io1.in"                    ; Set homing switch configuration X1 = low-end, S1 = active-high (NC)
    M574 Y1 S1 P"io2.in"                    ; Set homing switch configuration Y1 = low-end, S1 = active-high (NC)
    M574 U1 S1 P"io3.in"                    ; Set homing switch configuration U1 = low-end, S1 = active-high (NC)
    M558 K0 P5 C"io4.in" H5 A5 T6000 S0.02   ; Z probe - Set the height of the bed when homing G28.  Combined with content of bed.g as invoked by G32, levels bed. Also used for Mesh. 
                                               ; P5 = Switch, NC
                                               ; C  = Input Connector
    					   ; Hn = dive height
    					   ;   A bigger dive height prevents a situation where the bed is out of alignment by more than the dive height
    					   ;   on any corner, which can crash the hot-end into the bed while moving the head in XY.
    					   ;   Probing speed and travel speed are similarly reduced in case the Z probe isn't connected properly (or
    					   ;   disconnects later after moving to a point) giving the user more time to stop.
                                               ; An = Number of times to probe each point. 
                                               ; Tnnn = Travel speed between probe points. 
                                               ; Snnn = Tolerance when probing multiple times. Two readings inside this window and we move on.
    


  • So currently just using

    M558 P5 C"io0.in" H3 F360 T20000

    and when it gets to the Home Z scripts, I get a "Failed to enable endstops" on G28 Z



  • io0.in is reserved for the PanelDue. Try any other input.



  • io3 appears not to work either. I will try io4 quickly.



  • @Danal io4.in appears not to work either. I also added the K0 to the 558 command just in case there was an issue there. still get the G28 Z failure


  • Moderator

    @bass4aj Can you post your whole config.g and homing files that cause the error? This will make it much easier to help you, and troubleshoot where the problem is. When requesting support, please see the information required to resolve your enquiry quickly here: https://forum.duet3d.com/topic/5909/guide-for-posting-requests-for-help

    Using the RRF config tool, your endstops and homing section should look something like:

    ; Endstops
    M574 X1 S1 P"io0.in"                         ; configure active-high endstop for low end on X via pin io0.in
    M574 Y1 S1 P"io1.in"                         ; configure active-high endstop for low end on Y via pin io1.in
    M574 Z0                                              ; configure Z-probe endstop for low end on Z (ie no endstop)
    
    ; Z-Probe
    M558 P5 C"io3.in" H5 F120 T6000              ; set Z probe type to switch and the dive height + speeds
    G31 P500 X0 Y0 Z2.5                          ; set Z probe trigger value, offset and trigger height
    M557 X15:215 Y15:195 S20                     ; define mesh grid
    

    homez.g should be something like:

    ; homez.g
    ; called to home the Z axis
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Wed Feb 05 2020 10:27:58 GMT+0000 (Greenwich Mean Time)
    G91              ; relative positioning
    G1 H2 Z5 F6000   ; lift Z relative to current position
    G90              ; absolute positioning
    G1 X15 Y15 F6000 ; go to first probe point
    G30              ; home Z by probing the bed
    

    What do you have?

    Ian

    Edit: config tool erroneously puts in M574 Z1 S2 for Z endstop, should be M574 Z0. Will be fixed!


  • administrators

    @bass4aj, why are you not using G30 command to home Z using the Z probe in homeall.g and homez.g? https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCartesianPrinter#Section_Homing_Z



  • @dc42 I have been working on modifying the E3D toolchanger code to work with the Duet 3, so I guess I just didn't notice, but that's a great point! Though that still doesn't solve the bed mesh problem right? I have attached my config.g and my homez.g @droftarts

    homez.g config.g



  • @bass4aj said in Duet 3 Z endstop as Z probe:

    modifying the E3D toolchanger code to work with the Duet 3

    I have a working Duet3 (with Pi) running a Jubilee. Which is E3D tool compatible.

    Jubilee Configs.g <= This is really a zip file. Rename it after you download it.


  • administrators

    @bass4aj said in Duet 3 Z endstop as Z probe:

    @dc42 I have been working on modifying the E3D toolchanger code to work with the Duet 3, so I guess I just didn't notice, but that's a great point! Though that still doesn't solve the bed mesh problem right? I have attached my config.g and my homez.g @droftarts

    homez.g config.g

    The E3D Z homing file is wrong, it should use G30. It does in the set of Duet 2 RRF3 files for the TC that I posted in the E3D forum.


Log in to reply