G-Code-Dialekte: Warum Befehle nicht überall gleich wirken
08.10.2026
G-Code-Befehle teilen viele Grundformen, doch Firmware-Unterstützung, Parameter und Gerätekonfiguration bestimmen die tatsächliche Wirkung. An Beispielen aus Marlin, Klipper und RepRapFirmware zeigt sich, wie Sie Kompatibilität sicher prüfen.
Ein gemeinsames Alphabet, aber keine vollständige Grammatik
G-Code wirkt auf den ersten Blick universell: G1 fährt eine Strecke, M104 setzt eine Temperatur, M106 steuert einen Lüfter. Diese Ähnlichkeit ist praktisch, aber sie verspricht keine identische Implementierung. Klipper beschreibt ausdrücklich, dass es häufige Befehle aus verbreiteter Drittsoftware unterstützen möchte, nicht jedoch jeden möglichen G-Code. Auch RepRapFirmware weist darauf hin, dass manche Einträge der allgemeinen RepRap-Liste bei ihm nicht implementiert sind. Ein Dateiname mit der Endung .gcode sagt deshalb noch nicht, ob jede Zeile auf einem konkreten Gerät verstanden wird.
Der Befehl ist nur ein Teil der Bedeutung
Ein hilfreiches Beispiel ist M106. In Klippers Dokumentation steht M106 S für das Setzen der Lüftergeschwindigkeit. RepRapFirmware kennt ebenfalls M106, interpretiert es aber mit einer eigenen Parametermenge: P kann den Lüfter auswählen; ohne P gilt Lüfter 0. Außerdem müssen die Lüfterobjekte dort zunächst über M950 angelegt sein, bevor sie angesprochen werden. Übertragen Sie also nicht nur den Befehlsnamen, sondern prüfen Sie auch Parameter, verfügbare Hardwareobjekte und Voraussetzungen. Ein identischer Anfang einer Zeile ist noch keine Garantie für gleiche Nebenwirkungen.
Auch Schreibweise und Syntax können den Unterschied machen
Nicht jede Abweichung betrifft einen anderen M-Code. Schon die Schreibweise kann relevant sein: RepRapFirmware 1.19 und neuer behandelt Befehls- und Parameterbuchstaben grundsätzlich ohne Beachtung der Groß-/Kleinschreibung. Klipper ergänzt die üblichen nummerierten Befehle außerdem um erweiterte Kommandos wie SET_FAN_SPEED oder STATUS. Solche Befehle folgen einer anderen, lesbaren Namensform und sind nicht automatisch ein austauschbarer Standarddialekt.
Praktische Prüfung vor dem Druck
Gehen Sie bei unbekanntem Start-, End- oder Makrocode in vier Schritten vor: Erst Firmware und Version am Gerät feststellen; bei Marlin kann M115 dazu Firmware- und Fähigkeiteninformationen liefern. Dann jede nicht bloß grundlegende Zeile in der passenden Firmware-Dokumentation nachschlagen. Prüfen Sie bei jedem Parameter, ob er unterstützt wird und welche Voreinstellung gilt. Kontrollieren Sie schließlich, ob die benötigte Funktion oder Hardware zuvor konfiguriert wurde – etwa den mit M950 eingerichteten Lüfter in RepRapFirmware. Ein Host kann Fähigkeitenmeldungen zur Interoperabilität nutzen, aber eine Meldung ersetzt nicht die Prüfung der konkreten Syntax und Gerätekonfiguration.
Grenzen der Kompatibilität
Es gibt daher keine pauschale Übersetzungstabelle, die jede G-Code-Datei zwischen allen Druckern sicher macht. Ein unbekannter Befehl kann fehlen, einen Parameter anders auslegen oder eine gerätespezifische Voraussetzung haben. Verlassen Sie sich bei sicherheits- oder bewegungsrelevanten Änderungen nicht auf den Namen allein: prüfen Sie den Hersteller- beziehungsweise Firmware-Eintrag für die installierte Version und testen Sie Änderungen nur in einer kontrollierten, sicheren Situation. Die maßgebliche Referenz ist die konkrete Firmware-Version samt Geräteprofil, nicht allein die allgemeine Liste eines Slicers.