M420 S1 vs. G29 Nivellier G-Code | Wann Welchen Verwenden?

Martin

Achtung: Links mit * sind Affiliate-Links. Ich verdiene etwas an qualifizierten Einkäufen, wenn du dich entscheidest, über diese Links einen Kauf zu tätigen – ohne zusätzliche Kosten für dich!


Eine automatische Druckbett Nivellierung ist extrem praktisch. Moderne Hobby 3D Drucker besitzen immer häufiger diese Funktion – und das auch in den niedrigeren Preisklassen, wie zum Beispiel der Elegoo Neptune 3. Aber wie funktioniert diese automatische Druckbett Nivellierung unter der Haube – woher weiß der 3D Drucker mit welchen Werten er die Neigung des Druckbetts während des aktuellen Auftrags ausgleichen muss? 

Mit dem M420 S1 G-Code Befehl lädt der 3D Drucker die Daten aus der letzten Druckbett Nivellierung und verwendet sie für den aktuellen Druck. Der G29 Befehl führt die Druckbett Nivellierung aus und verwendet die daraus gewonnenen Daten automatisch im aktuellen Druck. 

Wenn du also das Druckbett bei jedem Druckauftrag nivellieren möchtest, musst du nur G29 im Start G-Code verwenden. Wenn du nur gelegentlich das Druckbett automatisch nivellieren möchtest und die Daten daraus für jeden darauffolgenden Druck verwenden möchtest, musst du den M420 S1 Befehl in den Start G-Code schreiben. Achte dabei aber darauf, dass der M420 S1 Befehl immer nach dem G28 Befehl (Home Position anfahren) kommt, da dieser Befehl den Nivellierungs-Status deaktiviert. 

Wenn dir das jetzt alles etwas zu schnell war, gehen wir auf die einzelnen Befehle noch einmal im Detail ein und ich zeige dir wie und wo du die Befehle in den Start G-Code schreiben kannst. 

Kurz Zusammengefasst

  • M420 S1 = Die Daten der letzten Druckbett Nivellierung werden geladen und für den Druck verwendet.
  • G29 = Führt die Druckbett Nivellierung aus. Die daraus gewonnenen Daten werden für den aktuellen Auftrag verwendet, ohne M420 S1 benutzen zu müssen.
  • G28 (Home Position anfahren) deaktiviert den Status der Druckbett Nivellierung. Mit M420 S1 werden danach die Daten wieder geladen und dem 3D Drucker für den aktuellen Auftrag zur Verfügung gestellt.

Was Bewirkt der M420 S1 G-Code?

Durch den M420 S1 Befehl im Start G-Code werden die Daten aus der letzten Druckbett Nivellierung geladen und angewendet. Da der G28 Befehl (Home anfahren) den Status der Druckbett Nivellierung deaktiviert, wird der M420 S1 Befehl meistens direkt danach eingefügt. 

Der Befehl setzt sich aus den beiden G-Code Bestandteilen M420 und S1 zusammen. M420 steht für “bed leveling state” und S1 für “enabled”. Das heißt, dass nur die Daten der letzten Druckbett Nivellierung ausgelesen und verwendet werden. Dies hat nicht zur Folge, dass die Druckbett Nivellierung gestartet wird. Du wirst keinerlei Bewegungen des Druckkopfs bemerken wenn dieser Befehl ausgeführt wird.

Bei den meisten modernen 3D Drucker ist das Druckbett so stabil gelagert, dass es nur selten neu nivelliert werden muss. Daher bietet sich der M420 S1 G-Code an, um die Daten aus der letzten Druckbett Nivellierung immer wieder neu zu verwenden. 

Erst wenn du bemerkst, dass die Nivellierung nicht mehr gut ist, solltest du sie außerhalb eines Drucks separat neu durchführen. Durch den M420 S1 G-Code werden die Daten der neuen Nivellierung dann automatisch für die nächsten Drucke verwendet. 

Der M420 G-Code lässt sich noch mit vielen anderen Parametern verwenden. Das S1 steht hierbei nur dafür, dass der Status aktiviert wird. Mit S0 könntest du ihn deaktivieren. Es gibt aber auch noch die Parameter C, L, T, V und Z. Falls dich der M420 G-Code weiter interessiert und du noch mehr darüber lernen möchtest, kannst du in diesem Artikel alles darüber lernen: M420 S1 G-Code | Guide mit einfachen Beispielen

Was Bewirkt der G29 G-Code?

Der G29 G-Code führt die Druckbett Nivellierung aus. Steht der Befehl im Start G-Code des 3D Druckers, wird die Nivellierung am Anfang jedes Druckauftrags durchgeführt. Die Daten aus dieser Nivellierung werden für den Druckauftrag verwendet und müssen nicht mit M420 S1 geladen/aktiviert werden.

Der G29 G-Code kann insgesamt 5 verschiedene Methoden der Druckbett Nivellierung starten. Welche Methode davon angewendet wird, hängt davon ab welche du in der Konfigurationsdatei deines 3D Druckers definiert hast. Falls dein 3D Drucker schon mit einer automatischen oder halbautomatischen Druckbett Nivellierung geliefert wird, ist dies in der Datei schon vorhanden. 

