K-factor Calibration

K-Factor Calibration Pattern

Du kannst bei marlinfw.org ein Formular (Programm) verwenden, um G-Code zu generieren, den Du zur Kalibrierung Deines Linearvorschub-K-Faktors (Linear Advance) verwenden kannst. Die Standardwerte gelten für Standard-PLA mit einer 0,4-mm-Düse. Eine zusätzliche Video Anleitung (in Englisch) findet Ihr hier.

In das Formular tragt Ihr Eure Daten von Eurem Drucker ein und erzeugt einen gcode welchen ihr ausdruckt. Anhand des Ausdruckes könnt Ihr Euren K-Factor anpassen und den Drucker kalibrieren. Der neue K-Factor kann dann mit dem Befehl z.B. M900 K20 gespeichert werden.

Hinweise zu den Einstellungen:

(Übersetzung von www.marlinfw.org )


– Die schnelle Druckgeschwindigkeit und die langsame Druckgeschwindigkeit sollten sich deutlich unterscheiden, sonst ist der K-Faktor-Effekt kaum sichtbar.

– Die Verwendung der Bettnivellierung erfordert einen Sensor.

– Für runde Betten wird die Option Origin Bed Center automatisch aktiviert.

– Die Gesamtbreite (X-Richtung) des Drucks hängt von den Einstellungen “Schnelle Druckgeschwindigkeit Länge” und “Langsame Druckgeschwindigkeit Länge” plus 5 mm für die Grundlinie ab. Die Länge (Y-Richtung) hängt von den Einstellungen für den K-Faktor und den Linienabstand ab.

– Das Skript prüft, ob der Druck auf das Bett passt. Verifiziere ihn mit einer Host-Software wie Printrun oder Repetier-Host.

– Der Start- und Endwert für den K-Faktor bestimmt den Bereich, den das Testmuster abdeckt. Beispielsweise wird bei einem Startwert von 50 und einem Endwert von 150 ein Bereich von 100 getestet.

– Der K-Faktor-Schritt bestimmt, wie viele Testlinien für den oben genannten Bereich gedruckt werden. Eine Schrittweite von 10 und ein Bereich von 100 ergibt beispielsweise 10 Testlinien. Ein Schritt von 3 würde in diesem Beispiel nicht funktionieren, da 100 nicht genau durch 3 geteilt werden kann. Das Skript gibt eine Fehlermeldung aus, wenn eine genaue Teilung nicht möglich ist. In diesem Fall muss entweder der Bereich oder die Schrittweite angepasst werden.

– Das alternative Muster hat eine zweite Zeile mit schneller Druckgeschwindigkeit, um die Bedingungen 0 bis schnelle Druckgeschwindigkeit und zurück auf 0 zu testen. Am besten mit einem erhöhten Testlinienabstand und einem reduzierten K-Faktor-Bereich verwendet.

– Der richtige K-Faktor hängt vom verwendeten Filament, der Düsengröße, der Düsengeometrie und der Drucktemperatur ab. Wenn sich einer dieser Werte ändert, muss die Kalibrierung möglicherweise wiederholt werden.



Bilder bei www.marlinfw.org
Die folgenden Screenshots zeigen einige Beispiele für die Testmuster

– Blaue Linien sind langsame Druckgeschwindigkeiten
– Rote Linien sind eine schnelle Druckgeschwindigkeit
– Hellblaue Linien sind Bewegungen

Der gcode zum testen kann z.B. so aussehen

