*Klipper Einrichtung
- *Klipper - Neopixel einrichten und nutzen
- *Klipper zu spezifischen Druckern
- *Klipper - Z-Offset richtig einstellen
- *Klipper - Kiauh installieren
- *Klipper - Deutsche Übersetzung
- *Slicer - Start/End Code einrichten / oder Fehler beheben
- *Klipper - Firmware Retract einrichten
*Klipper - Neopixel einrichten und nutzen
[include ./neopixel_pin.cfg]
[neopixel sb_leds]
pin:
[neopixel sb_leds]
chain_count: 3
[neopixel sb_leds]
color_order: GRBW
initial_RED: 0.0
initial_GREEN: 0.0
initial_BLUE: 0.0
initial_WHITE: 0.0
-
LED= Name eurer Neopixel Schnittstelle ([neopixel sb_leds]). Hier sb_leds
-
RED|GREEN|BLUE|WHITE = Farbe ein oder aus ( 1 oder 0)
-
INDEX= Welche LED im Strand soll angesteuert werden
[include ./neopixel_farben.cfg]
[include ./neopixel_status.cfg]
# The following status macros are available:
# STATUS_READY
# STATUS_OFF
# STATUS_BUSY
# STATUS_HEATING
# STATUS_LEVELING
# STATUS_HOMING
# STATUS_CLEANING
# STATUS_MESHING
# STATUS_CALIBRATING_Z
# With additional macros for direct control:
# SET_NOZZLE_LEDS_ON
# SET_LOGO_LEDS_OFF
# SET_NOZZLE_LEDS_OFF
*Klipper zu spezifischen Druckern
Anycubic Vyper
Anycubic i3 Mega
Creality - Ender 3 S1/ Pro / Plus
Elegoo - Neptune 3
Voron
*Klipper - Z-Offset richtig einstellen
Nun müsst Ihr die Höhe eurer ersten Schicht aus dem Slicer ermitteln.
-
Habt ihr eure seitlichen Endstops noch in Benutzung, wählt Ihr nun Speichern bis Endschalter aus. (In der Printer.cfg wie folgt "endstop_pin: PG10 ---> Hardware Endstop")
-
Habt Ihr die Variante mit einem BL-Touch und die seitlichen Endstops sind deaktiviert, wählt ihr nun Speichern bis Sensor aus. (In der Printer.cfg wie folgt "endstop_pin: probe:z_virtual_endstop ---> Bltouch")
*Klipper - Kiauh installieren
Hier ist unsere Anleitung zur Installation von kiauh
*Klipper - Deutsche Übersetzung
Hier ist der Link PDF zur Deutschen Übersetzung
*Slicer - Start/End Code einrichten / oder Fehler beheben
Probleme und Fehler
Ihr habt das Problem, dass euer Startcode nicht funktioniert?
- Bedmesh wird nicht geladen
- Temperaturen werden nicht übergeben
- Er funktioniert gar nicht
Parameter und Platzhalter
Bei dem Startcode ist es wichtig, dass die sogenannten Parameter und Placeholder sauber definiert sind. Ihr solltet diesen dann im Gcode kontrollieren
Beispiel:
START_PRINT BED=[first_layer_bed_temperature] EXTRUDER=[first_layer_temperature]
START_PRINT Paramter=[Placeholder] .....
Paramter
Mit einem Parameter kannst du einen Zahlenwert einem "Wort"(Platzhalter) zuweisen und abfragen.
Im Falle des Startcodes sind es meinst Variablen wie:
BED / EXTRUDER / BED_TEMP / EXTRUDER_TEMP / CHAMBER_TEMP / SHEET / AREA_START / AREA_END
Placeholder (Platzhalter) im Slicer
Mit den sogenannten Placeholder kannst du Werte aus dem Slicer abfragen und einer Variable zuweisen.
Prusa / Super Slicer Placeholder:
https://help.prusa3d.com/article/list-of-placeholders_205643
Beispiel:
Extruder Temperatur des First Layers: "first_layer_temperature"
Cura Platzhalter:
http://files.fieldofview.com/cura/Replacement_Patterns.html
Startcode Beispiele:
Hier findest du Beispiele unserer Startcodes, passend zu den Slicern.
Bitte gleiche diese mit deinen Variablen im Makro ab.
Ebenfalls sind die Klammern wichtig {} []
Cura Startcode:
START_PRINT BED={material_bed_temperature_layer_0} EXTRUDER={material_initial_print_temperature}
Prusa Startcode:
START_PRINT BED=[first_layer_bed_temperature] EXTRUDER=[first_layer_temperature]
Super Slicer Startcode:
START_PRINT BED={first_layer_bed_temperature} EXTRUDER={first_layer_temperature}
Orca Slicer Startcode:
START_PRINT EXTRUDER=[nozzle_temperature_initial_layer] BED=[hot_plate_temp_initial_layer]
Wie wird eine Varibale mit Parametern beschrieben
Annahmen:
- Startcode im Slicer : START_PRINT BED={first_layer_bed_temperature} EXTRUDER={first_layer_temperature}
- Schreibbfehel im Start_Print:
{% set extruder = params.EXTRUDER|default(0) %}
{% set bed = params.BED|default(0) %}
Vom Slicer werden die Parameter BED und EXTRUDER dem Start_Print Makro zur Verfügung gestellt.
Beispiel aus Gcode:
Das Makro mach folgendes:
set xyz = setzte oder beschreibene in die variable xyz
extruder/bed = Variablenname
params.EXTRUDER|default(0) = Die Werte aus dem Paramter (params) Extruder
Komplettes Beispiel
Quelle:
Crydteam - Vyper Extended Github - marcos.cfg
[gcode_macro START_PRINT]
description: All what needs to be done at print start
gcode:
#### set defaults ####
{% set extruder = params.EXTRUDER|default(0) %}
{% set bed = params.BED|default(0) %}
#### end off definition ###
G28 ; Home
M83 ; Extruder relative mode
M104 S140 ; Extruder heat up standby temp 140
M190 S{bed} ; Bed heat up
G1 X0 Y0 F2200 ; Go to front
M109 S{extruder} ; Extruder heat up to target temp
G92 E0.0 ; Reset extruder length
G90 ; Absolute positioning
BED_MESH_PROFILE LOAD="default"
PRIME_LINE ; First move
Überprüfung ob der Slicer Werte in die Parameter schreibt:
- Ein Objekt slicen und Gcode Exportieren
- Gcode mit einem Editor öffnen
- Mit der Sucher (STRG+F) nach eurem Start_Print Startcode suchen
- Prüfen ob für Extruder und Bed auch eine Temperatur eingetragen wurde
*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:
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.
GCODE Kontrolle ob FW retract geschrieben wurde
GCODE slicen und exportieren. Danach mit einem Editor öffnen und nach G10 oder G10 suchen
Retract über die Mainsail Oberfläche einstellen:
Ihr könnt jetzt den Retract im "Extruder" Menü einstellen.
Hier ein Beispiel:
Filamentabhängiger Retract
Link zum Video "Filamentabhängigen Gcode"
1. Slicer für die Weitergabe der Variable einrichten
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
- 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 %}