Adjustable probing depth during G30
-
Hello, it seems that there is currently no way to configure the valid probing depth when doing a G30, it is implicitly defined as being twice the dive height specified by M558.
Would it be possible to add a parameter to M558 to configure this range if needed?
Currently the only way to increase the valid probing depth is to increase the dive height, which increases the probing time quite a bit.
My current setup makes an initial home with a Z endstop to establish a valid Z=0 reference, then four separate G30 calls with an inductive probe to align the gantry to the bed plane.
Since the initial position for that dive is the Z probe offset + the dive height from M558, I end up starting quite high (H5 + 2.5mm Z probe offset = 7.5mm starting Z!) when I know that the trigger won't occur until at least reaching Z=0 or lower. In order to allow triggering below Z=-2.5mm I need to increase the dive height quite a lot and that slows down all probes, simply because the depth range isn't adjustable.
I could also work around this by making my Z offset lower (or even cheating by making it negative to bring down the starting Z!) but that makes the G29 heightmap generation rightfully complain that the Z heights aren't all near Z=0.
Does that make sense?
If there is no interest (or not enough spare time!) I could look into adding this myself and submitting a PR.
For reference I am running firmware 3.2beta3 on a Duet2 1.03 Ethernet, using a Fysetc 12864 display.
Cheers,
Ben. -
Since you can modify the M558 command on the fly, why not adjust the dive height after your first probe point?
You can also alter the probing speed. You could have a fast initial probe, and then slower speed and shorter dive height after.
M558 F600 H10 G30 M558 F60 H2 G30
Similarly, if you use bed.g or another macro to call G29 to start a mesh mapping, you could configure M558 before starting the mesh and then change it back to your homing values after.
Or maybe I'm completely missing what you're asking for.
-
Increasing the dive height means a higher start position for the probe move, making it longer. What I want is to enable probing lower without raising the starting height.
Let's look at a concrete example, assuming a setup with a dive of 5mm and a trigger offset of 2.5mm:
M558 K0 P8 C"^zprobe.in" T18000 F120 H5 A5 S0.01 G31 K0 P500 X0 Y25 Z2.5
With this setup, a call to
G30
will move Z to 7.5, then try to probe until -2.5, then give up if nothing was found.If I want to increase this depth range, I need to increase the dive height:
M558 K0 P8 C"^zprobe.in" T18000 F120 H10 A5 S0.01
This works, but now I have raised the starting point to Z=12.5 in order to allow probing until Z=-7.5! So while this works I am spending most of the probing time moving through an area where I know the trigger won't happen (because the endstop established a valid Z=0).
I guess I could make the first pass move much faster so the wait doesn't sting so much. But again I know most of the probe move will never trigger so it seems wasteful to have to raise the starting height.
IMO it would be quite elegant just to add a
D
parameter (for example) toM558
which allowed one to specify the desired depth range, and just assumeH x 2
when not supplied. RRF is famous for not having hardcoded behaviors and leaving choice to the user, so I would have expected this to be the case here too.My printer is a VORON V2 which is rather unique, in that the bed is fixed and it is the gantry itself that is moving & being leveled. There is an endstop switch at the back to establish Z=0, and then a separate inductive probe is used to align the gantry. Because the motors are at the back of the gantry, it is almost guaranteed that the back will be lower than the front, because that's how it will move when unpowered. So that is why I know the back probes will always trigger near Z=0, and the front probes at some negative Z value.
Does this help put a better context to my question?
Cheers,
Ben. -
I faced the somewhat the same issue when I implemented auto bed leveling using 3 Z steppers.
To keep the dive height small I needed the bed to be mostly level when probing.
I installed end stop sensors on each Z axis and used them for homing which got the bed level enough that a dive height of 2 was possible.
Frederick
-
It turns out varying the probe speed is an acceptable workaround. I typically level in three passes so during the first one the dive height is high but so it the probe speed, this is reduced to 4mm and 1mm for subsequent passes (with gradually slower speeds). I've been running with this for a bit and while not ideal, it's good enough.
I still think the dive depth range should be configurable, because as it is today the probe depth always has to be centered +/- the dive height at the Z offset.
Thanks for the suggestion!
Cheers,
Ben. -
Glad that worked out. Adjustable probing depth could still be useful. Though I think something could still be worked out with conditional gcode and the commands as they are available currently.