Linear advance

localgost
Posts: 9
Joined: 14 Sep 2017, 15:31

Linear advance

Post by localgost »

Hi everyone.

Since a couple of month the Marlin firmware supports a nice feature called Linear Advance

It is a very promising feature and I would like to useit with KISS (the increased speed possibilities are insane). I know that I just have to add a K-Value in the Material G-code section but I wasn't able to add this to the resulting gcode file.

I found a topic talking a bit about this.

Anyhow, has anybody already used Linear Advance with KISS? Does it interfere with Preload? If so, do I have to take of something when using LA?
What speed settings did you use when using LA?

Thanks in advance for your help!

Hope you all had a great start into 2018

Regards

Manu
User avatar
woody3dp
Posts: 65
Joined: 07 Sep 2017, 09:35

Re: Linear advance

Post by woody3dp »

I was asking myself exactly the same question. I own a prusa mk2.
localgost
Posts: 9
Joined: 14 Sep 2017, 15:31

Re: Linear advance

Post by localgost »

woody3dp wrote:I was asking myself exactly the same question. I own a prusa mk2.
Me too! And with the latest Slic3r profiles provided by Prusa the prints are way faster than with KISS without loosing print quality. Since KISS has a couple of features I would like to remain using KISS. And integrating LA and increasing speeds with KISS would be awesome 8-)
Jfaurbo
Posts: 1
Joined: 16 Jan 2018, 10:56

Re: Linear advance

Post by Jfaurbo »

Bump... Looking for an answer to this as well.

Tried to read the post on preload... But couldn't understand it all.
Dreide
Posts: 66
Joined: 07 Nov 2014, 15:23

Re: Linear advance

Post by Dreide »

My take on it is that Preload is supposed to do basically the same thing as LA, so using both at the same time is probably not the best idea. There are differences between LA and Preload though, for example Preload, I think, can generate pure E moves, which is especially useful with Bowden extruders. On the other hand, LA always goes along with XY moves (at least in the Repetier implementation). Anyway, if you are using LA, better set PreloadVE to 0 for disabling the Preload feature.
So far, I have never have used preload, let alone KISSlicer v1.6, but I guess with PreloadVE=0 the acceleration value provided in the Printer/Speed tab is only used for computing the printing time (which is the same as it was in previous versions). I mention this here because I rarely see the acceleration parameter being discussed, which I find weird given that it is a rather important parameter when it comes to print quality. I think this parameter is often neglected because it is usually only as a firmware parameter. And it might be set to some maximum that can be safely (but not necessarily quietly) handled by the motors and the printer mechanics, without taking print quality into account. However, using lower values puts less stress on the mechanics and reduces preload problems in the first place, without cutting too much into printing time. So if you are out for higher printing speeds, also consider playing with the acceleration value. In my printer prefix I have the line

Code: Select all

M201 X<ACCEL> Y<ACCEL>
for making sure that the value set in Printer/Speed is actually also used by the firmware. BTW, M201 refers to printing moves only, M202 refers to travel moves.
For setting the linear advance factor, Repetier and Marlin apparently use different M-codes (Repetier: M233 Y<factor> Marlin: M900 K<factor>).
User avatar
pjr
Posts: 692
Joined: 05 May 2015, 10:27
Location: Kamnik, Slovenia

Re: Linear advance

Post by pjr »

Preload does not do the same as LA, although they do overlap at the start and end of a path.

LA functions for example, at corners of cubes, whereas Preload does not.

I have no problems in combining the two and getting the benefits of both.

LA settings are best applied in the top-left box of the Matl G-code tab of the settings window and then use the <MATL> variable in the "Select New Ext & Warm" tab of the Printer G-code tab on the settings window. Obviously you have the set the LA value for each material.

Peter

BTW, acceleration values on the Prusa "Original" printers are set way to high for the hardware and it is essential that you set reasonable values within the slicer/G-code. Unless you happen to use Slic3r which apparently generates G-code based on acceleration values.
sinned6915
Posts: 55
Joined: 28 Nov 2017, 10:06

Re: Linear advance

Post by sinned6915 »

Peter et al-
At the risk of hijacking the thread, I have been trying to test drive klipper firmware.

