3D-Drucker mit Klipper beschleunigen

Heute habe ich es endlich geschafft, den Anycubic i3 Mega „geklippert“ dazu zu bringen, das Bett richtig zu vermessen. Die Glasplatte ist alles andere als eben. Und nicht einmal gleichmĂ€ĂŸig uneben. Wie eine Auenlandschaft. Wirklich schlimm. Aber Klipper regelt das.

Installation Klipper

Ich hatte noch einen alten Raspberry 2 hier rumliegen. FĂŒr Klipper reicht das dicke. Mit dem Raspberry Pi Imager ist Klipper schnell auf eine SD-Karte kopiert.

OS wĂ€hlen —> Other specific-purpose OS —> 3D printing —> Mainsail OS

Nun noch auf das Zahnradsymbol klicken und die Grundeinstellungen fĂŒr den Raspi einstellen.

Vom GerĂ€tenamen ĂŒber den Account bis zur Einrichtung des WLAN-Zugangs und vor allem den SSH-Zugang kann man hier alles einstellen, sodass man keinen Monitor und keine Tastatur an den Raspi anschließen muss, sondern sich via SSH ĂŒber das LAN oder das WLAN anmelden kann.

Speichern, die Ziel-SD-Karte auswÀhlen und das Image schreiben lassen.

Any flashen

Den Any schließen wir mit einem USB-Kabel an den Raspi an.  SD-Karte in den Raspi und an das Netzteil anschließen.

Wenn der Raspi gebootet ist, kann man ihn ĂŒber das Netzwerk erreichen. Die IP-Adresse findet man in seinem WLAN-Router (Fritzbox, Heimnetzwerk, Clients) oder aber mit dem Angry IP Scan das Netzwerk durchsuchen.

Der MAC-Hersteller lautet Raspberry Pi Foundation und wir sehen hier schon den Netzwerknamen „Anycubici3Mega.local“. Wir merken uns die IP-Adresse, öffnen das Terminal (unter Windws benötigt man noch Putty) und geben dort „ssh “Deines-Raspi“  ein:

NatĂŒrlich hier den Anmeldenamen Eures Pi und die IP hier eintragen. Es wird nach dem Passwort gefragt, dies bitte eingeben.
Bei der Nachfrage des Systems, ob dem entfernten Rechner mit dem Fingerprint Laberrhabarber vertraut werden soll, bitte „Yes“ eingeben.

Firmware erstellen

Folgendes nun eingeben: „cd klipper“ und in diesem Verzeichnis: „make menuconfig“.

cd klipper
make menuconfig

Es öffnet sich dieses Fenster, in dem eigentlich bereits alles voreingestellt sein sollte:

  • Atmega AVR
  • Atmega2560
  • 16MHz
  • UART0
  • Baudrate 250000

Q wie Quit und in der Befehlszeile „make“ eingeben

make

Der Raspberry fĂ€ngt an zu rödeln und erstellt uns die Firmware fĂŒr den Anycubic i3 Mega.
Sie trĂ€gt den Namen „klipper.elf.hex“.

Dateien kopieren

Wir verbinden uns mit dem Raspberry via SFTP:

Unter Ubuntu geht das ĂŒber Dateien, andere Orte. In das Feld „sftp://192.168.141.63/“ eingeben und auf Verbinden klicken.
Gleiches Spiel unter macOS. Im Finder: Gehe zu, mit Serververbinden.
Unter Windows benötigst Du wieder mal ein Tool wie Filezilla. Windows ist wirklich nur noch fĂŒr MS Office gut.

Wir kopieren die klipper.elf.hex auf unseren Rechner.

Ebenfalls holen wir uns noch die Datei /home/pi/klipper/config/printer-anycubic-i3-mega-2017.cfg auf unseren Rechner und benennen sie in printer.cfg um.

Diese Datei kopieren wir nun zurĂŒck auf den Raspberry, und zwar in den Ordner

/home/pi/printer_data/config/

Die Firmware flashen

Wir starten Cura oder den Slicer, den wir sonst mit dem Any verwenden und flashen darĂŒber die Firmware des Druckers.

Wir wÀhlen die Firmware klipper.elf.hex aus und flashen den Drucker damit.

Erster Start

Im Browser geben wir die IP-Adresse unseres Druckers ein. Es öffnet sich die Mainsail-OberflÀche.

