K-factor Calibration Pattern

The below Javascript will generate G-Code that will support the user in calibrating the K-factor for Marlin's Linear Advance Feature. The default values should work for a standard PLA material with a 0.4 mm nozzle.

Press the Generate G-code button then Download as file to save the result.

Settings

G-code

Printer:

Diameter of the used filament (mm)
Diameter of the nozzle (mm)
Nozzle Temperature (°C)
Bed Temperature (°C)
Retraction distance (mm)
Layer Height (mm)

Print Bed:

Rectangular or round bed. Round beds will activate Origin Bed Center
Size (mm) of the bed in X
Size (mm) of the bed in Y
Use to move the origin position (x 0, y 0) to bed center instead of front left corner

Speed:

Use mm/s instead of mm/min
Slow printing speed
Fast printing speed. This should differ noticeably from Slow Speed
Movement speed
Set printing acceleration (mm/s^2)
Set the Jerk for the X-axis. -1 to use firmware default
Set the Jerk for the Y-axis. -1 to use firmware default
Set the Jerk for the Z-axis. -1 to use firmware default
Set the Jerk for the Extruder. -1 to use firmware default

Pattern:

Select version 1.0 for firmware 1.1.8 or lower and 1.5 for 1.1.9+ and 2.0+
Select standard or alternate pattern
Starting value for the K-factor. Usually 0 but for bowden setups you might want to start higher, e.g. 30
Ending value of the K-factor. Bowden setups may be higher than 100
Stepping of the K-factor in the test pattern. Needs to be an exact divisor of the K-factor Range (End - Start)
Length of the Slow Speed test-line (mm)
Length of the Fast Speed test-line (mm)
Distance between the test lines. This will impact print size
Adds a frame around the start and end points of the test lines. May improve adhesion
Rotates the print in 45° steps
Prints the K-value besides every second test line

Advanced:

Ratio between nozzle diameter and extruded line width. Should be between 1.05 and 1.2
Offset the Z-axis for manual Layer adjustment
Level bed before printing. Bed leveling has to be activated
Usually 1.0
Prime the nozzle before starting the test pattern
The default of 2.5 results in roughly 1mm of filament for 10mm line length
Inserts a pause of x seconds before starting the test pattern to bleed off any residual nozzle pressure

Notes on the settings:

  • Fast Printing Speed and Slow Printing Speed should be significantly different or the K-factor effect will barely be visible.
  • Use Bed Leveling requires a probe.
  • For round beds the option Origin Bed Center is automatically activated.
  • The overall width (X-direction) of the print depends on the Fast Speed Length and Slow Speed Length settings plus 5 mm for the priming line. The length (Y-direction) depends on the K-factor Settings and Line Spacing.
  • The script performs sanity checks if the print fits on the bed. Verify it using a host software like Printrun or Repetier Host.
  • Start and End Value for the K-factor determines the range that the test pattern will cover. For example a Start Value of 50 and an End Value of 150 will test a range of 100.
  • The K-factor Stepping determines how many test lines are printed for the above range. For example, a Stepping of 10 and a range of 100 results in 10 test lines. A stepping of 3 would not work in this example as 100 cannot be exactly divided by 3. The script will throw an error message if an exact division is not possible. In this case either the range or the stepping needs to be adjusted.
  • The Alternate Pattern has a second line of Fast Printing Speed to test 0 to Fast Printing Speed and back to 0 conditions. Best used with an increased Test Line Spacing and reduced K-factor range.
  • The proper K-factor depends on the filament, nozzle size, nozzle geometry and printing temperature. If any of these values change, the calibration might need to be repeated.

Screen-shots

The following screen-shots show some examples of the test patterns

  • Blue Lines are Slow Printing Speeds
  • Red Lines are Fast Printing Speed
  • Light blue lines are movements

Standard Pattern

StandardPattern


Alternate Pattern with increased Test Line Spacing

AlternatePattern


Standard Pattern with Frame

FramePattern


45° rotated Alternate Pattern

RotatedPattern