Klipper: Unterschied zwischen den Versionen
Mhier (Diskussion | Beiträge) |
Mhier (Diskussion | Beiträge) (→Reset) |
||
Zeile 92: | Zeile 92: | ||
Mit dem GCode M112 wird Klipper einfach heruntergefahren und man muss sich neu verbinden. | Mit dem GCode M112 wird Klipper einfach heruntergefahren und man muss sich neu verbinden. | ||
Möchte man nur die printer.cfg neu laden, genügt der Befehl | |||
<pre>RESTART</pre> | |||
=== PID durchführen === | === PID durchführen === |
Version vom 17. November 2020, 16:24 Uhr
Klipper ist eine Firmware für 3D Drucker. Diese kann alternativ zu der Repetier-basierten Original-Firmware von Conrad oder der auf dieser Original-Firmware basierenden Community-Version auf den Druckern RF1000, RF2000 oder RF2000v2 verwendet werden. Die dafür nötige Konfiguration ist noch nicht vollständig. Ein Produktiveinsatz ist im Moment noch nicht empfohlen. Der genaue Zustand wird unten dokumentiert.
Einleitung
Klipper ist gut dokumentiert auf seiner Webseite, allerdings nur in Englisch: https://www.klipper3d.org
Das Grundprinzip weicht von der Repetier-basierten Firmware und anderen 3D-Drucker-Firmwares deutlich ab. Statt alle Berechnungen im Microcontroller (im Folgenden MCU genannt) des Druckers auszuführen, werden zeitintensive Berechnungen auf einem Host-System durchgeführt. Als Host-System eignet sich z.B. ein Raspberry Pi oder auch ein herkömmlicher Linux-PC. Auf dem selben Host-System kann (bzw. sollte) auch Octoprint o.ä. ausgeführt werden. Wer also bereits Octoprint etc. nutzt, benötigt keine weitere Hardware.
Da die zur Verfügung stehende Rechenpower so um Größenordnungen höher ist, können deutlich präzisere Berechnungen durchgeführt werden. Die Motoren laufen spürbar ruhiger, und höhere Schrittfrequenzen sind ebenfalls problemlos möglich. Außerdem ist eine höhere Flexibilität möglich. Auch ohne Programmierkenntnisse kann das Verhalten der Firmware über Konfigurations-Dateien beeinflusst werden, sogar neue G-Codes können so eingeführt werden. Die Firmware ist größtenteils in Python geschrieben und sehr modular gehalten, wodurch die Einstiegshürde für Entwickler sehr viel geringer ist.
Status
Was schon funktioniert:
- Natürlich alle Grundfunktionen, die jeder normale Drucker hat (Bewegen, Heizen, Lüfter etc.)
- Dokumentation der unterstützten G-Codes: https://www.klipper3d.org/G-Codes.html
- Heizbett-Scan: heißt bei Klipper Bed Mesh Leveling
- Es lassen sich beliebig viele benannte Meshes (entspricht den Matrizen) speichern
- Es gibt kein Software-Limit wie groß die Werte im Mesh werden dürfen
- Interpolation zwischen den Punkten des Meshes ist deutlich besser, daher sollten weniger Punkte ausreichen
- Z-Offset-Scan
- Korrigiert nicht mehr die Matrix/das Mesh, sondern führt einen unabhängigen Offset ein.
- Ebenfalls keinerlei Software-Limit auf den Wert des Offsets.
- Menü (im Original-Zustand von Klipper, daher noch etwas rudimentär vielleicht): die Bedienlogik ist etwas anders, daher hat die Nach-Rechts-Taste keine Funktion (wird einfach nicht gebraucht)
- Start-Taste wurde umfunktioniert in Not-Aus
Was fehlt:
- Konfigurationen für den RF2000 und RF2000v2
- Sense offset
- Die Tasten zum Bewegen des Heizbetts und des Extruders
- Pause-Taste
- Kanten antasten (Fräsen)
- Emergency Pause/Stop (bei zu hohem Druck auf die Wägezellen)
- Mehr Tests!
- Sagt ihr es mir!
Installation
Eine Ausführliche Installationsanleitung gibt es auf der Webseite: https://www.klipper3d.org/Installation.html
Da die nötigen Modifikationen und Beispielkonfigurationen noch nicht Teil der offiziellen Klipper-Firmware sind, muss der folgende Befehl:
git clone https://github.com/KevinOConnor/klipper
durch diesen ersetzt werden:
git clone https://github.com/RF1000community/Klipper
Außerdem gibt es bereits eine Konfigurations-Datei für den RF1000. Ich würde daher empfehlen, die Konfigurations-Datei printer.cfg mit folgendem Inhalt zu erstellen:
[include klipper/config/printer-rf1000.cfg] [mcu] serial: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_<hier_richtige_ID_einfügen>-port0
Dadurch wird der Inhalt von klipper/config/printer-rf1000.cfg benutzt, aber alle folgenden Einstellungen überschreiben ggf. bereits vorhandene Einstellungen aus der printer-rf1000.cfg Datei.
Nach der Installation bitte unbedingt die Anleitung zum Prüfen der Konfiguration befolgen: https://www.klipper3d.org/Config_checks.html
Es ist ebenfalls empfehlenswert, die Konfiguration auf diese Weise nach jedem Update zu prüfen, weil durch das [include] Änderungen aus der Konfigurationsdatei automatisch übernommen werden.
Octoprint
Die Installationsanleitung geht von einer Octoprint Installation aus.
Repetierserver
Man kann auf einem normalen RasPi Installation zuerst Repetier-Server aufsetzen und dann erst Klipper. Die Verbindung von Repetier-Server zu Klipper funktioniert aber nicht, da die beiden Programme unter verschiedenen Benutzern arbeiten und die Standard Serial-Emulation das Problem nicht lösen kann.
Abhilfe: (Siehe [Repetier-Server Knowledgebase https://www.repetier-server.com/knowledgebase/klipper/])
sudo mkdir /var/lib/klipper sudo chmod 777 /var/lib/klipper
Und dann die Änderung in den Einstellungen von Klipper bekannt machen
sudo nano /etc/defaults/klipper
dort die Zeile am Ende zu
KLIPPY_ARGS="/home/pi/klipper/klippy/klippy.py /home/pi/printer.cfg -l /tmp/klippy.log -I /var/lib/klipper/connect"
ergänzen. Anschliessend das Service von Klipper neu starten. Damit kann man sich in Repetier-Server mit Gerät/Port /var/lib/klipper/connect verbinden.
Bei den Befehlen muss man ein Raute Zeichen # voranstellen, damit es richtig von Repetier-Server weitergegeben wird.
Klipper Befehle
Original-Dokumentation: https://www.klipper3d.org/G-Codes.html
Einige der dort beschriebenen Befehle sind nur aktiv, wenn bestimmte Module geladen sind. Daher gehen manche Befehle nicht, es sei denn, das Modul wird über die Konfiguration eingeschaltet.
Reset
Einen Reset von Klipper, das auch die Firmware zurücksetzt führt man mit dem Kommando
FIRMWARE_RESTART
durch. Dabei wird auch die printer.cfg neu eingelesen. Bei Problemen in der printer.cfg kann es sein, das ein Klipper: Disconnect erscheint. Dann läuft Klipper nicht und man darf den Fehler suchen.
Mit dem GCode M112 wird Klipper einfach heruntergefahren und man muss sich neu verbinden.
Möchte man nur die printer.cfg neu laden, genügt der Befehl
RESTART
PID durchführen
Für den Hotend 1
PID_CALIBRATE HEATER=extruder TARGET=210
Für das Heizbett
PID_CALIBRATE HEATER=heater_bed TARGET=60
Die Daten werden mit SAVE_CONFIG abgespeichert.
Bed Mesh Kalibration durchführen
BED_MESH_CALIBRATE
startet den Bed Mesh Scan entsprechend den Einstellungen in der Konfiguration. Konfigurations-Parameter können auch einfach als Argumente dem Befehl angefügt werden, so führt z.B. der folgende Befehl:
BED_MESH_CALIBRATE probe_count=3,3
einen schnelleren und gröberen Scan mit nur 3x3 Punkten aus. Die vollständige Dokumentation aller möglichen Parameter findet sich hier (sollte die Zeilennummer nicht mehr stimmen, einfach nach "[bed_mesh]" suchen):
https://github.com/KevinOConnor/klipper/blob/master/config/example-extras.cfg#L41
BED_MESH_OUTPUT
gibt das aktuelle Mesh aus.
BED_MESH_CLEAR
setzt alle Werte des aktuellen Meshes auf 0.
BED_MESH_PROFILE LOAD=<name> SAVE=<name> REMOVE=<name>
erlaut das Mesh zu speichern, zu laden, oder ein gespeichertes Mesh zu löschen.
Übrigens kann das Mesh mit OctoPrint visualisiert werden, wenn man sich das Bed Visualizer Plugin installiert.