Linear Advance for Prusa MK2

To get a full understanding of Linear Advance please follow this link.


Source: Marlin

Under default conditions, extruder axis movement is treated in the same way as the XYZ linear axes. The extruder motor moves in linear proportion to all the other motors, maintaining exactly the same acceleration profile and start/stop points. But an extruder isn’t a linear system, so this approach leads, most obviously, to extra material being extruded at the end of each linear movement.

Take the common test-cube as an example. Even with the best tuning the corners are usually not sharp, but bleed out. The top solid infill displays roughness where the print direction changes on perimeters. These problems are minor or even imperceptible at low printing speeds, but they become more noticeable and problematic as print speeds increase.

Tuning the flow can help, but this may lead to under-extrusion when starting new lines. Some slicers include an option to end extrusion early in each move, but this adds more complexity to the G-code and has to be re-tuned for different temperatures and materials.

Since the root cause is pressure, LIN_ADVANCE de-couples extrusion from the other axes to produce the correct pressure inside the nozzle, adapting to the printing speed. Once Linear Advance is properly tuned, bleeding edges and rough solid infill should be nearly eliminated.


Better dimensional precision due to reduced bleeding edges.
Higher printing speeds are possible without any loss of print quality.
Visible and tangible print quality is increased even at lower printing speeds.
No longer need high acceleration and jerk values to get sharp edges.

Below I have compiled versions for the Prusa i3 MK2 based on version 3.0.12-RC2 3.1.0-RC1 as well as for the Prusa MK2 Haribo Edition.
Each version can be flashed to your printer using the Prusa Firmware flashing tool available here.

You can adjust the K values for Linear Advance by issuing the following command thru Pronterface or with a starting gcode added to your start script. M900 K40.

Photo courtesy of Ismael Feliciano

Good K value ranges are somewhere between 20 and 150. You should experiment to determine which value works best for you. By default the firmware has the K value set at 45. After you have issued the command you can save the value to eeprom with the M500 command.

Note: In your slicing tools you should disable any coast settings as well as any wipe settings to receive the most benefit from the Linear Advance feature. Additionally you can further benefit by turning off or down retraction as well.

Command Documentation:

Firmware with Linear Advance enabled

Original Prusa Firmware but better

These firmware versions are in addition to the Original Prusa Firmware for the MK2 & MK2s with only the addition of the Linear Advance functions enabled.

Please pay attention to the Versions below and select the proper version for your printer.Flashing with the bootloader version is preferred.
Prusa i3 MK2

Download “Firmware Linear Advance Prusa i3 MK2” – Downloaded 324 times – 433 KB

Haribo 3030

Download “Firmware Linear Advance Haribo 3030” – Downloaded 308 times – 432 KB

Linear Advance Test file for print

Download “Linear Advance Test File” – Downloaded 255 times – 811 B

Prusa i3 MK2 Multi Material

Download “Firmware Linear Advance Prusa i3 MK2 Multi Material” – Downloaded 154 times – 444 KB

Haribo 3030 Multi Material

Download “Firmware Linear Advance Haribo 3030 Multi Material” – Downloaded 172 times – 444 KB

Ramps firmware for MK2/s (Does not include Linear advance)

Download “Prusa MK2/s Firmware For Ramps” – Downloaded 153 times – 449 KB

Ramps firmware for Haribo (Does not include Linear advance)

Download “Haribo Ramps Firmware” – Downloaded 99 times – 449 KB

Pre Sliced Gcode for ABS and PLA @80mm/s

Download “Linear Advance Test File Gcode” – Downloaded 222 times – 21 KB

Join in Comment below...