It uses a Pressure Advance algorithm that is described here-
https://github.com/KevinOConnor/klipper ... Advance.md

You can not disable the Pressure Advance in the firmware apparently.

it seems to conflict with the PreloadVE functions. The error in klipper is that the extruded area exceeds the limit of 4 times the nozzle diameter squared, or 0.64mm^2.

Thing is, the reason I use KISS is that it just makes such nice prints for me in PETG pretty much because of the PReloadVE function, I am hard pressed to give it up and disable it.

It seems that some soft of filament advance is an upcoming feature we are going to have to deal with. klipper errs out with gcode sliced with the Preload function, but I can imagine the case where both kick in with unknown results.

How can we disable the PreloadVE function? Is it as simple as setting it to 0?
What other settings are tied to it?

Dennis
Dreide
Posts: 66
Joined: 07 Nov 2014, 15:23

Re: Linear advance

Post by Dreide »

sinned6915 wrote:Peter et al-
At the risk of hijacking the thread, I have been trying to test drive klipper firmware.

It uses a Pressure Advance algorithm that is described here-
https://github.com/KevinOConnor/klipper ... Advance.md

You can not disable the Pressure Advance in the firmware apparently.
I am not using Klipper (yet), but I think you can just comment out the ADVANCE parameters or set them to zero in the Klipper config file, no? See "pressure_advance" in https://github.com/KevinOConnor/klipper ... xample.cfg. Regarding KISSlicer, PreloadVE=0 apparently disables Preload to some extent but I am not sure in how far this prevents the print path from still being chopped into tiny pieces, which might be the cause of the problems with the firmware in the first place. So you might have to play also with the "Min segment length" setting in the Printer/Hardware tab.
User avatar
pjr
Posts: 692
Joined: 05 May 2015, 10:27
Location: Kamnik, Slovenia

Re: Linear advance

Post by pjr »

Setting Preload to Zero does turn it off.

LA or PA are dependant on many factors so building it into firmware without the ability to adjust or turn off (aka adjust to zero...) doesn't make a lot of sense to me.

Peter
User avatar
pjr
Posts: 692
Joined: 05 May 2015, 10:27
Location: Kamnik, Slovenia

Re: Linear advance

Post by pjr »

Please bare in mind that I am no "expert" nor am I a mathematician, but just a few more thoughts on PA/LA/Preload...

Please feel free to correct any errors (and there will be many)

LA and PA are methods implemented within firmware with (in many instances) full knowledge of hardware limitations and settings (such as acceleration) and extruder geometry, but may not be fully "aware" how filaments behave under compression and at varying temperatures and may also not be aware of nozzle geometry. LA and PA are limited in operation to the content of the read-ahead buffer (16 movement commands?) and so they are not necessarily aware of the whole picture.

LA and PA are intended to reduce under extrusion at the start of an acceleration and reduce over extrusion at the end of a deceleration.

Preload is a method implemented in the slicer/G-code with knowledge of the filament characteristics, the extruder geometry but no knowledge about hardware limitations and settings (such as acceleration).

Preload is intended to reduce under extrusion at the start of a path and to reduce over extrusion at the end of that path, ignoring any acceleration/deceleration which occurs during that path (e.g. at corners).

So what happens if you combine them? Well in my mind, you should get the best of both, if they are both configured correctly. During the preload load and unload stages, acceleration/deceleration are controlled by the slicer/G-code and LA/PA should have a very much reduced effect and the slicer's knowledge of both extruder and filament should generate better results. During acceleration/deceleration in mid-path, PA and LA should operate fully based on the firmware settings.

Jonathan spent a load of time developing the Preload feature; he must have believed it would be worthwhile, especially when you consider LA and PA already existed in some firmwares and was know to be in development in many others.

If it doesn't work for you, just turn it off; you will be no worse of that you were before it was introduced and we were all happy with those results (weren't we???).

The problem is that with the introduction of Preload, we lost some very useful features. Note to developers everywhere (hope you are reading this Jonathan): you can only add new features; you can never remove features, even if you consider them redundant - someone somewhere will be using them and they will be very unhappy.

Peter
Post Reply