Marlin G-Code Befehle – Übersicht und Erläuterungen
Einführung:
G-Codes sind die Steuerbefehle, mit denen 3D-Drucker und CNC-Maschinen arbeiten. Die Marlin-Firmware unterstützt eine Vielzahl von G-Code-Befehlen (G-Codes) und M-Code-Befehlen (M-Codes) für Bewegung, Temperatureinstellung, Kalibrierung und vieles mehr. Im Folgenden findest du eine ausführliche Zusammenstellung der wichtigsten Marlin-kompatiblen Befehle – inklusive einfacher Erklärungen, Parameterbeschreibungen und praktischer Beispielcodes.
Inhaltsverzeichnis
- G-Codes (Bewegungs- und Druckbefehle):
- G0/G1 – Lineare Bewegung (Geradliniger Move)
- G2/G3 – Kreis-/Bogenbewegung (Arc Move)
- G4 – Pause (Verweilzeit)
- G10/G11 – Filament zurückziehen/wieder aufnehmen (Retract/Recover)
- G12 – Düsenreinigung (Nozzle Clean)
- G17/G18/G19 – Arbeitsfläche (Ebene) wählen
- G20/G21 – Einheiten einstellen (Zoll/Millimeter)
- G28 – Referenzfahrt (Home aller Achsen)
- G29 – Bett-Nivellierung (Auto Bed Leveling)
- G30 – Einzelpunkt-Probe (Single Z-Probe)
- G90 – Absoluter Modus (Absolute Positionierung)
- G91 – Relativer Modus (Relative Positionierung)
- G92 – Aktuelle Position setzen
- M-Codes (Einstell- und Steuerbefehle):
- M0/M1 – Programmstopp / Pause
- M3/M4/M5 – Spindel/Laser an/aus (CNC/Lasersteuerung)
- M7/M8/M9 – Kühlmittel an/aus (CNC)
- M17 – Motoren aktivieren (Steppers on)
- M18/M84 – Motoren deaktivieren (Steppers off)
- M20 – SD-Karte: Dateiliste anzeigen
- M21 – SD-Karte: Karte initialisieren
- M22 – SD-Karte: Karte auswerfen (deaktivieren)
- M23 – SD-Karte: Datei auswählen
- M24 – SD-Karte: Druck starten/fortsetzen
- M25 – SD-Karte: Druck pausieren
- M26 – SD-Karte: Dateiposition setzen
- M27 – SD-Karte: Druckstatus abfragen
- M28 – SD-Karte: G-Code in Datei schreiben (Logging)
- M29 – SD-Karte: Dateischreiben beenden
- M30 – SD-Karte: Datei löschen
- M31 – Druckzeit anzeigen
- M42 – Pin-Zustand setzen (benutzerdefinierter IO)
- M82 – Extruder auf absolut stellen
- M83 – Extruder auf relativ stellen
- M104 – Hotend-Temperatur setzen (ohne Warten)
- M105 – Temperaturen abfragen
- M106 – Lüfter einschalten / Drehzahl einstellen
- M107 – Lüfter ausschalten
- M108 – Heiz-Warteschleife abbrechen
- M109 – Hotend aufheizen und warten
- M112 – Not-Aus (Emergency Stop)
- M114 – Aktuelle Position ausgeben
- M115 – Firmware-Info ausgeben
- M117 – LCD-Nachricht anzeigen
- M119 – Endstop-Status abfragen
- M140 – Heizbett-Temperatur setzen (ohne Warten)
- M190 – Heizbett aufheizen und warten
- M201 – Maximale Beschleunigung setzen
- M203 – Maximale Geschwindigkeit (Feedrate) setzen
- M204 – Beschleunigung (Acceleration) einstellen
- M205 – Erweiterte Bewegungs-Einstellungen (Jerk, etc.)
- M206 – Home-Offset setzen (Achsen-Offset)
- M211 – Software-Endstops an/aus
- M220 – Feedrate-Skalierung (Drucktempo ändern)
- M221 – Flow-Skalierung (Extrusionsmenge ändern)
- M226 – Warten auf Signal (Pin-Zustand)
- M300 – Ton abspielen (Beep)
- M301 – Hotend-PID Werte setzen
- M302 – Kaltextrusion erlauben/verhindern
- M303 – PID-Autotune (Regelparameter ermitteln)
- M304 – Heizbett-PID Werte setzen
- M400 – Bewegungspuffer leeren (Warten bis Moves fertig)
- M420 – Bett-Nivellierung ein/aus und Status
- M500 – Einstellungen in EEPROM speichern
- M501 – Einstellungen aus EEPROM laden
- M502 – Werkseinstellungen laden
- M503 – Aktuelle Einstellungen berichten
- M600 – Filamentwechsel durchführen (Pause für Wechsel)
- M851 – Z-Probe Offset festlegen
- M900 – Linear Advance Faktor setzen (Druckvorschub-Kompensation)
- T0, T1, … – Extruder/Tool wählen
G0/G1 – Lineare Bewegung (Geradliniger Move)
Beschreibung: Führt eine lineare Bewegung der Druckerachsen durch. G1 ist der Standardbefehl, G0 ein Alias in Marlin. Optional kann dabei Material extrudiert werden.
Parameter: X, Y, Z (Zielpositionen), E (Extrusionslänge), F (Geschwindigkeit in mm/min).
Beispiele:
G1 X100 Y50 Z0 F3000 ; Fahre zu X=100, Y=50 mit 3000 mm/min
G1 X100 Y100 E10 F1500 ; Fahre zu X=100, Y=100 und extrudiere 10 mm Filament
G2/G3 – Kreis-/Bogenbewegung (Arc Move)
Beschreibung: Führt kreis- oder bogenförmige Bewegungen aus.
• G2 = im Uhrzeigersinn
• G3 = gegen den Uhrzeigersinn
Parameter: X, Y (Endposition), I, J (Versatz zum Mittelpunkt), optional R (Radius), E (Extrusion), F (Geschwindigkeit).
Beispiele:
G2 X10 Y0 I0 J-10 E2 F1200 ; Viertelkreis im Uhrzeigersinn
G3 X0 Y10 I-10 J0 E2 F1200 ; Viertelkreis gegen den Uhrzeigersinn
G4 – Pause (Verweilzeit)
Beschreibung: Hält den Drucker für die angegebene Zeit an.
Parameter: P (Millisekunden) oder S (Sekunden).
Beispiele:
G4 S5 ; Warte 5 Sekunden
G4 P5000 ; Warte 5000 ms (5 Sekunden)
G10/G11 – Filament zurückziehen/wieder aufnehmen (Retract/Recover)
Beschreibung:
• G10 zieht Filament zurück (Retract),
• G11 führt den Rückzug wieder rückgängig (Recover).
*(Hinweis: Funktioniert nur, wenn FWRETRACT aktiviert ist.)*
Beispiel:
G1 X50 Y50 F6000 ; Bewegung ohne Extrusion
G10 ; Filament zurückziehen
G1 X60 Y60 F6000 ; Weiterbewegen
G11 ; Filament wieder zuführen
G1 X70 Y60 E5 F1200 ; Bewege und extrudiere 5 mm Filament
G12 – Düsenreinigung (Nozzle Clean)
Beschreibung: Startet ein vordefiniertes Reinigungsprogramm für die Düse.
Beispiel:
G12 ; Starte Düsenreinigung
G17/G18/G19 – Arbeitsfläche (Ebene) wählen
Beschreibung:
• G17 wählt die XY-Ebene (Standard),
• G18 wählt die ZX-Ebene,
• G19 wählt die YZ-Ebene.
Beispiel:
G17 ; Wähle XY-Ebene (Standard)
G20/G21 – Einheiten einstellen (Zoll/Millimeter)
Beschreibung:
• G20 schaltet auf Zoll (1 Zoll = 25.4 mm),
• G21 schaltet auf Millimeter (Standard).
Beispiel:
G21 ; Verwende Millimeter
G28 – Referenzfahrt (Home aller Achsen)
Beschreibung: Fährt eine oder mehrere Achsen an den Endstopp (Nullpunkt).
Parameter: Optional: Angabe einzelner Achsen (X, Y, Z).
Beispiele:
G28 ; Home alle Achsen
G28 X Y ; Home X- und Y-Achse
G28 Z ; Home Z-Achse
G29 – Bett-Nivellierung (Auto Bed Leveling)
Beschreibung: Startet die automatische Bett-Nivellierung. Dabei wird an mehreren Punkten gemessen, um ein Mesh zur Kompensation von Unebenheiten zu erstellen.
Beispiel:
G28 ; Home aller Achsen
G29 ; Starte Auto Bed Leveling
G30 – Einzelpunkt-Probe (Single Z-Probe)
Beschreibung: Misst an der aktuellen Position die Z-Höhe mittels Z-Probe.
Beispiel:
G1 X100 Y100 Z5 F6000 ; Fahre nahe an den Bettbereich
G30 ; Messe Z-Höhe an dieser Position
G90 – Absoluter Modus (Absolute Positionierung)
Beschreibung: Schaltet in den absoluten Koordinatenmodus – alle Positionen werden relativ zum festen Nullpunkt angegeben.
Beispiel:
G90 ; Absoluter Modus
G1 X50 Y50 F3000 ; Fahre zu X=50, Y=50 (absolut)
G91 – Relativer Modus (Relative Positionierung)
Beschreibung: Schaltet in den relativen Modus – alle Bewegungen erfolgen relativ zur aktuellen Position.
Beispiel:
G91 ; Relativer Modus
G1 X10 Y-5 ; Bewege um 10 mm in X, -5 mm in Y
G92 – Aktuelle Position setzen
Beschreibung: Setzt die aktuelle Position auf einen angegebenen Wert, ohne den Drucker zu bewegen.
Beispiele:
G92 X0 Y0 Z0 ; Setze aktuellen Punkt als (0,0,0)
G92 E0 ; Setze Extruder-Zähler auf 0
M0/M1 – Programmstopp / Pause
Beschreibung: Hält den Drucker an, bis der Benutzer fortfährt.
Beispiele:
M0 ; Pause bis Benutzerinteraktion
M1 S5 ; Pausiere 5 Sekunden
M3/M4/M5 – Spindel/Laser an/aus (CNC/Lasersteuerung)
Beschreibung: Steuert Spindeln oder Laser.
• M3: Einschalten (Uhrzeigersinn)
• M4: Einschalten (gegen den Uhrzeigersinn)
• M5: Ausschalten
Beispiele (Laser):
M4 S128 ; Schalte Laser mit 50% Leistung ein
G1 X50 Y50 F1000 ; Fahre, während Laser aktiv ist
M5 ; Schalte Laser aus
M7/M8/M9 – Kühlmittel an/aus (CNC)
Beschreibung:
• M7: Nebelkühlung einschalten
• M8: Flutkühlung einschalten
• M9: Kühlmittel ausschalten
Beispiel:
M8 ; Schalte Flutkühlung ein
... (CNC-Vorgang) ...
M9 ; Kühlmittel ausschalten
M17 – Motoren aktivieren (Steppers on)
Beschreibung: Aktiviert alle Schrittmotoren.
Beispiel:
M17 ; Schrittmotoren einschalten
M18/M84 – Motoren deaktivieren (Steppers off)
Beschreibung: Deaktiviert alle Schrittmotoren, sodass sich die Achsen frei bewegen lassen.
Beispiele:
M84 ; Schrittmotoren sofort deaktivieren
M84 S300 ; Nach 300 Sekunden Inaktivität automatisch deaktivieren
M20 – SD-Karte: Dateiliste anzeigen
Beschreibung: Listet alle Dateien auf der SD-Karte im Terminal auf.
Beispiel:
M20 ; Liste SD-Karten-Dateien anzeigen
M21 – SD-Karte: Karte initialisieren
Beschreibung: Initialisiert bzw. mountet die SD-Karte.
Beispiel:
M21 ; SD-Karte initialisieren
M22 – SD-Karte: Karte auswerfen (deaktivieren)
Beschreibung: „Wirft“ die SD-Karte aus.
Beispiel:
M22 ; SD-Karte auswerfen
M23 – SD-Karte: Datei auswählen
Beschreibung: Wählt eine Datei von der SD-Karte zum Drucken aus.
Beispiel:
M23 example.gcode ; Wähle "example.gcode" aus
M24 – SD-Karte: Druck starten/fortsetzen
Beschreibung: Startet oder setzt einen SD-Druck fort.
Beispiel:
M24 ; Starte oder resume SD-Druck
M25 – SD-Karte: Druck pausieren
Beschreibung: Pausiert den laufenden SD-Druck.
Beispiel:
M25 ; Pausiere SD-Druck
M26 – SD-Karte: Dateiposition setzen
Beschreibung: Setzt die Leseposition in der SD-Datei (in Byte).
Beispiel:
M26 S12345 ; Setze Dateileseposition auf Byte 12345
M27 – SD-Karte: Druckstatus abfragen
Beschreibung: Fragt den Fortschritt des SD-Drucks ab.
Beispiel:
M27 ; SD-Druckstatus anzeigen
M28 – SD-Karte: G-Code in Datei schreiben (Logging)
Beschreibung: Beginnt, eingehenden G-Code in eine Datei auf der SD-Karte zu schreiben.
Beispiel:
M28 newfile.gcode ; Starte das Schreiben in "newfile.gcode"
... (G-Code wird in Datei geschrieben) ...
M29 ; Beende den Schreibvorgang
M29 – SD-Karte: Dateischreiben beenden
Beschreibung: Beendet den Schreibmodus, der mit M28 gestartet wurde.
Hinweis: Siehe obiges M28-Beispiel.
M30 – SD-Karte: Datei löschen
Beschreibung: Löscht eine angegebene Datei von der SD-Karte.
Beispiel:
M30 oldfile.gcode ; Lösche "oldfile.gcode"
M31 – Druckzeit anzeigen
Beschreibung: Gibt die seit Druckstart vergangene Zeit aus.
Beispiel:
M31 ; Zeige Druckzeit (z.B. 02:35:20)
M42 – Pin-Zustand setzen (benutzerdefinierter IO)
Beschreibung: Setzt einen digitalen Ausgangspin auf HIGH oder LOW.
Parameter: P (Pin-Nummer), S (Wert, 0 = LOW, 255 = HIGH).
Beispiel:
M42 P4 S255 ; Setze Pin 4 auf HIGH
M42 P4 S0 ; Setze Pin 4 auf LOW
M82 – Extruder auf absolut stellen
Beschreibung: Schaltet den Extruder in den absoluten Modus (E-Werte = absolute Positionen).
Beispiel:
M82 ; Extruder absolut
M83 – Extruder auf relativ stellen
Beschreibung: Schaltet den Extruder in den relativen Modus (E-Werte = relative Mengen).
Beispiel:
M83 ; Extruder relativ
M104 – Hotend-Temperatur setzen (ohne Warten)
Beschreibung: Setzt die Hotend-Solltemperatur und fährt sofort fort, ohne zu warten.
Parameter: S (Zieltemperatur in °C), optional T (Extruderwahl).
Beispiele:
M104 S200 ; Setze Hotend auf 200°C, ohne zu warten
M104 S200 T0 ; Setze Hotend 0 auf 200°C
M105 – Temperaturen abfragen
Beschreibung: Fordert die aktuellen Temperaturen (Hotend, Heizbett, etc.) an.
Beispiel:
M105 ; Temperaturbericht anfordern
M106 – Lüfter einschalten / Drehzahl einstellen
Beschreibung: Schaltet den Partcooling-Fan ein und stellt dessen Geschwindigkeit ein.
Parameter: S (PWM-Wert 0-255), optional P (Fan-Nummer).
Beispiele:
M106 S255 ; Lüfter auf 100%
M106 S127 ; Lüfter auf ca. 50%
M106 S0 ; Lüfter aus (entspricht M107)
M107 – Lüfter ausschalten
Beschreibung: Schaltet den Partcooling-Fan aus.
Beispiel:
M107 ; Lüfter ausschalten
M108 – Heiz-Warteschleife abbrechen
Beschreibung: Bricht das Warten (z.B. bei M109) ab.
Beispiel:
M108 ; Brich Warten ab
M109 – Hotend aufheizen und warten
Beschreibung: Setzt die Hotend-Solltemperatur und wartet, bis diese erreicht ist.
Parameter: S (Zieltemperatur in °C), optional T (Extruderwahl).
Beispiel:
M109 S210 ; Warte bis Hotend 210°C erreicht
M112 – Not-Aus (Emergency Stop)
Beschreibung: Stoppt den Drucker sofort, schaltet Heizung und Motoren ab.
Beispiel:
M112 ; Not-Aus, sofort anhalten
M114 – Aktuelle Position ausgeben
Beschreibung: Gibt die aktuellen Koordinaten (X, Y, Z, E) aus.
Beispiel:
M114 ; Aktuelle Position abfragen
M115 – Firmware-Info ausgeben
Beschreibung: Zeigt Informationen zur Firmware (Name, Version, Features) an.
Beispiel:
M115 ; Firmware-Informationen anzeigen
M117 – LCD-Nachricht anzeigen
Beschreibung: Zeigt eine benutzerdefinierte Nachricht auf dem LCD an.
Beispiel:
M117 Druck startet... ; Zeige "Druck startet..." an
M119 – Endstop-Status abfragen
Beschreibung: Fragt den Zustand der Endstopps ab.
Beispiel:
M119 ; Endstop-Status anzeigen
M140 – Heizbett-Temperatur setzen (ohne Warten)
Beschreibung: Setzt die Heizbett-Solltemperatur und fährt fort, ohne zu warten.
Parameter: S (Zieltemperatur in °C).
Beispiel:
M140 S60 ; Heizbett auf 60°C, ohne zu warten
M190 – Heizbett aufheizen und warten
Beschreibung: Wartet, bis das Heizbett die Zieltemperatur erreicht hat.
Beispiel:
M190 S60 ; Warte bis Heizbett 60°C erreicht
M201 – Maximale Beschleunigung setzen
Beschreibung: Setzt die maximalen Beschleunigungswerte (mm/s²) für Achsen und Extruder.
Parameter: X, Y, Z, E.
Beispiel:
M201 X1000 Y1000 Z100 E5000 ; Maximale Beschleunigungen setzen
M203 – Maximale Geschwindigkeit (Feedrate) setzen
Beschreibung: Legt die maximalen Geschwindigkeiten (mm/s) für Achsen und Extruder fest.
Beispiel:
M203 X300 Y300 Z5 E25 ; Maximale Geschwindigkeiten einstellen
M204 – Beschleunigung (Acceleration) einstellen
Beschreibung: Setzt Standardbeschleunigungen für Druckbewegungen (mit Extrusion) und Reisen (ohne Extrusion).
Beispiel:
M204 P800 T2000 ; P = Druck-Beschleunigung, T = Reise-Beschleunigung
M205 – Erweiterte Bewegungs-Einstellungen (Jerk, etc.)
Beschreibung: Stellt feinere Bewegungsparameter wie Jerk (ruckfreie Geschwindigkeitsänderung) ein.
Beispiel:
M205 X10 Y10 Z0.4 E2 ; Setze Jerk-Werte für X/Y, Z und Extruder
M206 – Home-Offset setzen (Achsen-Offset)
Beschreibung: Setzt einen Versatz für den Home-Punkt (Nullpunkt) der Achsen.
Beispiel:
M206 X5 Y0 Z0 ; Versetze X-Nullpunkt um 5 mm
M211 – Software-Endstops an/aus
Beschreibung: Aktiviert oder deaktiviert die virtuellen Endstops, die den Arbeitsbereich begrenzen.
Beispiel:
M211 S0 ; Deaktiviere Software-Endstops
M220 – Feedrate-Skalierung (Drucktempo ändern)
Beschreibung: Passt die Geschwindigkeit aller Bewegungen als Prozentsatz an.
Beispiel:
M220 S75 ; Setze globale Geschwindigkeit auf 75%
M221 – Flow-Skalierung (Extrusionsmenge ändern)
Beschreibung: Passt die Extrusionsmenge als Prozentsatz an.
Beispiel:
M221 S95 ; Setze Extrusionsrate auf 95%
M226 – Warten auf Signal (Pin-Zustand)
Beschreibung: Hält die Ausführung an, bis ein spezifizierter Pin den gewünschten Zustand erreicht.
Parameter: P (Pin-Nummer), S (Erwarteter Zustand: 0 oder 1).
Beispiel:
M226 P2 S1 ; Warte, bis Pin 2 HIGH wird
M300 – Ton abspielen (Beep)
Beschreibung: Spielt einen Ton über den Piezo-Lautsprecher ab.
Parameter: S (Frequenz in Hz), P (Dauer in ms).
Beispiel:
M300 S1000 P500 ; 1000 Hz für 500 ms
M301 – Hotend-PID Werte setzen
Beschreibung: Setzt die PID-Regelparameter für das Hotend.
Beispiel:
M301 P22.2 I1.08 D114 ; Setze PID-Werte für Hotend
M302 – Kaltextrusion erlauben/verhindern
Beschreibung: Erlaubt oder verhindert Extrusion bei kaltem Hotend.
Beispiele:
M302 P1 ; Erlaube Kaltextrusion (nur zu Testzwecken)
M302 P0 ; Setze Standard-Sicherheit (kein Kaltextrudieren)
M303 – PID-Autotune (Regelparameter ermitteln)
Beschreibung: Führt ein PID-Autotuning für das Hotend oder Heizbett durch.
Beispiele:
M303 E0 S210 C5 ; PID Autotune für Hotend 0 bei 210°C, 5 Zyklen
M303 E-1 S60 C8 ; PID Autotune für Heizbett bei 60°C, 8 Zyklen
M304 – Heizbett-PID Werte setzen
Beschreibung: Setzt die PID-Werte für das Heizbett.
Beispiel:
M304 P694.1 I111.47 D925 ; Setze PID-Werte für Heizbett
M400 – Bewegungspuffer leeren (Warten bis Moves fertig)
Beschreibung: Wartet, bis alle vorherigen Bewegungsbefehle abgeschlossen sind.
Beispiel:
M400 ; Warten bis alle Moves fertig sind
M420 – Bett-Nivellierung ein/aus und Status
Beschreibung: Schaltet die Bett-Nivellierung (Mesh) ein oder aus.
Beispiel:
M420 S1 ; Aktiviere Bett-Nivellierung
M500 – Einstellungen in EEPROM speichern
Beschreibung: Speichert alle aktuellen Einstellungen dauerhaft im EEPROM.
Beispiel:
M500 ; Speichere Einstellungen
M501 – Einstellungen aus EEPROM laden
Beschreibung: Lädt die im EEPROM gespeicherten Einstellungen.
Beispiel:
M501 ; Lade gespeicherte Einstellungen
M502 – Werkseinstellungen laden
Beschreibung: Setzt alle Einstellungen auf die Firmware-Defaults zurück.
Beispiel:
M502 ; Lade Werkseinstellungen
M500 ; Speichere sie im EEPROM
M503 – Aktuelle Einstellungen berichten
Beschreibung: Gibt alle aktuellen Konfigurationswerte aus.
Beispiel:
M503 ; Bericht der aktuellen Einstellungen
M600 – Filamentwechsel durchführen (Pause für Wechsel)
Beschreibung: Initiert einen Filamentwechsel, bei dem der Druck pausiert und der Kopf in eine Parkposition fährt.
Beispiel:
M600 ; Starte Filamentwechsel
M851 – Z-Probe Offset festlegen
Beschreibung: Setzt den Z-Probe Offset (Versatz zwischen Probe und Düse).
Beispiel:
M851 Z-1.30 ; Setze Z-Probe Offset auf -1.30 mm
M500 ; Speichere den Wert
M900 – Linear Advance Faktor setzen (Druckvorschub-Kompensation)
Beschreibung: Setzt den K-Faktor für Linear Advance, um Extrusionsvorschub bei Beschleunigungen zu kompensieren.
Beispiel:
M900 K0.22 ; Setze Linear Advance K-Faktor auf 0.22
T0, T1, … – Extruder/Tool wählen
Beschreibung: Wechselt den aktiven Extruder oder das Werkzeug in Multi-Extruder-Setups.
Beispiele:
T0 ; Wähle Extruder 0
T1 ; Wähle Extruder 1