Marlin´s linear advance – Step by step

8 Replies

3D Printer Marlin

Recently I have read a lot about this feature of Marlin, Linear Advance, so I am going to show you what I have learnt some days ago.

What linear advance is?

Is a very interesting feature of Marlin, that maintain constant the pressure inside the nozzle.

Ok, and what is the meaning of that?

As the pressure is constant, the change of speed during the printing does not affect to the quality of it, so the critical areas are pinted better. You will see a huge difference, specially on the corners.

Another good thing, is that you have well configured this feature, the jerk is not important if you use Marlin 1.1.x, and you can print faster withour loosing quality on your prints.

The last advantage is that the dimensional accuracy is increased a lot.

How can I configure it?

Activate this feature is as easy as uncomment the line that you can see below on configuration_adv.h file:

Linear Advance

Now, with the feature become active, we are going to see how to setup K parameter, that is the parameter that manages the pressure inside the nozzle.

On the Marlin web, there is a tool to generate a configuration pattern.

You must fill in the parameters required and is very important to set on the pattern section set Lin Advance Version to 1.0 if you use Marlin 1.1.x, or 1.5 if you use Marlin 2.0.

Anothe important is the Ending Value for K, if you use Bowden, put at least 200 as value and increase K-Stepping Value to 10, because Bowden values are higher than with direct extruder.

Here you can find an screenshot with the values that I have used.

Linear Advance Pattern

Once the form is filled, click on “Generate G-Code” button and you will see the generated G-Code on the right side on the screen, then download the G-Code and print it.

When you print the G-Code you will get something like that:

Patron Linear Advance

On the righjt side you will see K value, and you must choose the most constant line. I choose a K value of 140.

And later?

As the K value change with the material that are using to print os better to set the K value with a G-Code.

In order to do that, I add to the initial script the G-Code to setup K value.

Simplify Linear Advance

After that, you must print some test pattern that I have found on this blog, you can find the stl here.

After perform some test, I set K of 140 for PLA.

What do you feel?

He feel the following things:

  • The quality of printed things has increased a lot
  • With linear advance jerk value does noot affect the printing quality, so you can print faster without loosing quality
  • Ghosting is over


  1. Dale

    Thanks for this article. It was very helpful. I’m not clear why you chose a K value of 140? When I look at the printed output, it looks like everything >180 look better than the 140 line. I almost wonder if a value higher than 220 would look even better?

    1. Mr. Appz Post author

      First of all, sorry for the delay on answering you.
      The value must be the lower you can, because ir you put this value too high, when you are printing there is a possibility of underflow.

    1. Mr. Appz Post author

      Hi Elvis,

      It depends on a lot of factors, linear advance with a direct extruder is like you said, but when you have a bowden extruder, the amount is increased due to the delay that the PTFE tube cause on the filament.

      On a direct extrusion the lag between the order is receveied and committed is almost nothing, but with a bowden the inertia of the fillament is bigger and the amount of linear advance is bigger too in order to comit the action on the hotend.

    1. Mr. Appz Post author

      Hi Elvis,

      Each machine is different, so I agree with the lerdge website and you must perform some test to achieve the best result for your machine with linear advance.

      As you wrote on your previous message, my values seems to be too high, but this is the result after performing a lot of test 🙂

      Thank you for your comments 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *