Linear advance calibration technique


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?


Posted 2020-01-28T22:00:17.627

Reputation: 5 311

Note that while this is a self-answer, I'm open to more/better answers too. – R.. GitHub STOP HELPING ICE – 2020-01-28T22:12:29.087



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.


Posted 2020-01-28T22:00:17.627

Reputation: 5 311

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. – towe – 2020-01-29T07:48:55.143


You can use Klipper tuning tower and change the K value at each layer using Gcodes. You can find the model here:

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


Posted 2020-01-28T22:00:17.627

Reputation: 2 532