probe_as_z_home: Initial implementation and documentation #6774
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request adds the ability to perform multiple probes when issuing a G28 command. More specifically it calls into the 'probe' logic to execute a probe in a way similar to what would be performed during bed mesh creation. Since it uses the same logic this means that the resulting probe also applies the same
calc_probe_z_average
method to the result.The benefit of this feature is it allows users with less than perfect probing hardware to still have an unsupervised and reliable homing experience which is crucial to ensure print quality and preventing failed prints due to an incorrect Z homing. Bad homing can even lead to extruder jams and waste significant amounts of the 3D printer user's time. This is a feature that has been requested many times with one such example being Discourse: multiple-samples-on-home-z.
To configure this tool a new configuration section called
[probe_as_z_home]
should be placed anywhere in the config before the either[safe_z_homing]
or[homing_override]
.The implementation is completely decoupled from any particular homing or probing method and does not modify any existing code.