In der alten Printer.cfg fĂŒr den Any sind keine aktuellen Konfigurationsanweisungen fĂŒr Mainsail gespeichert. Die kopieren wir uns ber selbst hinein.

Maschine —> Config —> mainsail.cfg

Doppelt darauf klicken und im Editor Strg-A und Strg-C drĂŒcken.

Auf das X rechts oben klicken und in der DateiĂŒbersicht doppelt auf die printer.cfg klicken.

Nach unten scrollen, den Cursor dort platzieren und Strg-V.

„Speichern und Neustart“ anklicken.

Nun startet Klipper und wir sind soweit fertig.

Anpassungen

2208?

Die leisen Treiber lassen die Motoren in die gegensÀtzliche Richtung drehen. Ich wollte die Stecker auf dem Mainboard des Anycubic i3 Mega nicht umdrehen, also musste ich dies in der Software machen. In der printer.cfg Ànderte ich die folgenden EintrÀge:

[stepper_x]
step_pin: PF0
dir_pin: PF1
enable_pin: !PD7
microsteps: 16
rotation_distance: 40
endstop_pin: ^!PE5
position_min: -5
position_endstop: -5
position_max: 210
homing_speed: 30.0

[stepper_y]
step_pin: PF6
dir_pin: !PF7
enable_pin: !PF2
microsteps: 16
rotation_distance: 40
endstop_pin: ^!PL7
position_endstop: 0
position_max: 210
homing_speed: 30.0

[stepper_z]
step_pin: PL3
dir_pin: !PL1
enable_pin: !PK0
microsteps: 16
rotation_distance: 8
endstop_pin: ^!PD3
position_min: -1.5
position_max: 205
homing_speed: 5.0

[stepper_z1]
step_pin: PC1
dir_pin: !PC3
enable_pin: !PC7
microsteps: 16
rotation_distance: 8
endstop_pin: ^!PL6
enable_pin = !PC7

Es geht um die EintrÀge mit dem Ausrufezeichen (!). Dies Àndert die Drehrichtung der Motoren.

BL-Touch

Der X-Y-Offset des BL-Touchs muss ermittelt werden. Das ist der Abstand zwischen der Postition der Nozzle und des Stiftes des BL-Touchs. Klipper muss an der Stelle messen, wo sich die DĂŒse befinden soll.

Ich habe mich an diese Anleitung gehalten.

Wenn man den BL-Touch mit dem Knutwurst-Halter mittig im DruckopfgehÀuse befestigt hat, betrÀgt der Offset in etwa X: 1 und y -23. In der printer.cfg tragen wir das ein.

[bltouch]
sensor_pin = ^PE4
control_pin = PB5
# do your own measurement
x_offset = 1
y_offset = -23
#z_offset = 2.460
stow_on_each_sample = False
probe_with_touch_mode = True

Los geht’s!

Ich wollte direkt los drucken, musste mich aber bremsen. Zuerst musste ich wenigstens das Bett leveln.

Bett ins Wasser bringen

Gestern habe ich noch einmal das Bett mithilfe des Befehls SCREWS_TILT_CALCULATE ganz exakt ausgerichtet. Die vordere links Ecke sollte nur halbwegs stimmen, sodass die Nozzle nicht ins Heizbett rammt, wenn er auf Nullposition ist. An dieser Schraube richten sich alle anderen von der Höhe.

Wo sind denn die Schrauben?

Bei einem serienmĂ€ĂŸigen Ai3M befinden sich die Schrauben nach meiner Messung ungefĂ€hr hier:

[screws_tilt_adjust]
screw1: 0,30
screw1_name: front left screw
screw2: 210,30
screw2_name: front right screw
screw3: 210,210
screw3_name: rear right screw
screw4: 0,210
screw4_name: rear left screw
speed: 80.
screw_thread: CW-M3

Das kann man so in seine printer.cfg kopieren. Es ist klar, dass die hinteren Schrauben durch den Druckkopf nicht erreicht werden können, da sie sich außerhalb des Druckbereichs befinden.

Einstellprozedur

Die Ausgabe des Befehls ist tatsĂ€chlich eine Angabe, um wie viele Stunden und Minuten man das Levelrad in welche Richtung drehen soll. Ich beließ es bei mir mit einer Genauigkeit von je einer Minute.

Akzeptieren klicken und ein SAVE_CONFIG in die Konsole eingeben, damit der Wert auch gespeichert wird.

Schau Mama! Keine Federn!

