Tutorial: Installation von Klipper

Immer öfter konnte man in Foren, sozialen Netzwerken usw. lesen, dass es eine neue Art Firmware gibt.
Das Besondere daran ist, dass nur ein ganz kleiner Teil Firmware auf dem Drucker installiert wird und der Rest über einen externen Controller, wie z.B. dem Raspberry Pi* läuft.

Es handelt sich um ein Open Source Projekt von KevinOConnor und nennt sich Klipper. [https://github.com/KevinOConnor/klipper]

Es wird dabei auf die Unterstützung von LCD-Displays verzichtet, da alles über OctoPrint gesteuert wird.
Der andere Vorteil ist, dass nach einer Änderung der Konfiguration nicht mehr die gesamte Firmware auf den Drucker geflasht werden muss, sondern nur noch auf den Raspberry Pi* kopiert wird.

Wir haben den Versuch gestartet und Klipper auf unserem Anet AM8 Drucker installiert.
Damit Ihr das Ganze nachmachen könnt, haben wir hier dieses Tutorial für Euch geschrieben.

HINWEIS:
Alle gemachten Angaben sind ohne Gewähr auf Funktion und Richtigkeit. Für eventuell entstehende Schäden übernehmen wir keinerlei Haftung. Sämtliche Veränderungen geschehen auf Eure Verantwortung und Gefahr.




Was wird benötigt?

Fangen wir mal bei den Komponenten an, die Ihr für die Installation von Klipper benötigt:

So wird’s gemacht

Nachdem Ihr OctoPrint auf dem Raspberry Pi* installiert habt (eine Installationsanleitung findet Ihr übrigens hier) solltet Ihr noch einmal überprüfen, ob es irgendwelche Updates gibt und diese installieren.

Es geht los, indem Ihr mit einem SSH Client (wir haben dafür PUTTY benutzt) auf Euren Raspberry Pi* zugreift.
Diesen sprecht Ihr über die von Eurem Router vergebene IP Adresse an und logt Euch ein.

Der Benutzername sollte pi und das Passwort, sofern ihr es nicht geändert habt, raspberry sein.

Als nächstes gebt Ihr folgende Befehle im Eingabemaske ein, um die Dateien von Klipper auf Euren Raspberry Pi* zu übertragen:

git clone https://github.com/KevinOConnor/Klipper
./Klipper/scripts/install-octopi.sh

Nun sollte die Installation der Dateien beginnen und Klipper auf dem Raspberry Pi* installiert werden.

Als nächstes muss Euer Mainboard des Druckers für die Installation von Klipper vorbereitet werden.
Dafür wird Microcontroller mit einer sehr geringen Firmware beschrieben, die die Befehle an die Treiber und Motoren weitergibt.

Dafür gebt Ihr folgendes in die Eingabemaske des SSH Clients ein:

cd ~/Klipper/
make menuconfig

Es öffnet sich eine Anwendung, wo Ihr den Chipsatz, die Baudrate und die Taktrate Eures Mainboards einstellen müsst. Da jedes Board (RAMPS, Arduino Due, etc.) anders ist, solltet Ihr wissen, welchen Prozessor usw. Ihr auf dem Board verbaut habt und welche Baudrate Ihr einstellen müsst.

Für das Original Anet V1-5 Board sind die Werte übrigens wie folgt:

  • Microcontroller Atmega AVR
  • Prozessor atmega1284p
  • Taktgeschwindigkeit 16MHz
  • Baudrate 115200

Nachdem Ihr die Werte gespeichert habt, könnt Ihr die Anwendung wieder schließen und gebt nun folgendes in die Eingabemaske ein:

make

Jetzt erstellt Klipper eine *.hex Datei, die Ihr mit dem nachfolgenden Befehlen auf den Drucker übertragen müsst:

HINWEIS: Vorher den Drucker in OctoPrint trennen, falls Ihr dies noch nicht gemacht habt.

sudo service klipper stop
make flash FLASH_DEVICE=/dev/ttyUSB0 (ACHTUNG! Hier den richtigen Port auswählen)
sudo service klipper start

Damit solltet Ihr Euer Mainboard für die Installation vorbereitet haben.

Beim Anet Board funktionierte der oben beschriebene Weg leider nicht, so dass wir folgenden Weg bestreiten mussten:

Nachdem wir

sudo service klipper stop

eingegeben haben, mussten wir für das Übertragen einen anderen Befehl verwenden:

avrdude -v -p atmega1284p -c arduino -P /dev/ttyUSB0 -b 57600 -D -U flash:w:/home/pi/Klipper/out/Klipper.elf.hex:i

Es wird die *.hex auf das Board geflasht.
Anschließend gebt Ihr noch

sudo service klipper start

um Klipper wieder zu starten.

Danach könnt Ihr über

sudo reboot

das System neu starten.

Da wir keine Linux- und RaspberryPi-Spezialisten sind, können wir Fragen zu den Befehlen nur bedingt beantworten. Wir bitten daher um Nachsicht.

Als nächstes öffnet Ihr OctoPrint und müsst dort die Einstellungen für die serielle Schnittstelle ändern. Es ist nämlich nötig für Klipper eine temporäre Serielle Schnittstelle einzurichten.

Dafür wir unter Einstellungen – Serielle Verbindung – Zusätzliche Serielle Port der Wert /tmp/printer eingetragen und der Haken bei „Bei unbehandelten Firmwarefehlern nicht nur den Druckauftrag abbrechen, sondern auch die Verbindung zum Drucker trennen.“ entfernt.

Das war es erstmal für die Installation von Klipper.




Drucker konfigurieren

Damit Klipper überhaupt weiß, wie der Drucker anzusteuern ist, muss dieser erstmal eingerichtet werden. Dies kann über mehrere Wege erfolgen.

Auf https://github.com/KevinOConnor/Klipper/tree/master/config findet Ihr Beispielkonfigurationen für verschiedene Boards und Mechaniken, die Ihr für Euren Bedarf anpassen könnt. Es sind zum Beispiel Konfigurationen für das RAMPS-Board oder für einen Core-XY Drucker vorhanden. 

Glücklicherweise konnten wir eine bereits vorkonfigurierte Datei für das Anet V1-5 Board finden, welche ihr hier herunterladen könnt.
Dort sind bereits alle Motoren, Endschalter und Sensoren (ohne ABL) definiert und müssen nicht mehr angepasst werden.

Falls doch, könnt Ihr die Datei mit einem kostenlosen Texteditor (Notepad++ o.ä.) bearbeiten und die Werte darin verändern.

Unter  https://github.com/KevinOConnor/Klipper/blob/master/config/example.cfg gibt es eine ausführlich beschriebene Beispieldatei, die alle Informationen enthält, was wie einzustellen ist. Sie dient als Grundgestell und kann natürlich ebenfalls von Euch angepasst werden.

Nachdem Ihr die Datei heruntergeladen habt, müsst Ihr diese erstmal in printer.cfg umbenennen.
Die Datei könnt Ihr an einem Ort Eurer Wahl abspeichern.

Um die Datei auf den Raspberry Pi* zu bekommen, braucht Ihr ein Datentransferprogramm (FTP Client), wie z.B. FileZilla. Es wird um Zugriff zu bekommen, wie beim SSH Client, eine Verbindung über die IP Adresse des Raspberry Pi* aufgebaut.

Benutzernamen und Passwort sind wieder pi und raspberry der Port ist 22.

Ihr sucht nun die printer.cfg und kopiert diese auf das Verzeichnis /home/pi

Nun öffnet Ihr OctoPrint und verbindet den Drucker über die zuvor angelegte Schnittstelle /tmp/printer und gebt im Terminal restart und anschließend status ein. Solltet Ihr alles richtig gemacht haben, dann erwartet Euch die Meldung printer is ready.

Das war’s auch schon.

Die Besonderheit von Klipper besteht darin, dass, wenn Ihr die Konfiguration geändert habt, nicht mehr alles kompiliert und auf das Mainboard des Druckers geflasht werden muss. Muss jetzt nur noch die printer.cfg mit einem Texteditor geändert werden und das ganze wieder per Datentransferprogramm (FTP Client) auf den Raspberry Pi* übertragen werden.

Durch die Eingabe von restart lädt Klipper die neue Konfiguration und es kann direkt getestet werden.

Mehr zur Konfiguration und sonstigen Fragen zu Klipper versuchen wir in unserer Facebook Gruppe https://www.facebook.com/groups/klipper.firmware/ zu beantworten.

Hier findet Ihr noch ein Q&A zum Anet A8: https://github.com/KevinOConnor/klipper/issues/78




Druckergebnisse

Es ist schon faszinierend, wenn der Drucker mit echten 100m/s loslegt.
Ein Video davon könnt Ihr hier demnächst finden.

Natürlich muss die gesamte Peripherie stimmen und das gesamte System gut abgestimmt sein.
Wir tasten uns in den nächsten Tagen weiter durch und wenn es etwas Neues gibt, dann lassen wir es Euch hier wissen.

Ulrich Saßmannshausen

Ulrich Saßmannshausen

Mein Name ist Ulrich Saßmannshausen, ich bin der Gründer und Hauptautor von SELBSTgedruckt - 3D-Druck Magazin
Mein Ziel ist es, Euch mit Neuigkeiten, Test und Tutorials aus der Welt des 3D-Drucks zu versorgen.
Ulrich Saßmannshausen

Letzte Artikel von Ulrich Saßmannshausen (Alle anzeigen)

Ulrich Saßmannshausen

Mein Name ist Ulrich Saßmannshausen, ich bin der Gründer und Hauptautor von SELBSTgedruckt - 3D-Druck Magazin Mein Ziel ist es, Euch mit Neuigkeiten, Test und Tutorials aus der Welt des 3D-Drucks zu versorgen.

Ulrich Saßmannshausen has 55 posts and counting. See all posts by Ulrich Saßmannshausen

5 Gedanken zu „Tutorial: Installation von Klipper

  • 12. März 2018 um 17:49
    Permalink

    Ich habe gerade Klipper auf meinem Mega2560 Installiert. Erst wollte die Verbindung nicht gehen und er hat beim Beschreiben immer einen Fehler ausgegeben.

    Bin dann bei Octoprint rein haben die Einmal mit dem Board verbunden und wieder getrennt danach ging es sofort!

    Vielleicht hilft es noch jemanden.

    Antwort
  • 26. Februar 2018 um 10:27
    Permalink

    Danke für die Anleitung. Hab sie als Grundlage für Klipper auf meinem CR-10 genutzt. Funktioniert super!
    Mir ist nur ein Schreibfehler in den Kommandos aufgefallen:

    sudo service Klipper stop
    und
    sudo service Klipper start

    muss

    sudo service klipper stop
    und
    sudo service klipper start

    heißen, damit der Service gefunden wird.

    Antwort
  • 7. Januar 2018 um 10:52
    Permalink

    Hi Ulrich,
    habe regelrecht darauf gewartet eine auf den A8 maßgeschneiderte Anleitung zu Klipper zu finden. Danke dafür!
    Ich habe jedoch Probleme das Board vorzubereiten. Der Befehl: make menuconfig führt immer zu einem Error 2 und dem Hinweis, dass ich die ncurses library installieren soll. Auch nach dem komplett neu Aufspielen von Octopi nach Deiner Anleitung kommt der Fehler noch. Diverse über Google gefundene Befehle um die library zu installieren haben bisher nicht geklappt.
    Hast Du einen Tipp?
    Danke und Gruß
    Daniel

    Antwort
    • 7. Januar 2018 um 14:23
      Permalink

      Also ich würde trotzdem noch mal empfehlen alles neu und sauber aufzuspielen. Eventuell eine neue SD-Karte benutzen und bevor du Klipper installierst, erst alle Updates ziehen.
      Hast du auch das neue OctoPi Image 0.14 verwendet?

      Gruß

      Ulrich

      Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.