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

Input shaping for Z axis #27073

Merged
merged 9 commits into from
May 20, 2024

Conversation

JonBr306
Copy link
Contributor

@JonBr306 JonBr306 commented May 9, 2024

Description

Extended ZV input shaping so it can be done in the Z axis enabling certain types of kinematics (Delta, CoreXZ and CoreYZ) to use ZV input shaping now. Some cartesian machines may also benefit from this.

Requirements

Input shaping enabled.

Benefits

Z Axis can now be input shaped.

Configurations

Enable INPUT_SHAPING_Z

Related Issues

Copy link
Contributor

@tombrazier tombrazier left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am happy with these changes. @JonBr306 collaborated with me and I have reviewed everything and done some testing. More testing would be desirable from those with printers that will most benefit like deltas and core*z.

@thisiskeithb thisiskeithb added the Needs: Testing Testing is needed for this change label May 9, 2024
thinkyhead added a commit to MarlinFirmware/Configurations that referenced this pull request May 20, 2024
@thinkyhead
Copy link
Member

thinkyhead commented May 20, 2024

This is great work and perfectly maintains the quirky Marlin style for the added macros. Merging shortly!

@thinkyhead thinkyhead merged commit 6b6865d into MarlinFirmware:bugfix-2.1.x May 20, 2024
62 checks passed
thinkyhead pushed a commit that referenced this pull request May 22, 2024
@dbuezas
Copy link
Contributor

dbuezas commented May 25, 2024

A bit late to the party but I started tuning it and got some results.

Here's my procedure on a modernised Ultimaker 2.

1. Rough frequency tuning

  • Set zjerk and acceleration fairly high
  • Setting zhop:normal to 0.2mm in Orca Slicer
  • Print some parallel lines
  • Measure the spacing of the bumps
  • frequency = first_layer_speed / bump_distance. In my case I got 22Hz

2. Rough damping factor tuning

  • Configure zhop:normal and then print sequence: by object in orca slicer
  • In printing by object G-Code*: M593 D{current_object_idx/49.0} F22 Z
  • Printed this pattern:
    image
  • Found the one that looked best. It was D0.05

3. Final frequency tuning

  • Same as damping but now with M593 D0.05 F{20+current_object_idx/49.0*4} Z
  • The 18th from the bottom looked best (almost perfect!).
image * Found the one that looked best. It was 21Hz

Final Damping tuning.

  • Repeated the process with M593 D{current_object_idx/100.0} F21 Z
  • Found the best. It was D0.03

Before and after

image

The bottom half with Z input shaping disabled, top half with it enabled and fine tuned. I'm very impressed!
This is a single layer, if this was a wall, the bouncing would have compounded. FANTASTIC WORK!

@dbuezas
Copy link
Contributor

dbuezas commented May 25, 2024

By the way, this effect was made obvious by having high zjerk, zaccel and zhop, which I can now keep as defaults. I believe this explains the elusive and sporadic holes in some places I had given up on fixing.
Also I always printed stuff as close as possible to the back of the machine to avoid bouncing. I think it will be less of an issue now.

@tombrazier
Copy link
Contributor

Fantastic results.

@dbuezas
Copy link
Contributor

dbuezas commented May 26, 2024

I just realised This has improved my z-seams too!

@tombrazier
Copy link
Contributor

I just realised This has improved my z-seams too!

That sounds interesting but I don't know what you mean by z-seams. Could you elaborate?

@dbuezas
Copy link
Contributor

dbuezas commented May 27, 2024

Given that your contributions include input shaping and lots of LA improvements, I bet you have optimised quality so much that you forgot what they were :)

I mean these: (not my image)
image

I assume the bouncing was making the beginning of extrusions (e.g on layer changes) uglier.

@tombrazier
Copy link
Contributor

Oh, I wondered if that was what you meant but couldn't think why Z input shaping would help. But it's pretty obvious from that picture that the bounce is causing the narrow then wide print path. What a great additional benefit.

@dbuezas
Copy link
Contributor

dbuezas commented May 30, 2024

Exactly. The image is not mine, I should make a print myself with and without IS z enabled. It wasn't consistently terrible because I had my z accel and jerk so low, to reduce the bouncing.

@ant0nyk1ng
Copy link

@dbuezas is it possible to get your config files. I have a new large Delta build and I would like to try this out.

@thisiskeithb
Copy link
Member

is it possible to get your config files. I have a new large Delta build and I would like to try this out.

@ant0nyk1ng: An Ultimaker 2 will have very different values than a delta. Values will also vary from identical machine to identical machine.

Since this PR is merged, grab the latest bugfix-2.1.x and enable INPUT_SHAPING_X, INPUT_SHAPING_Y, & INPUT_SHAPING_Z (all three are required for deltas) and then tune to your machine.

Hop on our Discord server if you need further help.

@ant0nyk1ng
Copy link

is it possible to get your config files. I have a new large Delta build and I would like to try this out.

@ant0nyk1ng: An Ultimaker 2 will have very different values than a delta. Values will also vary from identical machine to identical machine.

Since this PR is merged, grab the latest bugfix-2.1.x and enable INPUT_SHAPING_X, INPUT_SHAPING_Y, & INPUT_SHAPING_Z (all three are required for deltas) and then tune to your machine.

Hop on our Discord server if you need further help.

Ok cool I will... I was interested to see his "high jerk" values and you just answered the other "all three are required for deltas" but yeah I totally missed the fact he was using a Ultimaker.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C: Motion Needs: Testing Testing is needed for this change PR: Improvement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[FR] Support for Z-Axis Input Shaping
6 participants