Warum nicht auch noch diese Minute einstellen? Nun, eigentlich hat der Any, so wie alle anderen alten Drucker auch, solche Federn, die das Bett nach oben drĂŒcken und die Schrauben, die es nach unten ziehen.

Da mein Bett aber so krumm war, war die hintere linke Schraube immer lose. Also habe ich mir diese STL als neue, große Bedlevelschrauben genommen und in diese eine kleine M3-Mutter geklebt:

Als Ersatz fĂŒr die Federn drĂŒcken nun Kontermuttern das Bett nach oben:

Nun wird das Bett mit Gewalt auf der korrekten Höhe gehalten. Es gibt aber auch nicht mehr nach, wenn die Nozzle zu weit herunterfÀhrt.

Das Einstellen wird durch je zwei EinstellrĂ€der nicht einfacher. Erst das große Rad lösen, dann die Kontermutter nach Anweisung Klippers drehen und dann mit der unteren Mutter wieder kontern. Dabei hat man schnell zu fest oder zu locker gekontert. Wie dem auch sei: Die paar Minuten Arbeit ist das Ergebnis alle Male wert gewesen.

Klinkt erst nach einem totalen overkill, aber das ist es wirklich nicht. Tolle Funktion in Klipper.

Endstopps (Z-Offset) kalibrieren

Nun kalibrierte ich die Endstopps. Der Anycubic hat je einen Motor pro Z-Achsenspindel. Beide sind nicht mit einem Zahnriemen miteinander synchronisiert, sodass nach einigen Druckjobs die Z-Achsen unterschiedlich hoch stehen. Das schlecht. Nix gut.

Mit dem BL-Touch könnte man das zwar vor jedem Druck zeitaufwendig leveln, aber man kann sich auch die Hose mit einer Kneifzange anziehen. Der i3 Mega hat schließlich zwei Endstopschalter, die hervorragend funktionieren. Der Drucker sollte aber wissen, wie weit die Nozzle vom Druckbett entfernt ist, wenn die Endstopschalter auslösen.

Der Zwischenraum sollte in der Regel 0,1 mm betragen. Womit könnte man das messen? Mit einem Blatt DIN-A4-Kopierpapier. Das hat 0,1 mm StÀrke! Mit dem Befehl Z_ENDSTOP_CALIBRATE stellte ich diesen Abstand ein.

Ich mag es beim Any etwas strammer eingestellt. Bei mir sollte ein DIN A4- Blatt gerade so unter der DĂŒse nach hinten geschoben werden können, dass das Papier sich dabei nicht nach oben wölbt.

Die Ausgabe zeigt im Beispielbild die Position meines Homes an. Das ist nicht wie beim originalen bei 0,0,0, sondern bei 105, 105, 5. Dies ist die Mitte des Betts und die DĂŒse steht 5 mm ĂŒber der Endstopposition.

Ich fuhr die Z-Achse ĂŒber „–“ soweit noch unten, bis das Papier klemmte. Dann langsam mit „+“ wieder nach oben, bis das Blatt Papier locker unter der Nozzle verschoben werden kann.

Nun mit den Babysteps soweit nach unten, bis es mir vom GefĂŒhl her passte. Wenn das beim Druck spĂ€ter entweder zu niedrig oder zu stramm ist, kann man es im laufenden Druck im Fenster „Werkzeugkopf“ *sic* ĂŒber den Z-Offset (Z-Versatz *sic*) noch Ă€ndern. Nur sollte man dann nicht vergessen, den Wert zu speichern: SAVE_CONFIG.

Ich war zufrieden mit meiner Einstellung. Schön ist, dass man durch dieses SCREWS_TILT_CALCULATE nur einmal einstellen muss. Der Rest wird vom Bedleveling angeglichen.

Bedleveling starten

Diese Funktion benötigt wieder einen Eintrag in der printer.cfg, damit Klipper weiß, wie groß das Bett ĂŒberhaupt ist. Das vom Anycubic i3 Mega ist 210 x 210 groß.

[bed_mesh]
speed = 200
horizontal_move_z = 2.460
mesh_min = 2,2
mesh_max = 210,187
probe_count =5,5
#fade_start = 1.0
#fade_end = 10.0
algorithm = bicubic

25 Messpunkte sollten reichen, als setzte ich den probe_count auf 5,5. Hier kann man Werte ab 3,3 bis … keine Ahnung … eingeben. 5×5 reicht fĂŒr einen Drucker dieser GrĂ¶ĂŸe locker aus.

