Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Is M425 available for new calibration feature? #10826

marcio-ao opened this issue May 23, 2018 · 3 comments


None yet
2 participants
Copy link

commented May 23, 2018

The short version is we would like to use "M425" for backlash compensation and we wanted to ask whether this could conflict with any future planned uses. If so, whether there would be a better choice. The second question is whether there is an interest in incorporating this feature upstream.

The long version is that our Mini 2 uses belts for the Z axis and despite our best efforts to reduce backlash to the minimum, we found that the backlash is sufficient to cause noticeable thickness inconsistencies in the first layer. We believe that this problem will always be present in designs that use belts on the Z axis. We devised a routine for measuring Z backlash automatically during G29 and found that software backlash compensation does wonders for the first layer. However, this comes at the expense of artifacts on the rest of the print. In particular, any rapid motions of the motor to try to take up any backlash will inevitably create a small pause and vibration, leading to a seam in the print. We devised a smoothing algorithm that allowed backlash correction to be gradually applied over a distance, this eliminated any harsh transitions, which again lead to a huge improvement. Alas, we learned that the feature was very sensitive to the variances in the printer build, working amazingly well in some cases, but leading to a degraded quality other printers. This perhaps is a feature that could be used by someone who wished to hand tune the algorithm, but not something we could use in a mass produced printer.

Our current best solution is to simply apply the feature on the first layer, where it makes a huge difference on the first layer quality, while turning it off for subsequent layers where quality isn't guaranteed.

Our current implementation works as such:

  • G29 measures the backlash on Z during the probe routine. This is done by reading the probe pin while raising off each probe point and measuring the distance traveled before contact is lost.
  • G29 stores this measured value in a variable.
  • M425 is introduced to allow the user to enable and tune the backlash compensation.
  • "M425 Z" after a "G29" enables backlash compensation with the measured value.
  • "M425 Z" enables backlash compensation with a user specified value.
  • "M425 S" sets the smoothing distance, a value of 3 mm seems to work good.
  • "M425 F" sets a value from 0 to 1 which is multiplied by the backlash distance. This command is meant for use by the slicer, and allows it to "fade" away the backlash compensation gradually over several layers, or to turn it off completely after the first layer (with a "M425 F0").

We want to add this feature to our FW and to our slicer, but ideally in a way that won't cause future conflicts with the choice of "M425".

Please let me know if anything else would be better! Thank you for any feedback!

-- Marcio


This comment has been minimized.

Copy link
Contributor Author

commented May 25, 2018

@thinkyhead: Do you have any issues with us defining "M425" or the modifications to G92 (#10848)? We need to get moving on this and need to know whether this would introduce any conflicts down the line.


This comment has been minimized.

Copy link

commented May 25, 2018

The M425 code should be fine. See my note on #10848 concerning G92. There is a "backlash compensation" topic (#7579) in the issue queue. You might want to check in on that conversation and see how it aligns with this proposal.


This comment has been minimized.

Copy link
Contributor Author

commented Aug 20, 2018

Closing this since the question has been answered.

@marcio-ao marcio-ao closed this Aug 20, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.