Add integrated Axis Twist Compensation for BDsensor on Klipper#246
Draft
Reubertt wants to merge 3 commits intomarkniu:newfrom
Draft
Add integrated Axis Twist Compensation for BDsensor on Klipper#246Reubertt wants to merge 3 commits intomarkniu:newfrom
Reubertt wants to merge 3 commits intomarkniu:newfrom
Conversation
Author
|
I have implemented the
|
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.
Description
This Pull Request introduces integrated Axis Twist Compensation support directly into the BDsensor module for Klipper. This feature allows for more accurate bed leveling by compensating for mechanical twist in the X or Y axes, which is common in many printer kinematics.
Key Changes
BDSENSOR_AXIS_TWISTcommand.X,Y, orBOTHaxes.DEGREE=0) that automatically selects the best polynomial degree (1-4) to fit the measured twist data, preventing overfitting.DEGREEparameter.POINTSparameter (default: 20).scan_sample_eventto apply the calculated axis twist compensation in real-time during probe scanning. This uses a cosine interpolation method consistent with Klipper's nativeaxis_twist_compensationmodule.polynomial_regression,eval_poly) to handle the curve fitting internally without external heavy dependencies.How to Use
G28).BDSENSOR_AXIS_TWISTto calibrate both axes automatically.BDSENSOR_AXIS_TWIST AXIS=Xto calibrate only X.BDSENSOR_AXIS_TWIST DEGREE=2to force a 2nd-degree polynomial fit.SAVE_CONFIGto persist the compensation values to yourprinter.cfg.Implementation Details
This enhancement significantly improves first-layer consistency on printers with axis twist issues.