Vor dem Kalibrieren des Druckbetts mĂŒssen wir die Achsen homen. Auf das orange Haus klicken. Dann auf „Kalibrieren“, wenn das durchgelaufen ist, mĂŒssen wir die ganze Nummer wieder speichern.

Die Glasplatte ist alles andere als eben. Und nicht einmal gleichmĂ€ĂŸig uneben. Wie eine Auenlandschaft. Wirklich schlimm. Aber egal, er hat den Bedleveltest sehr zufriedenstellend ausgedruckt. BL-Touch regiert. 🙂

Bedmesh laden

Ich wollte mich nicht mĂŒde machen und immer mein funktionierendes geleveltes Bett (default_funzt) in den Start Gcode des Slicers eintragen, oder das Bett vor jedem Druck neu zu leveln, deswegen Ă€nderte ich die printer.cfg wie folgt:

[delayed_gcode bed_mesh_init]
initial_duration: .01
gcode:
  BED_MESH_PROFILE LOAD=default_funzt

Dadurch wird immer dieses Mesh geladen. Ein Nobrainer ab jetzt.

PID-Tuning

Nun will ich noch, dass das Hotend und das Bett schneller aufgeheizt werden und die Temperatur prÀziser gehalten wird. Das erreichte ich mit dem Befehl PID_CALIBRATE HEATER=extruder TARGET=210

Mit 210 Grad drucke ich vermutlich die meisten Filamente. Nach Eingabe des Befehls in die Konsole arbeitet der Drucker einige Zeit und erhitzt dabei immer wieder das Hotend, bis der Algorithmus gelernt hat, wie den Über- und Unterschwingern im Temperaturverlauf am besten beizukommen ist. Wann muss mit wie viel Prozent geheizt werden, damit die Temperatur nicht zu stark fĂ€llt? Wann muss wieder ausgeschaltet werden, damit die Temperatur nicht ĂŒber das Soll hinausgießt?

Analog gibt es einen solchen Befehl auch fĂŒr das Heizbett:  PID_CALIBRATE HEATER=heater_bed TARGET=60

Erster Druck

Fertig soweit. Also gab ich ihm einen Weihnachtsbaum als Testdruck. Statt der maximalen 60 mm/s habe ich aber stumpf 90 mm/s eingestellt. Mal sehen, was dabei herauskommt, denn immerhin ist das GerĂ€t – bis auf eine selbst gedruckte KomponentenkĂŒhlung, die leisen Treiber und den BL-Touch – serienmĂ€ĂŸig.

Tut mir leid, die Kamera in meinem Telefon stellt nichts mehr scharf. Es ist wohl einmal zu oft heruntergefallen in den vergangenen sechs Jahren. 🙁

Ai3M Weihnachtsbaum OWL PLA, 90 mm/s, Klipper
Ai3M Weihnachtsbaum OWL PLA, 90 mm/s, Klipper
Ai3M Weihnachtsbaum OWL PLA, 90 mm/s, Klipper
Ai3M Weihnachtsbaum OWL PLA, 90 mm/s, Klipper
Ai3M Weihnachtsbaum OWL PLA, 90 mm/s, Klipper
Ai3M Weihnachtsbaum OWL PLA, 90 mm/s, Klipper

Das ist der erste Ausdruck mit Klipper. Ich habe bis auf das Bett nichts kalibriert. Keine E-Steps, kein Fluss, nichts. Ist das vier Jahre alte PLA von Owl, das will ich nur noch Wegdrucken.

Aber, ich nehme ihn gerade noch einmal in die Hand … 90 mm/s? Ein alter i3M? PLA von Owl? Verdammt, das Ding sieht richtig gut aus. Ich bin wirklich zufrieden.

Na ja … 90 mm/s sind okay, aber 120 mm/s sind besser! Doppelt so schnell wie das Original. Bisschen an allen anderen Geschwindigkeiten gedreht und auch die Beschleunigungswerte hochgesetzt. Noch einen Baum gedruckt, diesmal etwas grĂ¶ĂŸer. 1:48 h Druckdauer.

Der alte Any gab Gas als gÀbe es kein Morgen. Mir war nicht klar, dass der so hohe Beschleunigungswerte erreichen kann. Sieht schon fast wie ein moderner Drucker aus.

Anycubic i3 Mega, Klipper, 120 mm/s
Anycubic i3 Mega, Klipper, 120 mm/s

