Printhead movement in X/Y possible while Z probing?
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.
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.homed || !move.axes.homed || !move.axes.homed G28 M574 Z1 S1 P"^!zprobe.in" ; configure active-low endstop for low end on Z via pin probe.in G90 ; absolute positioning G1 Z12 F1200 G91 ; use relative positioning while iterations < 100 G1 H1 X1 Z-0.2 F120 if sensors.endstops.triggered G92 Z10 ; height of touch plate break 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
iterationsas 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