Marlin has a Linear Advance calibration pattern generator, but I find it's hard to use because:

  • It only prints the initial layer on the bed, where bed irregularities interfere with accurate reading of it.
  • It doesn't do proper retraction and priming, so a mess of strings and underextruded initial segments/non-adhesion mess up the results.
  • It's hard to visually evaluate.
  • Getting a very wide range of K values involves multiple runs.
  • It's hard to clean up.

Is there a better procedure for calibration of K value for linear advance?

  • $\begingroup$ Note that while this is a self-answer, I'm open to more/better answers too. $\endgroup$ Jan 28 '20 at 22:12

The same effect as Marlin's test pattern, with alternation between fast and slow segments, can be achieved with a skewed tower and Cura's overhang settings, providing the opportunity to interactively adjust K value during the print, or insert changes at particular layers in the gcode for automated test towers.

I'm using the following OpenSCAD to make a skewed cylinder:


with Cura set to:

  • no top/bottom layers or infill
  • single walls
  • treat walls with 1° overhang as overhangs
  • print overhangs at 25% speed

These values can of course be tuned, but the extreme low overhang angle and 8/1 slope is to prevent actual physical overhang-printing considerations from messing up the test.

Vase mode might work even better for this if it supports overhang settings, since it would avoid the layer seam.

  • $\begingroup$ Nice. I've been using the Marlin pattern in the past for Klipper's Pressure Advance, but there are some really disgusting features hidden in the g-code that's generated. $\endgroup$
    – towe
    Jan 29 '20 at 7:48

You can use Klipper tuning tower and change the K value at each layer using Gcodes. You can find the model here: https://www.thingiverse.com/thing:3957406

I find easier to see the best results this way, also you can test way more settings in a single run, while the Marlin pattern generator lets you test only few values at time.

Remember to print without infill.

enter image description here


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.