-
-
Notifications
You must be signed in to change notification settings - Fork 19.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FR] Faster probing (G29) with probe clearances relative to the probe or relative clearance based on the previous probe #25686
Comments
The idea of a relative clearance sounds really good. |
Sounds like it'll improve the speed of probing. One of my biggest problems is that my printer takes forever to bed level; 100% this should speed it up |
My configuration: (29 seconds on a 200x200 bed, 5x5 probing). |
Let's maybe talk some real numbers... without that, there is not even a benchmark, yet alone objective measure. If I understand you correctly... Clearance relative to probe is quite hard to achieve without knowing the position of the probe, which is set by Z offset. But you can simply set some Z clearance (relative to nozzle) and lower it if is it too high for you. Implementing such a thing like dynamic clearance based on probed height seems like quite a complex logic / lot of work for such a simple task / small benefit. And still... you would have to rely on some clearance because the firmware has no idea how high the next point is (and trying to assume something is not really helpful). So you can just lower the |
UPDATE: Patch #25631 has done some groundwork, it adds an option to enable raise_after_is_relative. This allows to make the raise after probing to become relative. This is currently not used anywhere, but can be enabled in G29.cpp. Replace:
|
If you use 1.4mm, what happens if the bed is out by more than 1.4mm from edge to edge? |
You’d be in trouble both in software and hardware. Ideally however, on a smaller bed, you shouldn’t have such a large difference, that’s a hardware issue. Moreover, you can tweak it later on in Marlin (I think)
|
Probing will still work fine as long as the bed doesn't increase in height from one probe point to the next by about 1mm (very bad bed!). You care more about the local unevenness (which should be small, < 0.25mm) than the total unevenness (<1mm) |
A 1.4mm unevenness would not be great, but is not problem for the SW or HW when selecting the right probing values. My findings about total bed unevenness
If your unevenness is too big, and you can remove your build plate then use some tape (blue or kapton) to reduce the unevenness. |
I am sorry, I misread your previous posts a bit. I can see two places where time can be saved.
|
Correct, the only issue is that this clearance is defined in relation to the nozzle, not the probe. The difference is the Z-offset. So when setting Z_CLEARANCE_MULTI_PROBE you currently need to consider the full range of Z-offset (configurable at compile time, but usually something like 0 to -5mm). Z-offset is changed dynamically (M851), but Z_CLEARANCE_MULTI_PROBE is fixed when compiling. This means that you will need to set Z_CLEARANCE_MULTI_PROBE to a value that considers a Z-offset of -5 (probe is very low), but if the probe is lower (Z-offset is -3) then probing becomes very slow.
In the current probing implementation this will cause issues (just try it), firstly because of the reason mentioned above. Secondly you would have to consider global bed level unevenness, probe hysteresis (inductive probe) and the push in distance before triggering (for BLTouch etc.). Currently the probe clearance is the same for the whole bed, so you need to set a relatively high value to be safe otherwise your probing will intermittently fail. |
But the Z-offset is known (roughly but precisely enough) so can't you just take it into account when setting clearance in config? Of course it might require recompilation when changing hardware in a way that would significantly affect the offset.
I cannot try it at the moment unfortunatelly. Well and with your implementation, what changes? The probe still has to go around the whole bed, so you will still have to clear the highest point anyway. Or does the probe lift |
Is there any way we can test this as an alpha to see the numerical time change?
Of course. However, software isn’t always a fox for hardware. It would be ideal to have ones hardware “as right as possible” then use software to compensate for and inaccuracies. |
|
Sure, you can test it. To try it do this:
|
Alright, that makes sense 🙂. |
I've been running with this update on my 4 printers (1 x IDEX, 1x i3, 2x Custom designed XY kinematics), and it has solved many of my annoyances and inconsistent probing behavior. It has made probing much faster and consistent for different machines. Before it was clear that the probing speed depended on the Z-offset, which can vary strongly on different machines (typically for between -1.2 and -3.5, I use a BLTouch). This currently affects probing speed significantly, the update makes the Z-offset (almost) irrelevant. It's only relevant for the first probe, then relative probing kick in. |
Is your feature request related to a problem? Please describe.
Slow and inconsistent probing speed for the same printer type (different Z-offset).
Are you looking for hardware support?
MKS Monster 8 V1.0
Genuine BLTouch
BTT TFT35 V3.0
Describe the feature you want
CLEARANCES RELATIVE TO THE PROBE
Bed probing (G29) is slow and inconsistent for different printers with the same setup. This is because the clearances (Z_CLEARANCE_DEPLOY_PROBE, Z_CLEARANCE_BETWEEN_PROBES, Z_CLEARANCE_MULTI_PROBE) used for probing are relative to the nozzle, and not to the probe. This means that the probe Z-offset strongly affects the probing height and thus the probing speed. High clearance values must be chosen to consider the full Z-offset range.
It would be useful if the clearances were relative to the probe position (thus independent of the Z-offset).
RELATIVE PROBING HEIGHTS
Probing can also be done faster if a relative probing height is used. Meaning that the next probe point clearance depends on the just found probe z-height. This makes sense in my view as the Z-height of probe points close to each other in XY direction are also close in Z-direction. So the procedure could be for G29. Use a clearance of Z_CLEARANCE_DEPLOY_PROBE for the first probing, then increase the Z-height with Z_CLEARANCE_BETWEEN_PROBES for the next probe. The Z_CLEARANCE_BETWEEN_PROBES value would depend on the sensor hysteresis/LOCAL bed unevenness/probe push in distance before triggering. Implementing this can drastically increase the probing speed by reducing the required Z-travel distance.
Additional context
No response
The text was updated successfully, but these errors were encountered: