Probe points alternating order#882
Open
HjortCreations wants to merge 19 commits intoKalicoCrew:mainfrom
Open
Conversation
Moves alternating probe order support into ProbePointsHelper so the behavior can be reused by QGL, Z_TILT, and other probing workflows. When enabled, full probing passes alternate physical travel direction: Pass 1: 0 -> 1 -> 2 -> 3 Pass 2: 3 -> 2 -> 1 -> 0 Pass 3: 0 -> 1 -> 2 -> 3 When probing in reverse order, results are inserted at the front of the result list so callers still receive probe results in the original logical point order. This avoids special handling in quad_gantry_level.py and reduces repeated cable, Bowden tube, umbilical, and filament path twisting on large-format machines during repeated retries. The implementation is inspired by Lazar at Modix3D and his RepRapFirmware approach.
dalegaard
requested changes
Apr 30, 2026
Adds documentation for alternate_probe_direction and start_reverse in the QGL and Z_TILT config reference sections, and lists the new probing behavior in Kalico additions.
Replaces probe pass index tracking with a boolean direction state, removes report_probe_order, and inlines probe point index selection as requested in review.
Removed unused probe order reporting and reverse pass logic.
Updated documentation to reflect new features and changes in Kalico.
Author
|
Everything should be fixed now and the code is working with both QGL and Bed Mesh |
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.
Adds optional alternating probe order support to
ProbePointsHelper.This allows probing workflows that use
ProbePointsHelper, such as QGL, Z_TILT, and other multi-point probing routines, to alternate the physical travel direction between full probing passes while still returning probe results in the original logical point order.Example config:
alternate_probe_direction: True # start_reverse: FalseWhen enabled, full probing passes alternate like this:
Pass 1: 0 -> 1 -> 2 -> 3
Pass 2: 3 -> 2 -> 1 -> 0
Pass 3: 0 -> 1 -> 2 -> 3
When probing in reverse order, the measured results are inserted at the front of the result list. This means callers still receive results in the same logical order as before, so existing leveling math does not need special handling.
The main benefit is on large-format machines where repeated retries can otherwise make the toolhead travel around the bed in the same direction over and over again. Alternating the order reduces accumulated twist in Bowden tubes, filament paths, umbilicals, CAN cables, and other cable bundles.
It also avoids an unnecessary travel move between retry passes. With the current fixed order, a new pass starts again at point 0 after the previous pass ended at the last point, for example:
Pass 1: 0 -> 1 -> 2 -> 3
Extra travel: 3 -> 0
Pass 2: 0 -> 1 -> 2 -> 3
With alternating order, the next pass starts where the previous pass ended:
Pass 1: 0 -> 1 -> 2 -> 3
Pass 2: 3 -> 2 -> 1 -> 0
This makes the travel path shorter and more natural, especially on machines with large beds.
The feature is disabled by default and should preserve existing behavior unless explicitly enabled in config.
The implementation is inspired by Lazar at Modix3D and his RepRapFirmware approach.
Test video
Tested on a QGL machine with
alternate_probe_directionenabled.Checklist