Printhead movement in X/Y possible while Z probing?

  • Hi!

    I need to change nozzles quite often so I need a fast way to correct my Z height.
    A test setup using an aluminum block to short the nozzle against works promising but the nozzle has to be extremely clean to get it accurate. An easy fix would be to move the head while probing - I verified this moving the aluminum block by hand (which I do not really enjoy because of high chamber temperatures (> 100°C).

    So is there a possibility to do a probing move with X/Y components?


  • Would it not be possible to clean it before probing? heating up the nozzle. retract. clean and then probe. Voron users are doing these with a brass brush.

  • It surely is possible but way more complicated.

  • Moderator

    More complicated than modifying the firmware?

    If you move in XY during a probe move of Z the trigger point seems a bit harder to anticipate. How far do you move? What if you move that much before it even triggers? Do you just keep moving until it triggers? What if you miss the block because it moved too much? What if the block moves with it?

  • @Phaedrux I hoped there is a way without modifying the firmware.
    The touch area would be mounted to the bed and ideally the head moves constantly in a small circle while descending in Z.

  • A very crude solution that works as proof of concept:

    M561                    ; clear any bed transform
    ; If the printer hasn't been homed, home it
    if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed
    M574 Z1 S1 P"^!"        ; configure active-low endstop for low end on Z via pin
    G90 							; absolute positioning
    G1 Z12 F1200
    G91								; use relative positioning
    while iterations < 100
    	G1 H1 X1 Z-0.2 F120
    	if sensors.endstops[2].triggered
    		G92 Z10                                 ; height of touch plate
    G1 Z25 F1200
    G90 							; absolute positioning
    ; restore endstops
    M574 Z2 S1 P"zstop"                            ; configure active-high endstop for high end on Z via pin zstop

  • if you were to use iterations as x coord with the mod() function you could get it to go back and forth within an intervall set by the mod() function. (or you could get fancy with a helical path)

  • @bearer nice idea - especially if the height variantion is potentially higher.
    still I’d prefer a solution without loop but I wasn’t able to find a solution that also terminates the X move when the Z endstop is triggered

  • long shot; reconfigure x to use same endstop as zprobe input and revert after?

  • @bearer Tried that - gave me an endstop configuration error 😕

Log in to reply