; ### Marlin K-Factor Calibration Pattern ###
; ——————————————-
;
; Printer: Delta
; Filament: delta 1
; Created: Wed Feb 12 2020 16:56:34 GMT+0100 (Mitteleuropäische Normalzeit)
;
; Settings Printer:
; Filament Diameter = 1.75 mm
; Nozzle Diameter = 0.4 mm
; Nozzle Temperature = 215 °C
; Bed Temperature = 55 °C
; Retraction Distance = 1 mm
; Layer Height = 0.2 mm
; Z-axis Offset = 0 mm
;
; Settings Print Bed:
; Bed Shape = Rect
; Bed Size X = 220 mm
; Bed Size Y = 220 mm
; Origin Bed Center = false
;
; Settings Speed:
; Slow Printing Speed = 1200 mm/min
; Fast Printing Speed = 4200 mm/min
; Movement Speed = 7200 mm/min
; Retract Speed = 1800 mm/min
; Printing Acceleration = 500 mm/s^2
; Jerk X-axis = firmware default
; Jerk Y-axis = firmware default
; Jerk Z-axis = firmware default
; Jerk Extruder = firmware default
;
; Settings Pattern:
; Linear Advance Version = 1.5
; Starting Value Factor = 0
; Ending Value Factor = 2
; Factor Stepping = 0.2
; Test Line Spacing = 5 mm
; Test Line Length Slow = 20 mm
; Test Line Length Fast = 40 mm
; Print Pattern = Standard
; Print Frame = false
; Number Lines = true
; Print Size X = 98 mm
; Print Size Y = 75 mm
; Print Rotation = 0 degree
;
; Settings Advance:
; Nozzle / Line Ratio = 1.2
; Bed leveling = 0
; Use FWRETRACT = false
; Extrusion Multiplier = 1
; Prime Nozzle = true
; Prime Extrusion Multiplier = 2.5
; Prime Speed = 1800
; Dwell Time = 2 s
;
; prepare printing
;
M104 S215 ; set nozzle temperature but do not wait
M190 S55 ; set bed temperature and wait
M109 S215 ; block waiting for nozzle temp
G28 ; home all axes with heated bed
G21 ; set units to millimeters
M204 P500 ; set acceleration
G90 ; use absolute coordinates
M83 ; use relative distances for extrusion
G92 E0 ; reset extruder distance
G1 X110 Y110 F7200 ; move to start
G1 Z0.2 F1200 ; move to layer height
;
; prime nozzle
;
G1 X61 Y72.5 F7200 ; move to start
G1 X61 Y147.5 E7.4835 F1800 ; print line
G1 X61.72 Y147.5 F7200 ; move to start
G1 X61.72 Y72.5 E7.4835 F1800 ; print line
G1 E-1 F1800 ; retract
;
; start the Test pattern
;
G4 P2000 ; Pause (dwell) for 2 seconds
G1 X71 Y72.5 F7200 ; move to start
M900 K0 ; set K-factor
M117 K0 ;
G1 E1 F1800 ; un-retract
G1 X91 Y72.5 E0.7982 F1200 ; print line
G1 X131 Y72.5 E1.5965 F4200 ; print line
G1 X151 Y72.5 E0.7982 F1200 ; print line
G1 E-1 F1800 ; retract
G1 X71 Y77.5 F7200 ; move to start
M900 K0.2 ; set K-factor
M117 K0.2 ;
G1 E1 F1800 ; un-retract
G1 X91 Y77.5 E0.7982 F1200 ; print line
G1 X131 Y77.5 E1.5965 F4200 ; print line
G1 X151 Y77.5 E0.7982 F1200 ; print line
G1 E-1 F1800 ; retract
G1 X71 Y82.5 F7200 ; move to start
M900 K0.4 ; set K-factor
M117 K0.4 ;
G1 E1 F1800 ; un-retract
G1 X91 Y82.5 E0.7982 F1200 ; print line
G1 X131 Y82.5 E1.5965 F4200 ; print line
G1 X151 Y82.5 E0.7982 F1200 ; print line
G1 E-1 F1800 ; retract
G1 X71 Y87.5 F7200 ; move to start
M900 K0.6 ; set K-factor
M117 K0.6 ;
G1 E1 F1800 ; un-retract
G1 X91 Y87.5 E0.7982 F1200 ; print line
G1 X131 Y87.5 E1.5965 F4200 ; print line
G1 X151 Y87.5 E0.7982 F1200 ; print line
G1 E-1 F1800 ; retract
G1 X71 Y92.5 F7200 ; move to start
M900 K0.8 ; set K-factor
M117 K0.8 ;
G1 E1 F1800 ; un-retract
G1 X91 Y92.5 E0.7982 F1200 ; print line
G1 X131 Y92.5 E1.5965 F4200 ; print line
G1 X151 Y92.5 E0.7982 F1200 ; print line
G1 E-1 F1800 ; retract
G1 X71 Y97.5 F7200 ; move to start
M900 K1 ; set K-factor
M117 K1 ;
G1 E1 F1800 ; un-retract
G1 X91 Y97.5 E0.7982 F1200 ; print line
G1 X131 Y97.5 E1.5965 F4200 ; print line
G1 X151 Y97.5 E0.7982 F1200 ; print line
G1 E-1 F1800 ; retract
G1 X71 Y102.5 F7200 ; move to start
M900 K1.2 ; set K-factor
M117 K1.2 ;
G1 E1 F1800 ; un-retract
G1 X91 Y102.5 E0.7982 F1200 ; print line
G1 X131 Y102.5 E1.5965 F4200 ; print line
G1 X151 Y102.5 E0.7982 F1200 ; print line
G1 E-1 F1800 ; retract
G1 X71 Y107.5 F7200 ; move to start
M900 K1.4 ; set K-factor
M117 K1.4 ;
G1 E1 F1800 ; un-retract
G1 X91 Y107.5 E0.7982 F1200 ; print line
G1 X131 Y107.5 E1.5965 F4200 ; print line
G1 X151 Y107.5 E0.7982 F1200 ; print line
G1 E-1 F1800 ; retract
G1 X71 Y112.5 F7200 ; move to start
M900 K1.6 ; set K-factor
M117 K1.6 ;
G1 E1 F1800 ; un-retract
G1 X91 Y112.5 E0.7982 F1200 ; print line
G1 X131 Y112.5 E1.5965 F4200 ; print line
G1 X151 Y112.5 E0.7982 F1200 ; print line
G1 E-1 F1800 ; retract
G1 X71 Y117.5 F7200 ; move to start
M900 K1.8 ; set K-factor
M117 K1.8 ;
G1 E1 F1800 ; un-retract
G1 X91 Y117.5 E0.7982 F1200 ; print line
G1 X131 Y117.5 E1.5965 F4200 ; print line
G1 X151 Y117.5 E0.7982 F1200 ; print line
G1 E-1 F1800 ; retract
G1 X71 Y122.5 F7200 ; move to start
M900 K2 ; set K-factor
M117 K2 ;
G1 E1 F1800 ; un-retract
G1 X91 Y122.5 E0.7982 F1200 ; print line
G1 X131 Y122.5 E1.5965 F4200 ; print line
G1 X151 Y122.5 E0.7982 F1200 ; print line
G1 E-1 F1800 ; retract
G1 X71 Y127.5 F7200 ; move to start
;
; mark the test area for reference
M117 K0 ;
M900 K0 ; set K-factor 0
G1 X91 Y127.5 F7200 ; move to start
G1 E1 F1800 ; un-retract
G1 X91 Y147.5 E0.7982 F1200 ; print line
G1 E-1 F1800 ; retract
G1 X131 Y127.5 F7200 ; move to start
G1 E1 F1800 ; un-retract
G1 X131 Y147.5 E0.7982 F1200 ; print line
G1 E-1 F1800 ; retract
G1 Z0.3 F1200 ; zHop
;
; print K-values
;
G1 X153 Y70.5 F7200 ; move to start
G1 Z0.2 F1200 ; zHop
G1 E1 F1800 ; un-retract
G1 X155 Y70.5 E0.0798 F1200 ; 0
G1 X155 Y72.5 E0.0798 F1200 ; 0
G1 X155 Y74.5 E0.0798 F1200 ; 0
G1 X153 Y74.5 E0.0798 F1200 ; 0
G1 X153 Y72.5 E0.0798 F1200 ; 0
G1 X153 Y70.5 E0.0798 F1200 ; 0
G1 E-1 F1800 ; retract
G1 Z0.3 F1200 ; zHop
G1 X153 Y80.5 F7200 ; move to start
G1 Z0.2 F1200 ; zHop
G1 E1 F1800 ; un-retract
G1 X155 Y80.5 E0.0798 F1200 ; 0
G1 X155 Y82.5 E0.0798 F1200 ; 0
G1 X155 Y84.5 E0.0798 F1200 ; 0
G1 X153 Y84.5 E0.0798 F1200 ; 0
G1 X153 Y82.5 E0.0798 F1200 ; 0
G1 X153 Y80.5 E0.0798 F1200 ; 0
G1 E-1 F1800 ; retract
G1 X156 Y80.5 F7200 ; move to start
G1 E1 F1800 ; un-retract
G1 X156 Y80.9 E0.016 F1200 ; dot
G1 E-1 F1800 ; retract
G1 X157 Y80.5 F7200 ; move to start
G1 E1 F1800 ; un-retract
G1 X157 Y82.5 F7200 ; move to start
G1 X157 Y84.5 F7200 ; move to start
G1 X157 Y82.5 E0.0798 F1200 ; 4
G1 X159 Y82.5 E0.0798 F1200 ; 4
G1 X159 Y84.5 F7200 ; move to start
G1 X159 Y82.5 E0.0798 F1200 ; 4
G1 X159 Y80.5 E0.0798 F1200 ; 4
G1 E-1 F1800 ; retract
G1 Z0.3 F1200 ; zHop
G1 X153 Y90.5 F7200 ; move to start
G1 Z0.2 F1200 ; zHop
G1 E1 F1800 ; un-retract
G1 X155 Y90.5 E0.0798 F1200 ; 0
G1 X155 Y92.5 E0.0798 F1200 ; 0
G1 X155 Y94.5 E0.0798 F1200 ; 0
G1 X153 Y94.5 E0.0798 F1200 ; 0
G1 X153 Y92.5 E0.0798 F1200 ; 0
G1 X153 Y90.5 E0.0798 F1200 ; 0
G1 E-1 F1800 ; retract
G1 X156 Y90.5 F7200 ; move to start
G1 E1 F1800 ; un-retract
G1 X156 Y90.9 E0.016 F1200 ; dot
G1 E-1 F1800 ; retract
G1 X157 Y90.5 F7200 ; move to start
G1 E1 F1800 ; un-retract
G1 X157 Y92.5 F7200 ; move to start
G1 X159 Y92.5 E0.0798 F1200 ; 8
G1 X159 Y90.5 E0.0798 F1200 ; 8
G1 X157 Y90.5 E0.0798 F1200 ; 8
G1 X157 Y92.5 E0.0798 F1200 ; 8
G1 X157 Y94.5 E0.0798 F1200 ; 8
G1 X159 Y94.5 E0.0798 F1200 ; 8
G1 X159 Y92.5 E0.0798 F1200 ; 8
G1 E-1 F1800 ; retract
G1 Z0.3 F1200 ; zHop
G1 X153 Y100.5 F7200 ; move to start
G1 Z0.2 F1200 ; zHop
G1 E1 F1800 ; un-retract
G1 X153 Y102.5 E0.0798 F1200 ; 1
G1 X153 Y104.5 E0.0798 F1200 ; 1
G1 E-1 F1800 ; retract
G1 X154 Y100.5 F7200 ; move to start
G1 E1 F1800 ; un-retract
G1 X154 Y100.9 E0.016 F1200 ; dot
G1 E-1 F1800 ; retract
G1 X155 Y100.5 F7200 ; move to start
G1 E1 F1800 ; un-retract
G1 X155 Y102.5 F7200 ; move to start
G1 X155 Y104.5 F7200 ; move to start
G1 X157 Y104.5 E0.0798 F1200 ; 2
G1 X157 Y102.5 E0.0798 F1200 ; 2
G1 X155 Y102.5 E0.0798 F1200 ; 2
G1 X155 Y100.5 E0.0798 F1200 ; 2
G1 X157 Y100.5 E0.0798 F1200 ; 2
G1 E-1 F1800 ; retract
G1 Z0.3 F1200 ; zHop
G1 X153 Y110.5 F7200 ; move to start
G1 Z0.2 F1200 ; zHop
G1 E1 F1800 ; un-retract
G1 X153 Y112.5 E0.0798 F1200 ; 1
G1 X153 Y114.5 E0.0798 F1200 ; 1
G1 E-1 F1800 ; retract
G1 X154 Y110.5 F7200 ; move to start
G1 E1 F1800 ; un-retract
G1 X154 Y110.9 E0.016 F1200 ; dot
G1 E-1 F1800 ; retract
G1 X155 Y110.5 F7200 ; move to start
G1 E1 F1800 ; un-retract
G1 X155 Y112.5 F7200 ; move to start
G1 X157 Y112.5 E0.0798 F1200 ; 6
G1 X157 Y110.5 E0.0798 F1200 ; 6
G1 X155 Y110.5 E0.0798 F1200 ; 6
G1 X155 Y112.5 E0.0798 F1200 ; 6
G1 X155 Y114.5 E0.0798 F1200 ; 6
G1 X157 Y114.5 E0.0798 F1200 ; 6
G1 E-1 F1800 ; retract
G1 Z0.3 F1200 ; zHop
G1 X153 Y120.5 F7200 ; move to start
G1 Z0.2 F1200 ; zHop
G1 E1 F1800 ; un-retract
G1 X153 Y122.5 F7200 ; move to start
G1 X153 Y124.5 F7200 ; move to start
G1 X155 Y124.5 E0.0798 F1200 ; 2
G1 X155 Y122.5 E0.0798 F1200 ; 2
G1 X153 Y122.5 E0.0798 F1200 ; 2
G1 X153 Y120.5 E0.0798 F1200 ; 2
G1 X155 Y120.5 E0.0798 F1200 ; 2
G1 E-1 F1800 ; retract
G1 Z0.3 F1200 ; zHop
;
; finish
;
M104 S0 ; turn off hotend
M140 S0 ; turn off bed
G1 Z30 X220 Y220 F7200 ; move away from the print
M84 ; disable motors
M502 ; resets parameters from ROM
M501 ; resets parameters from EEPROM
;