Falls du deinen 3D Drucker jedoch aufrüsten möchtest und nachträglich einen Nivellier-Sensor wie den BL Touch oder CR Touch installierst, musst du mit dich mit den verschiedenen Nivellier-Methoden auseinandersetzen. Hier sind sie kurz aufgelistet, mehr erfährst du auf der Marlin-Website

  • Mesh-based Leveling:
    • Mesh Bed Leveling: #define MESH_BED_LEVELING
      Interaktive Druckbett Nivellierung ohne einen Sensor. 
    • Auto Bed Leveling (Bilinear): #define AUTO_BED_LEVELING_UBL
      Bilineare Druckbett Nivellierung mit/ohne Sensor. 
    • Unified Bed Leveling: #define AUTO_BED_LEVELING_BILINEAR
      Bilineare Druckbett Nivellierung mit Sensor.
  • Matrix-based Leveling:
    • Auto Bed Leveling (Linear): #define AUTO_BED_LEVELING_LINEAR
      Lineare Nivellierung mit/ohne Sensor. 
    • Auto Bed Leveling (3-Point): #define AUTO_BED_LEVELING_3POINT
      Dreipunkt Nivellierung mit/ohne Sensor. 

M420 S1 vs. G29

M420 S1 aktiviert den Status der Druckbett Nivellierung und stellt damit die Daten der letzten Nivellierung zur Verfügung. M420 S1 führt jedoch keine Nivellierung aus. Dafür gibt es G29. G29 führt die Nivellierung direkt aus und speichert/aktiviert die Werte.

Falls du dein Druckbett also bei jedem deiner Druckaufträge nivellieren möchtest, ist G29 genau der richtige Befehl dafür wenn du ihn in den Start G-Code einfügst. Nach diesem G-Code benötigst du auch den M420 S1 Befehl nicht mehr, da die Daten der Nivellierung durch G29 schon automatisch geladen sind und für den Druck verwendet werden.

Wenn du das Druckbett jedoch nur sporadisch nach Bedarf nivellieren möchtest (was ich bevorzuge), ist der M420 S1 G-Code Befehl besser geeignet. Damit verlierst du beim Start des 3D Drucks keine wertvolle Zeit mit einer wahrscheinlich unnötigen Druckbett Nivellierung.

Falls dein 3D Drucker übrigens über gar keine automatische oder halbautomatische Druckbett Nivellierung verfügt, passiert mit beiden Befehlen gar nichts.

Wie und Wo Wird M420 S1 oder G29 Aktiviert?

Der G-Code für die Druckbett Nivellierung wird im Start G-Code des 3D Druckers in den Maschineneinstellungen eingefügt. M420 S1 folgt dabei immer G28 (Home Position anfahren) und nach G29 wird der M420 S1 Befehl nicht mehr benötigt.

Es wäre ungewöhnlich beide Befehle zu verwenden, da sie unterschiedliche Zwecke haben. Zwar kannst du nach dem G29 Befehl auch den M420 S1 Befehl ausführen lassen, jedoch bewirkt dies nichts. 

Falls du Cura als Slicer verwendest, findest du den Start G-Code in dem du diese Befehle einfügen kannst unter dem Maschineneinstellungen. Du erreichst sie über die Menüleiste über “Settings” > “Printer” > “Manage Printers…”. Wenn du dir deinen eigenen DIY 3D Drucker selber baust, musst du dich sowieso mit den Maschineneinstellungen auseinandersetzen. Falls du einen 3D Drucker verwendest mit einer schon eingebauten Druckbett Nivellierung, wirst du wahrscheinlich sehen, dass der ein oder andere Befehl der hier beschrieben wurde schon im Start G-Code vorhanden ist. 

Brauche ich M420 S1 nach G29?

M420 S1 wird nicht nach dem G29 Befehl für das Ausführen der Druckbett Nivellierung benötigt. Durch den G29 Befehl bleiben die Daten der Nivellierung aktiv und werden für den aktuellen Druckauftrag verwendet. 

Der M420 S1 Befehl ist aber nach dem Anfahren der Home Position (G28) notwendig, da hier die Druckbett Nivellierung deaktiviert wird. Beispiele für die verschiedenen Anwendungen könnten also wie folgt aussehen: 

  • Keine Druckbett Nivellierung bei jedem Druck, jedoch Anwendungen der Daten aus der letzten Druckbett Nivellierung:
    G28 ; home axis
    M420 S1 ; enable mesh leveling
  • Druckbett Nivellierung bei jedem Druckauftrag:
    G28 ; home axis
    G29 ; execute bed leveling

Zusammenfassung

Nun solltest du wissen wann du den M420 S1 G-Code Befehl und wann den G29 Befehl im Start G-Code deines 3D Druckers verwenden musst. Beide haben ihre Berechtigung und sind je nach Anforderungen sehr nützlich. 


Achtung: Diese Website ist Eigentum von Martin Lütkemeyer und wird von Martin Lütkemeyer betrieben. Martin Lütkemeyer ist Mitglied bei Partnerprogrammen von Amazon Services LLC und anderen. Dies sind Affiliate-Werbeprogramme, die es Webseiten ermöglicht, Werbeeinnahmen durch Werbung und Verlinkung mit Amazon.com und anderen zu erzielen. Die mit * markierten Links sind Affiliate-Links.