MarlinFirmware / MarlinDocumentation

Marlin Firmware Documentation Project
https://marlinfw.org
GNU General Public License v3.0
366 stars 764 forks source link

Input shaping calibration pattern #524

Closed KimmoHop closed 7 months ago

KimmoHop commented 8 months ago

Input shaping calibration pattern from tombrazier converted from Python to JS + page for Marlin Documentation.

FR: https://github.com/MarlinFirmware/Marlin/issues/26166

More instructions to interpret results + images from X and Y damping factor are needed.

Calibration page uses same styles as K-factor calibration page (because it's shameless copy), adding new styles to its own file, when needed.

dbuezas commented 7 months ago

Very cool! The speed at which the bed is risen doesn't respect the travel speed set int UI It is like this regardless of the UI setting (I had it set to 1000)

G1 Z10 F100; Z raise

100 looks hilariously slow :)

KimmoHop commented 7 months ago

G1 Z10 F100; Z raise



100 looks hilariously slow :)

It does take a while to end :D It should be x60 (mm/s vs mm/min) :/

Another thing that came to my mind is clearing gcode when starting generating & not allowing saving empty (or worse - old) files in case of error. + syntax things, though I'm happy how it turned out overall :)

dbuezas commented 7 months ago

Yeah, it's taking shape very nicely, congrats!

A couple of things that cought me off guard (I'm new to marlin 2 and all these shananigans):

A sentence about these in the docs may help newbies like me :)

KimmoHop commented 7 months ago
  • I had to disable linear advance

Code has M900 K0 at the beginning (and reloads good values from eeprom at the end). Does it not work? Do you have Klipper?

  • And also max out joint deviation

Code has M205 J0.3 (from original python script) for frequency sweeps. Is that a little or a lot?

  • I'm still unsure what the damping does or how to interprete the results. I ended up making a ringing tower swiping zeta, which to my surprise threw the vest results at zeta=0.

A sentence about these in the docs may help newbies like me :)

We are in the same boat ;) I guess the line in the pattern that is most uniform, is the correct. Damping frequencies must be set before zeta calibration. My zeta print for X is committed as a base, though not to be trusted even by me.

My zeta print for Y looked like this, not very easy to read :D image

dbuezas commented 7 months ago

Oh my mistake, I made so many tests woth this and the ringing tower that I mixed things up:

This test was way more clear than the towers for frequency. Regarding zeta, i went for the ringing tower and zeta = 0 looked best, which I don't understand, so 🤷 . A suggestion/request: to draw a ruler and the axis (x/y) before each of the frequency patterns (like PA calibrations do)

thinkyhead commented 7 months ago

"Printer may skip layers at or above the resonant frequency."

This is probably confusing. Whole layers can't be skipped. That makes a mess. What does this really mean? Please rephrase.

KimmoHop commented 7 months ago

"Printer may skip layers at or above the resonant frequency."

This is probably confusing. Whole layers can't be skipped. That makes a mess. What does this really mean? Please rephrase.

True + pattern is single layer. I'll fix that. On Marlin side issue I'm waiting better instructions how to interpret results.

KimmoHop commented 7 months ago

I will print new patterns and scan or shoot them properly + draw images for "theory" section

thinkyhead commented 7 months ago

I went ahead and did further cleanup on this and the K-factor code to make it a bit smaller and (theoretically) easier to extend by using more arrays of element names and matching dictionary keys to field names. Everything still seems to work fine in my local Jekyll, but please check that it's still generating good G-code.

KimmoHop commented 7 months ago

I created another PR for TODO images https://github.com/MarlinFirmware/MarlinDocumentation/pull/528/files