Das ist ein sehr erfreuliches Ergebnis. Gut, der Baum ist sicher kein guter Testdruck. Ich wollte aber eben das grĂŒne Filament verdrucken. Ich benötige ein neues Smartphone mit einer guten Kamera, dann mache ich noch einmal richtige Bilder.

Und sonst?

Endlich stimmt auch die LautstĂ€rke. Kein Heulen und Singen der Motoren mehr. Ein wirklich angenehmer Sound, auch wenn der originale BauteillĂŒfter anspringt, der mittlerweile einen beginnenden Lagerschaden hat. Der Drucker klingt nun wesentlich … massiver, wertiger.

Fazit

Bis auf eine kleine Unperfektheit am Boden des Baumes war auch der schnelle Druck ein voller Erfolg. 1:48 h dauerte er.

NatĂŒrlich ist mein Qidi auch im Schongang mit 200 mm/s immer noch doppelt so schnell (55 min), was auf die wesentlich höheren Beschleunigungswerte zurĂŒckzufĂŒhren ist.

Schön, dass mein erster 3D-Drucker durch Klipper doch noch ein zweites Leben erhalten hat.

Also: Klipper auf dem alten Anycubic? Ja, klar, sicher! Gerne und immer wieder!
Hat sie die Arbeit gelohnt? Absolut!

Update

Und schon gibt es ein Update! Aktuell rennt der Drucker problemlos mit 150 mm/s und einer Beschleunigung von 6.000 mm/sÂČ. Die Lager des Betts jaulen dabei sporadisch, wenn der Kopf von einer Ecke in die andere fĂ€hrt. Der Ausdruck sieht noch völlig normal aus.

NatĂŒrlich kann man die 150 mm/s nicht mit denen eines aktuellen Druckers vergleichen. Mit dem Qidi drucke ich meistens nur 200 mm/s, aber selbst damit ist er noch doppelt so schnell wie der Any mit 150 mm/s. Das resultiert eben aus den enormen Beschleunigungswerten, die heutige Drucker durch ihren Leichtbau erreichen.

Trotzdem ist das Ergebnis top fĂŒr so einen alten Herren, oder nicht?

Aussicht

Immer, wenn was lĂ€uft, will man mehr. Mit einem BMG-Extruder und einem V6 Hotend aufgerĂŒstet, soll der Any bis zu 250 mm/s schaffen.

Ich komme ins GrĂŒbeln 


Merklisten

Hardware

2208 Treiber (verbaut)

E3d v6 Hotend Clone

Direct MK4 Extruder: BMG-Clone

V6 Slikon-Skocken

Einstellungen Slicer lt. div. Quellen

  • Infill 1st Layer: 200 mm/s
  • perimeter 300
  • external perimeter 250
  • infill 250
  • top shell 200
  • travel: 300
  • max_accel and max_accel_to_decel 4000
    (ab 7000 jaulen die Lager, ab 10.000 rutschen die Riemen durch)

Über den Autor

Hessi

Michael "Hessi" Heßburg ist ein ehemaliger Informatiker mit langjĂ€hriger Erfahrung und ein vielseitiger Technik-Enthusiast mit Interessen in Haus & Garten, Hausrenovierung, IT, 3D-Druck, Retrocomputing und Autoreparatur. DarĂŒber hinaus beschĂ€ftigt er sich auf seiner Website mit gesellschaftspolitischen Themen wie Datenschutz und Überwachung. Hessi betreibt diese Website seit ĂŒber 25 Jahren und ist seit 20 Jahren freiberuflicher Autor. In seinem Blog teilt er fundierte Einblicke und praktische Tipps, um seine Leser bei ihren Projekten und Hobbys zu unterstĂŒtzen. Hessi legt großen Wert darauf, dass seine Themen sorgfĂ€ltig recherchiert und auch fĂŒr Laien verstĂ€ndlich aufbereitet sind.

1 Gedanke zu „3D-Drucker mit Klipper beschleunigen“

  1. Hey. Sehr schöner Beitrag. Bin auch gerade dabei meine i3 Mega von 2017 aufzurĂŒsten und bin vor einem Monat auch auf Klipper gestoßen nachdem ich viele Jahre mit Marlin und OctoPrint gearbeitet habe.

    Viele GrĂŒĂŸe und fleißiges Drucken

    René

    Antworten

Schreibe einen Kommentar

Ich bin mit der DatenschutzerklÀrung und der Speicherung meiner eingegebenen Daten einverstanden.