Implement BABYSTEPPING for COREXY and COREXZ #3127
Merged
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.
Background: The
BABYSTEPPING
feature allows you to use the LCD controller to apply steps and adjust positioning at any time, even during a print in progress. The low-level part of this feature applies directly to steppers ("ABC"). The user interface and configuration are both specified to move the "XYZ" axes. SoBABYSTEPPING
is a "convenience" feature, not a "hack" feature. This PR "breaks" the single-stepper aspect ofBABYSTEPPING
but it does the right thing that you would want on a CoreXY or CoreXZ machine, namely applying babysteps to more than one stepper.This change is applied in the
_lcd_babystep
function and doesn't touch the babystepping handler in the temperature.cppISR(TIMER0_COMPB_vect)
. For a more universal and transparent application ofBABYSTEPPING
the low-level babystep handler could be changed instead. I've left that code alone because there may be reasons we want to keep "untranslated" babystepping for individual steppers in place for a later feature.References: #2935, #3060