Skip to main content

Klipper - Firmware Retract einrichten

Vorstellung Firmware Retract in Klipper

Hallo,

Jeder von euch kennt den Retract und dessen Funktion. Die meisten von euch definieren diesen im Slicer. Aber was hat denn jetzt der Firmware retract für Vorteile.

  • Konsistenz über verschiedene Slicer: Da die Retract-Einstellungen in der Firmware verwaltet werden, ist es einfacher, konsistente Ergebnisse über verschiedene Slicer-Programme hinweg zu erzielen. Dies bedeutet, dass die Benutzer nicht für jeden Slicer individuelle Retract-Einstellungen anpassen müssen.
  • Anpassungsfähigkeit: Firmware Retract ermöglicht es, Retract-Einstellungen zentral in der Firmware zu ändern, ohne den G-Code jedes Mal anpassen zu müssen. Dies erleichtert das Experimentieren mit verschiedenen Retract-Einstellungen, um die bestmögliche Druckqualität zu erzielen.
  • Live Anpassung möglich: Ihr könnt den Retract während des Druckes anpassen.
  • Vereinfachung des G-Codes: Da der Retract direkt von der Firmware gesteuert wird, muss der G-Code nicht so viele Befehle enthalten, was zu einer Vereinfachung des G-Codes führt. Dies kann die Dateigröße der G-Code-Dateien verringern. 
    (in der Praxis vermutlich nicht relevant) 
  • Implementierbarkeit: Der Retract kann je nach Filamenttyp über den Startcode eingestellt werden.

Einrichtung FW Retract in Klipper

Offizielle Klipper Doku zu FW Retract:
https://www.klipper3d.org/Config_Reference.html?h=retract#firmware_retraction
Offizuelle Klipper Doku zu G10 / G11:
https://www.klipper3d.org/G-Codes.html#firmware_retraction

Möglichkeit 1 : Direkt in printer.cfg
[firmware_retraction]
#   G10 für Retract and G11 Deretract
retract_length: 3
#   Die Laenge des Rueckzuges in mm wenn ein G10 Befehl angesteuert wird.
#   Ebenfalls wenn nicht weiter definiert gilt er für den Deretract G11.
#   Die Standardeinstellung ist 0mm.
retract_speed: 40
#   Rueckzugsgeschwindigkeit in mm/s. Der Standardwert ist 20 mm/s.
#unretract_extra_length: 0
#   Hier wird die zusaetzliche Laenge (in mm) definiert, die bei einem Derretract 
#   gemacht werden soll.
unretract_speed: 40
#   Die Geschwindigkeit für einen Deretract in mm/s. Der Standardwert ist 10 mm/s.
Möglichkeite 2: Extra CFG-Datei anlegen und einbinden (empfohlen)
  • Lege eine cfg namens fw_retract.cfg im Stamm Konfigverzeichnis an. (Einfach über die Weboberfläche mit Datei erstellen)
  • Kopiere folgenden Inhalt in diese CFG
    [firmware_retraction]
    #   G10 für Retract and G11 Deretract
    retract_length: 3
    #   Die Laenge des Rueckzuges in mm wenn ein G10 Befehl angesteuert wird.
    #   Ebenfalls wenn nicht weiter definiert gilt er für den Deretract G11.
    #   Die Standardeinstellung ist 0mm.
    retract_speed: 40
    #   Rueckzugsgeschwindigkeit in mm/s. Der Standardwert ist 20 mm/s.
    #unretract_extra_length: 0
    #   Hier wird die zusaetzliche Laenge (in mm) definiert, die bei einem Derretract 
    #   gemacht werden soll.
    unretract_speed: 40
    #   Die Geschwindigkeit für einen Deretract in mm/s. Der Standardwert ist 10 mm/s.
  • Includiere die CGF in deiner printer.cfg mit folgendem Code
    [include fw_retract.cfg]


Einrichtung FW Retract im Slicer:

SuperSlicer

fw_retract_SuperSlicer.png

PrusaSlicer

fw_retract_PrusaSlicer.png

Cura

Wenn es jemand am Laufen hat gerne als Info an uns.
Über das Addon "Printer Settings" bekommt man zwar die Option, aber es würde nicht sauber in den Gcode geschrieben.

printer_settings_addon_cura.png

Orca Slicer

fw_retract_OrcaSlicer.png


GCODE Kontrolle ob FW retract geschrieben wurde


GCODE slicen und exportieren. Danach mit einem Editor öffnen und nach G10 oder G10 suchen

fw_retract_kontrolle.png

fw_deretract_kontrolle.png


Retract über die Mainsail Oberfläche einstellen:

Ihr könnt jetzt den Retract im "Extruder" Menü einstellen. 

Hier ein Beispiel:


fw_retract_kontrolle mainsail.png


Filamentabhängiger Retract


1. Slicer für die Weitergabe der Variable einrichten

Richtiger Filamenttyp im Slicer setzten

grafik.png

Wie sieht jetzt die Variable aus?

grafik.png

2. Variable im Startmakro des Slicers hinterlegen

Startcode im Superslicer
START_PRINT BED={first_layer_bed_temperature} EXTRUDER={first_layer_temperature} MATERIAL={filament_type}

3. Prüfen ob Varaibale übergeben wurde

So soll es aussehen

grafik.png

  • Objekt slicen
  • Gcode mit editor öffnen
  • Nach "Material" durchsuchen -> Es sollte euer Filamenttyp hinterlegt sein
Gcode für die Materialabfrage in einem Makro
    # Materialabhaengige Parameter wie PA, FLOW, Retract, Mesh usw.
    RESPOND MSG="Material: {material}"
    {% if material == "PLA" %}
    #SET_RETRACTION RETRACT_LENGTH=1.2
    #SET_RETRACTION RETRACT_SPEED=30
    #SET_RETRACTION UNRETRACT_SPEED=30
    {% elif material == "PET" %}
    #SET_RETRACTION RETRACT_LENGTH=1.5
    #SET_RETRACTION RETRACT_SPEED=20
    #SET_RETRACTION UNRETRACT_SPEED=20
    {% elif material == "ABS" %}
    #SET_RETRACTION RETRACT_LENGTH=0.9
    #SET_RETRACTION RETRACT_SPEED=40
    #SET_RETRACTION UNRETRACT_SPEED=40
    {% endif %}