M-Codes
Die folgende Tabelle zeigt die unterstützten M-Codes
optionaler Stopp. Wenn M333 aktiviert ist, hält das Programm beim Erreichen dieses Befehls an. Wenn stattdessen M334 gesetzt ist, erfolgt keine Pause
M2
Programm beenden, Spindel und Luft ausschalten
M3
Startet die Spindel. Der Parameter S legt die Drehzahl in Umdrehungen pro Minute fest
M3 S5000
schaltet die Spindel auf 5000 U/min ein
M5
Stoppt die Spindel
M5
M6
Automatischer Werkzeugwechsel, T0 bezeichnet drahtlose Sonde, T-1 bezeichnet Keine
M6 T1
wechselt zu Werkzeug 1 und setzt TLO
M7
Startet den Luftstrom
M7
M9
Stoppt den Luftstrom
M9
M17
schaltet alle Enable-Pins ein
Nur Debug
M18
ermöglicht das Abschalten einzelner Motoren, keine Parameter führt dazu, dass alle abgeschaltet werden
Nur Debug
M20
listet Dateien im Root des SD-Karten-Verzeichnisses auf. Zeigt keine Unterordner an
Nur Debug
M21
Code für OctoPrint für 3D-Drucker, macht nichts
Nicht verwenden
M23
wählt eine Datei aus
M23 gcodes/test.cnc
M24
beginnt mit dem Abspielen der aktuellen Datei
nicht verwenden
M25
pausiert die aktuell abgespielte Datei (verwende M600 für Pausen)
nicht verwenden
M26
setzt die aktuelle Datei zurück, damit sie von vorne gestartet werden kann
nicht verwenden
M27
meldet den aktuellen Fortschritt (nützlich, um die Anzeige des Controllers mit der aktuellen Zeile zu synchronisieren)
M30
Ende des Programms, keine Aktion auf der Carvera. Siehe M26
M30
M32
wählt eine Datei aus und beginnt mit dem Abspielen. Für Makros siehe M98
M32 gcodes/test.cnc
M82
e_absolute_mode ein
Nur Debug
M83
e_absolute_mode aus
Nur Debug
M84
schaltet alle Enable-Pins aus
Nur Debug
M92
setzt Schritte pro mm
M98 X12
setzt die X-Schritte pro mm auf 12
öffnet ein Unterprogramm innerhalb des aktuell laufenden G-Codes, oft als Makro bezeichnet. Kehrt nach Beendigung in das Hauptprogramm zurück. Parameter P ist eine Nummer, die auf eine Datei im Ordner gcodes/macros mit dem Namen ####.cnc verweist. Optionaler Parameter L schleift das Unterprogramm eine festgelegte Anzahl von Malen
M98 P1001 L4
öffnet ein Unterprogramm per Pfad, kehrt nach Beendigung in das Hauptprogramm zurück. Ansonsten wie oben. Der optionale L-Befehl muss vor dem Pfad stehen
M98 L2 {gcodes/test.cnc}
M105
liest die aktuelle Spindeltemperatur
M105
M112
Not-Aus
Nur Debug
M114
druckt die aktuelle WCS für jede Achse auf die Konsole
M115
meldet Firmware-Version und Fähigkeiten
M115
FIRMWARE_NAME:Smoothieware, FIRMWARE_URL:http%3A//smoothieware.org, X-SOURCE_CODE_URL:https://github.com/Smoothieware/Smoothieware, FIRMWARE_VERSION:master-811c4f62, X-FIRMWARE_BUILD_DATE:Oct 30 2024 15:14:06, X-SYSTEM_CLOCK:100MHz, X-AXES:5, X-GRBL_MODE:1, X-CNC:1, X-MSD:1, X-WARNING:deprecated_MCU
M117
ein spezieller, nicht konformer G-Code, da er beliebigen Text in der Zeile nach dem Befehl erlaubt. Wird auf dem verfügbaren Display ausgegeben
Verwende stattdessen 118
schreibt die ausgewertete Zeile auf die serielle Schnittstelle.
M118.1 P[2+2]
gibt 4 in der Konsole aus
M119
meldet aktuelle Sondeninformationen
X_max:0 Y_max:0 Z_max:0 Pins- (XL)P0.24:0 (XL)P0.25:0 (YL)P1.1:0 (YL)P1.4:0 (ZL)P1.8:0 Sonde: 0
M120
Zustand pushen
Nur Debug
M121
Zustand poppen
Nur Debug
M143
3D-Drucker-spezifischer Code
Nicht verwenden
M203
setzt maximale Vorschubgeschwindigkeit in mm/s
M203 X100
M203.1
setzt maximale Aktuator-Vorschubraten
M204
M204 Snnn - setzt Standardbeschleunigung auf nnn, Xnnn Ynnn Znnn setzt achsspezifische Beschleunigung
M205
M205 Xnnn - setzt Junction-Deviation, Z - setzt Z-Junction-Deviation, Snnn - setzt minimale Planer-Geschwindigkeit
M206
setzt Homing-Offset
M206 X15 Y15 Z15
setzt Homing-Offset auf 15,15,15
M220
S<Faktor in Prozent> - setzt Feed-Speed-Faktor-Override-Prozent
M220 S50
M221
Schaltet weiche Endschalter ein/aus
M221 S0
schaltet weiche Endschalter aus. M221 S1 schaltet sie ein
M223
S<Faktor in Prozent> - setzt Spindel-Drehzahl-Faktor-Override-Prozent
M223 S80
M301
3D-Drucker-spezifisch
Nicht verwenden
M303-305
Wird vom PID-Autotuner zur Temperaturregelung eines 3D-Drucker-Hotends verwendet. Keine Funktion auf der Carvera
Nicht verwenden
M306
setzt Homing-Offset basierend auf aktueller Position
M321
Betritt den Lasermodus. Die Maschine lässt das aktuelle Werkzeug automatisch fallen und kalibriert die Spindel-Aufnahme (um den Laser-Offset zur Arbeitsfläche einzustellen)
M321
M322
Verlässt den Lasermodus
M322
M323
Betritt den Lasertestmodus, das Lasermodul wird mit sehr geringer Leistung versorgt, üblicherweise zum Nachfokussieren des Lasers verwendet
M323
M324
Verlässt den Lasertestmodus
M324
M325
S<Faktor in Prozent> - setzt Laserleistungs-Faktor-Override-Prozent
M325 S50
M331
Schaltet den automatischen Vakuummodus ein; wenn aktiviert, wird das Vakuum automatisch eingeschaltet, wenn die Spindel läuft, und ausgeschaltet, wenn die Spindel nicht läuft
M331
M332
Schaltet den automatischen Vakuummodus aus
M332
Schaltet den Zeilen-für-Zeilen-Ausführungsmodus ein. Pausiert nach jeder Zeile. Pausiert nicht bei leeren Zeilen oder Zeilen, die mit ; oder ( beginnen
M370
Löscht die Auto-Bett-Nivellierungsdaten und deaktiviert die Kompensation, bis G32 erneut ausgeführt wird
M370
M374
speichert das Autolevel-Grid auf der SD-Karte.
M374.1
löscht das Autolevel-Grid von der SD
M375
lädt das Grid von der SD-Karte
M375.1
zeigt die aktuellen Bett-Nivellierungs-Gitterdaten im MDI-Fenster an
M375.1
M400
wartet, bis alle Bewegungen bis zu diesem Punkt abgeschlossen sind
kalibriert die Sondenspitze mit Hilfe einer Rundbohrung bekannter Größe
M460 X25 L3
Startet zentriert in der Bohrung. Kalibriert basierend auf einer 25-mm-Bohrung und mittelt den Wert über 3 Tests. Speichert den Wert in Variable #150. Verwende config-set sd zprobe.probe_tip_diameter #, um diesen Wert für Neustarts zu speichern. Alle Parameter von M461 außer T,S sind implementiert
kalibriert die Sondenspitze mit Hilfe eines Zapfens bekannter Größe
M460.2 X15 L3
Startet zentriert über dem Zapfen. Erfordert X oder Y, aber nicht beide. Der Wert für X oder Y ist die gemessene Abmessung des Zapfens. L ist die Anzahl der Messungen zum Mitteln. Alle Parameter von M462 außer T,S sind implementiert
kalibriert die Sondenspitze mit Anker 2
M460.3
fährt zur korrekten Position anhand des Freigabe-Z-Werts, bewegt XY, sondiert in Z nach unten. Position basiert auf der in der Konfiguration gespeicherten Position für Anker 2 und der gespeicherten Ankerbreite. Messe und setze zuerst die Ankerbreite.
bohrungssondierung
M461 X25 Y30 D2.5 H10 C2 Q15 L2 R1.8 S1 F100 K200
Beginne ungefähr in der Mitte der Bohrung. Das Makro beginnt mit einer Z-Sondierung, bewegt sich (H)10 mm nach unten. Trifft das Werkzeug auf die Oberfläche, wird es um (C)2 zurückgezogen. Wenn nicht, fährt es von der neuen unteren Position fort. Wenn H nicht angegeben oder 0 ist, sondiert das Makro von der Starthöhe. Dann sondiert es (X)25 mm in X-Richtung, rotiert um (Q)15 Grad, bis das Werkzeug eine Oberfläche trifft. Ziehe (R)1,8 mm zurück in Richtung Zentrum und sondiere dann mit viel geringerer Geschwindigkeit erneut. Fahre zurück zum Zentrum und wiederhole für die -x-richtige Richtung. Wiederhole die X-Schritte für die Y-Richtung (Y)30. Wiederhole die X- und Y-Sonden (L)2 Mal. Alle normalen Sondierbewegungen erfolgen mit (F)100 mm/s, Bewegungen zwischen Sondierstarts erfolgen mit der Eilgeschwindigkeit (K)200. Nach Abschluss speichert das Programm die Entfernung entlang der X-Achse als #151, entlang der Y-Achse als #152, den Mittelpunkt im MCS als #154,#155. Da S auf 1 gesetzt ist, setzt das Programm das aktuelle WCS (normalerweise G54, sofern nicht überschrieben) als Zentrum der Bohrung. Wenn S nicht gesetzt ist, beeinflusst das Sondenmakro das WCS nicht. (D) wird verwendet, um den Abstand zwischen Punkten zu berechnen und steht für den Werkzeugdurchmesser. Alle Parameter sind optional, aber es muss mindestens X oder Y vorhanden sein; wenn nur einer angegeben wird, sondiert es nur in dieser Richtung.
Sondierung eines Zapfens/Blocks
M461 X25 Y25 E12
Alle Parameter von M461 funktionieren. Ausgehend vom ungefähren Zentrum des rechteckigen Blocks/Zapfens bewegt die Sonde sich (X)25 mm in positive X-Richtung und sondiert dann nach unten um -(C+E), um an die Seite des Blocks zu gelangen. Dann wird doppelt angetippt sondiert in Richtung Zentrum des Blocks, um Punkt 1 zu finden. Es kehrt zur Freigabe-Position zurück, dann zur Mittelposition und wiederholt die X-Sonde in negativer Richtung und beide Y-Richtungen. Die Ausgabewerte sind dieselben wie bei M461. Wenn S1 gesetzt ist, wird das Zentrum des Zapfens zum neuen XY-Nullpunkt. Wenn S2 gesetzt ist und eine Sondierhöhe (H) angegeben wurde, wird die Z-Null auf die sondierte Oberfläche gesetzt
sondiere innere Ecke
M462 X-15 Y-15
Implementiert D, H, C, Q, F, K, L, R, S aus M461. Sondiert eine untere linke Innen-Ecke (die Richtung von X und Y bestimmt die Bewegungsrichtung der Sonde, in diesem Fall links und nach vorne). Speichert die Mittelpunkte in #151 und #152
sondiere äußere Ecke
M463 X15Y15
Implementiert D, H, C, Q, F, K, L, R, S aus M461. Implementiert E aus M462 und folgt einem ähnlichen Ablauf für 2 Punkte statt 4. Sondiert eine untere linke Außen-Ecke (die Richtung von X und Y bestimmt die Bewegungsrichtung der Sonde, in diesem Fall links und nach vorne). Speichert die Mittelpunkte in #151 und #152. S funktioniert wie in M462
sondiere Achse und Winkel
M464 X10 E10 V10
Implementiert H,C,X,Y,Q,F,K,L,R aus M461. Nimmt nur einen Achsenwert (X oder Y). Von der Startposition: doppelt antippen sondieren mit Abstand (E)10 senkrecht zur angegebenen Achse, bis eine Oberfläche getroffen wird. Das Vorzeichen von E bestimmt die Sondierrichtung. Rückkehr zur Startposition. Bewege dich entlang der angegebenen Achse um (X)10 und wiederhole die Sonde. Rückkehr zur Startposition. Da V gesetzt ist, bewegt die Sonde sich entlang desselben Winkels wie die Sondenoberfläche um (V)10. Speichert den Winkel in Grad in #153
gerade Sondierung mit Doppeltipp
M466 X{dist} Y{dist} Z{dist} D{Spitzendurchmesser} Q{Winkel} L{Wiederholungen} R{Rückzug} S{als xy speichern, wenn nur 1 Achse ohne q gegeben ist, wird nur diese Achse als Null gespeichert} F{Vorschub} I{Invertieren für NC}
M469 / M469.0
Zukünftig: Maschine mit echter 3-Achsen-Sonde auf benutzerdefiniertem Pin homing
nicht implementiert
M469.0 I{invertieren}
M469.3
Zukünftig: kalibrieren der ATC-Werkzeugposition mit echter 3-Achsen-Sonde
nicht implementiert
kalibriert den 4. Achs-Spindelstock mit echter 3-Achsen-Sonde
M469.4
M469.4 I{invert} Y{Spindelstock-Breite} H{wie weit nach unten sondiert werden soll}
kalibriert die Höhen-Offset der 4. Achse mit Sonde
M469.5
M469.5 R{Pin-Durchmesser} X{Abstand von 1. Sondierposition zur Sonde} H{maximaler Sondierabstand nach unten}
M469.6
meldet und setzt Maschinenoffsets (nur Maschinen-Code)
Nur Debug
X - ursprüngliche X-Position Y - ursprüngliche Y-Position, Z - ursprüngliche Z-Position, P - Sondier-Set-Typ. 1 ist für Anker 1, 2 ist Anker 2, 3 ist ATC-Werkzeugposition usw.
M470
setzt die Adresse der drahtlosen Sonde
M470 S2020
M471
setzt die drahtlose Sonde in den Pairing-Modus
M471
M472
schaltet den Laser der drahtlosen Sonde ein
M472
M481-489
WiFi-spezifische G-Codes, die besser über Konsolenbefehle ausgeführt werden
Nicht verwenden
M490
Führt den ATC-Homing-Prozess aus. Homing wird automatisch ausgeführt, wenn nötig, beim Ausführen von M490.1 oder M490.2
M490
M490.1
zieht die Spindelaufnahme an, um ein neues Werkzeug in der Spindel zu sichern
M490.1
M490.2
lockert die Spindelaufnahme und lässt das aktuelle Fräserbit fallen
M490.2
M491
führt eine Kalibrierung aus, und der TLO (Werkzeuglängen-Offset) für das aktuelle Werkzeug wird zurückgesetzt
M491
führt eine Werkzeugbruchprüfung durch, indem das aktuelle Werkzeug kalibriert und seine Länge mit einem zuvor gespeicherten Werkzeuglängen-Offset (TLO) verglichen wird.
M491.1 H0.05
Wenn die Differenz größer als 0,05 ist, stoppt die Maschine
M492
interner Befehl, um festzustellen, ob das Werkzeugrack leer ist.
Nur Debug
speichert Werkzeugoffset, wenn es den TLO-Sondierpunkt ausgelöst hat. Verwende M493.3, um den TLO auf einen bestimmten Wert zu setzen
Nur Debug
speichert Werkzeuglängen-Offset auf den Wert. Verwende Z für einen komplett neuen Wert.
M493.3 Z-15
setzt den TLO auf -15
setzt TLO aus aktueller WCS-Position mit einem Offset H.
M493.3 H10
beginne mit dem Werkzeug 10 mm über WCS-Z, verwende die Messstift- oder Papier-Methode. Dies berechnet den richtigen TLO, um dem aktuellen WCS zu entsprechen
M493.5
Zukünftig: ATC-Pause
M494 / M494.1
schaltet den Sondenlaser ein
M494.1
M494.2
schaltet den Sondenlaser aus
M494.2
M495
Führt Margin-, ZProbe- und Autoleveling-Vorgänge basierend auf Parametern durch, wechselt bei Bedarf das Sondenwerkzeug. X und Y sind Margin-Start. C und D sind Margin-Ausdehnungen. O und F sind Z-Probe-Offsets. A, B sind die Ausdehnungen des Autolevels, I und J sind die Anzahl der Punkte pro Achse zu sondieren, H ist Autolevel-Sondierhöhe. P1 geht zur Nullposition
M495.3
führt eine 3-Achsen-Z-Sondierung entlang -z, -x und -y durch. Siehe G38 für andere Sondierfunktionen. D setzt den Sondenspitzen-Durchmesser, H ist die Dicke des Vorratsstücks für die 3-Achsen-Sonde
M495.3 D3.175 H9
M496.2
geht zur Arbeitsursprung. X- und Y-Parameter setzen die Position in Relation zu Anker 1
M496.2 X30Y0
M496.3
geht zu Anker 1
M496.4
geht zu Anker 2 Position
M496.5
geht zu Position. X- und Y-Parameter setzen die Position in Relation zu Anker 1
M496.5 X30Y0
M497
wartet, bis die Warteschlange leer ist. Normalerweise ein interner Befehl
Nur Debug
M498 / M498.1
meldet EEPROM-Daten. Gibt aktuelle Werkzeugnummer, TLO, toolmz, refmz und WCS-Offsets auf der Konsole aus
M498.2
löscht EEPROM-Daten. Nicht ausführen
Nicht verwenden
M499/M499.1
gibt aktuelle Werkzeuginformationen auf der Konsole aus
M499.2
gibt alle ATC-Werkzeugpositionsdaten auf der Konsole aus
M500
speichert Änderungen an der Konfigurationsdatei auf der SD-Karte
M501
// lädt Konfigurationsüberschreibung
Nur Debug
nicht implementiert
M502
M502 löscht config-override, sodass alles auf die Werte in der config zurückgesetzt wird
Nur Debug
M503
druckt Konfigurationsdatei-Werte auf die Konsole
M504
speichert in eine spezifische config-override-Datei
M504 "/sd/config-override"
M561
Löscht die Auto-Bett-Nivellierungsdaten und deaktiviert die Kompensation, bis G32 erneut ausgeführt wird. Gleich wie M370
M565
setzt Z-Probe-Offsets. Später untersuchen
M600
pausiert die aktuelle Datei (verwende dies, um Pausen hinzuzufügen)\
M601
setzt die aktuelle Datei fort - wird üblicherweise aus der MDI-Konsole ausgeführt
M665
M665 setzt optionale Arm-Lösungsvariablen basierend auf der Arm-Lösung.
Funktion unklar
M670
setzt Standard-Sondeninformationen bis zum nächsten Reset. S - langsame Vorschubgeschwindigkeit, K - schnelle Vorschubgeschwindigkeit, R - Rückkehrvorschub, Z - maximale Z-Sondiertiefe, H - Sondierabstand, I - Sondeninvertierungsstatus, D - Verweilzeit vor dem Sondieren
M801
Schaltet das interne Vakuum ein (Carvera). Der Parameter S setzt die Leistung des Vakuums (S100 = 100%) Schaltet den PSU-Lüfter bei Carvera Air ein
M801 S100
M802
Schaltet das Vakuum bei Carvera aus und schaltet den PSU-Lüfter bei Carvera Air aus
M802
M811
Schaltet den Kühlgebläse der Spindel ein. Der Parameter S setzt die Leistung des Lüfters
M811 S100
M812
Schaltet das Kühlgebläse der Spindel aus
M812
M821
Schaltet das Licht ein
M821
M822
Schaltet das Licht aus
M822
M831
Schaltet den Laser des Werkzeugdetektors ein
M831
M832
Schaltet den Laser des Werkzeugdetektors aus
M832
M841
Schaltet die Ladeversorgung der drahtlosen Sonde ein
M841
M842
Schaltet die Ladeversorgung der drahtlosen Sonde aus
M842
M851
Schaltet die erweiterte Port-Stromversorgung ein. Der Parameter S setzt die PWM-Ausgabe des Ports
M851
M852
Schaltet die erweiterte Port-Stromversorgung aus
M852
M881
setzt 2,4G-Kanal auf: den S-Parameter und beginnt mit der Übertragung
M881 SwifiNetworkName
M882
schaltet das WLAN-Netzwerk aus
M882
M885
schaltet harte Endschalter aus (rufen beim Stromausfall wieder ein, beim Homing ignoriert)
M886
schaltet harte Endschalter ein
M887
schaltet Home-Check aus
M888
schaltet Home-Check ein
]
meldet Spindeldrehzahl
M957
aktuelle Spindeldrehzahl und Status
Zustand: an, Aktuelle U/min: 15086 Ziel-U/min: 15000 PWM-Wert: 0.699
M958
setzt Spindel-PID-Parameter, Parameter P, I, D
M1000
M1000 ist ein spezieller Befehl, der den rohen kleingeschriebenen Befehl an die simpleshell weiterleitet (für Hosts, die solche Dinge nicht erlauben)
Zuletzt aktualisiert