Add support for calculating points like mesh_min and mesh_max based on physical bed size#879
Open
Luro02 wants to merge 8 commits intoKalicoCrew:mainfrom
Open
Add support for calculating points like mesh_min and mesh_max based on physical bed size#879Luro02 wants to merge 8 commits intoKalicoCrew:mainfrom
mesh_min and mesh_max based on physical bed size#879Luro02 wants to merge 8 commits intoKalicoCrew:mainfrom
Conversation
c3f16d4 to
c3105bb
Compare
2 tasks
b63723c to
16d2d4a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What will this PR introduce?
This PR extends Kalico with sections for specifying the physical bed size and where the nozzle would have to move, to be over the bed corner:
[printer] kinematics: corexy max_velocity: 400 max_accel: 5000 max_z_velocity: 30 max_z_accel: 350 square_corner_velocity: 5.0 bed_size: 300, 300 bed_corner_position: -4.3, -10.8The properties will then bed used to calculate positions that previously had to be specified by the user.
For example, in the
bed_meshsection, the user had to specify thebed_minandbed_maxpositions, defining the corners of the mesh that should be probed.With this PR, the user can omit them, and instead specify a margin (how much the mesh should be away from the edges of the bed):
[bed_mesh] zero_reference_position: 150, 150 speed: 300 horizontal_move_z: 3 margin: 30, 30 probe_count: 30, 30 algorithm: bicubicThe code will then calculate
mesh_minandmesh_maxbased on the defined physical properties and the desired margin.This PR updates the following sections to take advantage of this feature
[bed_mesh][quad_gantry_level][safe_z_home][axis_twist_compensation]other sections might be implemented by others in future pull requests.
Why is this needed?
In many configuration sections points have to be specified that depend on the position of the bed, the offset of the probe and the physical limits of where the printer can move to:
bed_meshbed_tiltbed_screwsscrews_tilt_adjustz_tilt/z_tilt_ngquad_gantry_levelsafe_z_homeaxis_twist_compensationWhen you change any of the following
you would have to go through every section and recalculate or update the positions. This is time-consuming, error-prone and can be confusing, because some sections use probe offsets, others not.
PR #500 added the
use_probe_xy_offsetsoption, which allows making certain points relative to the probe. If there is enough space to move, this is not a problem, but consider the following example wherepis the probe andnthe nozzle:now the offset in x direction is increased:
The probe point remains the same, but it might not be possible to reach that position anymore, because the nozzle is too far from the bed. The
use_probe_xy_offsetshelps when the probe offset changes, but it does not have a concept of where the bed is or account for the axis limits, resulting in potential crashes into the bed or move out of bounds errors.In the PR for the
use_probe_xy_offsets, a kalico crew member commented:#500 (comment)
Suggesting that this feature is desirable.
Checklist