Klipper3d / klipper

Klipper is a 3d-printer firmware
GNU General Public License v3.0
8.93k stars 5.15k forks source link

Add motor resonance reduction to shapers. #6556

Open andrewmcgr opened 2 months ago

andrewmcgr commented 2 months ago

This adds an MZV shaper with configurable parameters to each axis.

Zeanon commented 2 months ago

Could you elaborate a little on how one would calibrate those params? I was already pretty intrigued when frix posted the initial pr to increase the amount of shaper pulses so I would love to try that out

andrewmcgr commented 2 months ago

You'd, for example, use a recent version of K-ShakeTune to find your motor resonance and damping factor for each axis (they'll be the same for, e.g., corexy).

github-actions[bot] commented 1 month ago

Thank you for your contribution to Klipper. Unfortunately, a reviewer has not assigned themselves to this GitHub Pull Request. All Pull Requests are reviewed before merging, and a reviewer will need to volunteer. Further information is available at: https://www.klipper3d.org/CONTRIBUTING.html

There are some steps that you can take now:

  1. Perform a self-review of your Pull Request by following the steps at: https://www.klipper3d.org/CONTRIBUTING.html#what-to-expect-in-a-review If you have completed a self-review, be sure to state the results of that self-review explicitly in the Pull Request comments. A reviewer is more likely to participate if the bulk of a review has already been completed.
  2. Consider opening a topic on the Klipper Discourse server to discuss this work. The Discourse server is a good place to discuss development ideas and to engage users interested in testing. Reviewers are more likely to prioritize Pull Requests with an active community of users.
  3. Consider helping out reviewers by reviewing other Klipper Pull Requests. Taking the time to perform a careful and detailed review of others work is appreciated. Regular contributors are more likely to prioritize the contributions of other regular contributors.

Unfortunately, if a reviewer does not assign themselves to this GitHub Pull Request then it will be automatically closed. If this happens, then it is a good idea to move further discussion to the Klipper Discourse server. Reviewers can reach out on that forum to let you know if they are interested and when they are available.

Best regards, ~ Your friendly GitIssueBot

PS: I'm just an automated script, not a human being.

dmbutyugin commented 1 month ago

This can be an interesting feature indeed. And code-wise, it is rather straightforward. However, it would be great to see some quantitative effect of this feature. Which could be, for instance, measuring the resonance frequency of the steppers on a few printers, showing the value of those frequencies and if/how these resonances affect the printing (e.g. artifacts on the model, audible noise (at accelerations/decelerations?), etc.), and what does this feature do to it. Perhaps Klipper discourse could be a great starting point for these discussions.

Frix-x commented 1 month ago

@dmbutyugin just for reference, https://github.com/Klipper3d/klipper/pull/6460 was done in order to implement this. Andrew and I are discussing a lot together and with other Voron contributors about this on Discord. There are already a few people experimenting with it.

It's pretty hard to quantify the effects directly, because we had different results depending on the machines:

dmbutyugin commented 1 month ago

Well, the point is, if the benefits of the change are unclear, then it should probably be in some experimental branch until the change is refined. So that's why I was asking questions how does it affect the prints. And (but this is mostly my curiosity), what are the typical resonance frequencies of the motors?

At high-level, it seems counter-intuitive that you could get better microstepping (and avoid resonances of the motor) by applying an input shaper tuned for a stepper motor frequency. This is because: