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 [atkp_product id=’3144′ link=’yes‘]Raspberry Pi[/atkp_product] 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 [atkp_product id=’3144′ link=’yes‘]Raspberry Pi[/atkp_product] 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.

Das Tutorial ist für das Anet V1-5 Board verfasst worden. Bei anderen Boards und Herstellern bitte auf die aktuelle Beschreibung / Installationsanweisung auf https://github.com/KevinOConnor/klipper achten!

Was wird benötigt?

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

  • Einen 3D-Drucker 😉 [z.B. Anet A8 von Gearbest für 120,24€]
  • [atkp_product id=’3144′ link=’yes‘]Einen RaspberryPi (unsere Empfehlung ist das Modell 3B)[/atkp_product]
  • Eine fertige Installation von OctoPrint mit der OctoPi Version 0.14 oder neuer auf dem [atkp_product id=’3144′ link=’yes‘]Raspberry Pi[/atkp_product]
  • Geduld

[atkp_product id=’3145′ template=’secondwide‘ hidedisclaimer=’yes‘][/atkp_product]

So wird’s gemacht

Nachdem Ihr OctoPrint auf dem [atkp_product id=’1651′ link=’yes‘]Raspberry Pi[/atkp_product] 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 [atkp_product id=’1651′ link=’yes‘]Raspberry Pi[/atkp_product] 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 [atkp_product id=’1651′ link=’yes‘]Raspberry Pi[/atkp_product] 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 [atkp_product id=’1651′ link=’yes‘]Raspberry Pi[/atkp_product] 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 <– (kann je nach Board und aktueller Installationsanweisung abweichen)
  • Taktgeschwindigkeit 16MHz
  • Baudrate 115200 <– (kann je nach Board und aktueller Installationsanweisung abweichen)

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 [atkp_product id=’3144′ link=’yes‘]Raspberry Pi[/atkp_product] 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 [atkp_product id=’3144′ link=’yes‘]Raspberry Pi[/atkp_product] 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 [atkp_product id=’3144′ link=’yes‘]Raspberry Pi[/atkp_product] ü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

Installationsvideo 

Hier gibt es noch ein schönes Video von David Schuchert alias Hochdruck3D, wo die Installation noch einmal sehr gut erklärt wird.
Falls Euch das Video gefällt, dann könnt Ihr gerne seinen Kanal abonnieren.

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.

18 Gedanken zu „Tutorial: Installation von Klipper

  1. Karsten Antworten

    Ich scheitere, in der seht guten Anleitung, ganz kläglich an der Stelle wo steht „als nächstes öffnet ihr octoprint …. “
    Keine Ahnung wie ich das öffnen soll. Ich finde nichts startbares (installation hat geklappt).
    Und öffne ich es remote auf der Konsole ?
    Danke für den der mir weiter helfen kann.

  2. Bastelkatze Antworten

    Jedesmal wenn ich versuche Dateien von GitHub zu installieren, bekomme ich eine Fehlermeldung:
    fatal: unable to access „die Adresse zum Repository“ : Could´nt connect to server
    Ich hab keine Ahnung wie ich da weiterkommen soll, kann mir da jemand helfen, bei Google werde ich nicht fündig zu dem Problem.
    Normale installationen und Updates klappen problemlos, Ping geht auch, Verbindung zum Internet ist also da.
    Von GitHub allerdings habe ich keinen Plan.

  3. rgr Antworten

    Achtung! Da bei Klipper die default Baud-Rate aktuell bei 250000 liegt, muss man entweder in make menuconfig und in Octopi 250000 einstellen, oder aber im Abschnitt [mcu] in der Printer-config folgende Zeile hinzufügen: baud: 115200. Ansonsten funktioniert die Verbindung zwischen dem Klipper-Host und dem Drucker nicht und im klippy.log steht „Timeout on serial connect“

  4. Manuel Gaschler Antworten

    In der aktuellen Version geht make flash FLASH_DEVICE=/dev/ttyUSB0 nicht …
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x73

    Schaut man in die example Config vom Anet A8 steht oben auch folgendes:

    # Note that the „make flash“ command does not work with Anet boards –
    # the boards are typically flashed with this command:
    # avrdude -p atmega1284p -c arduino -b 57600 -P /dev/ttyUSB0 -U out/klipper.elf.hex

  5. Albert Antworten

    Servus, hat jemand schon Erfahrungen mit Klipper auf Tevo Tornado gemacht. Wer seine Einstellungen teilen könnte. Das wäre gigantisch.

    Gruß
    Albert

  6. Ingo Antworten

    moin

    oben im flash Befehl ist klipper.elf gross geschrieben

    also der flash läuft bei mir, danach aber nichts mehr


    avrdude: verifying …
    avrdude: 15772 bytes of flash verified
    avrdude: safemode: Fuses OK (E:00, H:00, L:00)
    avrdude done. Thank you.

    display zeigt nur ### und keine Verbindung

    Ich kann das anet a8 v1 board aber via arduino ide wieder mit marlin flashen, dann geht es wieder

    schade

    • Knaudler Antworten

      ein frisches octopi image
      und dann hats geklappt
      vorher noch optiboot geflasht
      baud 115200
      wichtig: beim Klipper install NICHT mit root arbeiten

      hab noch den governor unter init.d auf performance gestellt
      damit läuft der Pi immer mit 1200mhz
      und ein homing offset eingestellt (induktiver sensor)

    • Knaudler Antworten

      mit optiboot, läuft Klipper wunderbar überall mit 250000 baud
      bei speed jemseits 100mm/sec wird der Drucker 1. sehr laut – alla Nadeldrucker
      und der chin. Extruder hat kaum eine Chance
      musste auf 240grad gehen (normal bei dem PLA sind 205-210)

      für noch mehr Speed ist wohl ein Volcano Hotend nötig
      und event. ein BondTech Extruder
      (den hab ich am CR-10 – top)

      und wg. der Lautstärke bleibt nur Umstieg auf Trinamic

      Aber sonst soweit ok

  7. Heiko Antworten

    also mit 0.14 hatte ich meine Problem mit Klipper und OctoPrint, hab jetzt nightly 0.15 damit ging es wunderbar nachdem ich das virtualenv neu installiert hatte (wegen pip usw.)

  8. Jonny Antworten

    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.

  9. burn2k Antworten

    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.

  10. Daniel Antworten

    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

    • Ulrich Saßmannshausen Autor des BeitragsAntworten

      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

    • Alois Antworten

      Wenn Du die Fehlermeldung ganz durchliest weisst Du wo das Problem ist:
      Your display is too small to run Menuconfig!
      It must be at least 19 lines by 80 columns.
      /home/pi/Klipper/scripts/kconfig/Makefile:24: recipe for target ‚menuconfig‘ failed
      make[1]: *** [menuconfig] Error 1
      Makefile:100: recipe for target ‚menuconfig‘ failed
      make: *** [menuconfig] Error 2
      Einfach mal die Konsole im fullscreen laufen lassen 😉 dann läufts.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.