GCode Dokumentation: Unterschied zwischen den Versionen

Aus RF1000 Wiki
Zur Navigation springen Zur Suche springen
(Deutsche Dokumentation der RF1000 GCode Befehle)
 
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
[[Kategorie:GCode]]
''Ich habe mich bemüht, nach bestem Wissen und Gewissen, die GCode-Befehle für den RF1000 ins Deutsche zu übersetzen.
''Ich habe mich bemüht, nach bestem Wissen und Gewissen, die GCode-Befehle für den RF1000 ins Deutsche zu übersetzen.



Version vom 12. Dezember 2015, 21:25 Uhr

Ich habe mich bemüht, nach bestem Wissen und Gewissen, die GCode-Befehle für den RF1000 ins Deutsche zu übersetzen.

Alle Angaben ohne Gewähr! Der Stand der Befehle/Dokumentation entspricht der Firmware-Version 0.91.49 vom RF1000 (datiert 20141222) Ich konnte einige Befehle nicht prüfen (keinen Fräser). Andere sind schlecht oder gar nicht dokumentiert und ich konnte die Syntax und/oder den Zweck nicht eruieren.

Ich werde diese Datei nicht warten bzw. pflegen. Korrekturen/Ergänzungen werden jedoch gerne entgegengenommen. Vielleicht kann ein Anderer diese einarbeiten.


Diese G-Codes wurden aus den Firmware-Dateien vom RF1000 erstellt
(v. 0.91.49, datiert 20141222)


Implementierte Codes im RF1k:   (#######   aus der Datei "Repetier.ino"    #######)

Deutsche Übersetzung durch mjh11 - Alle Angaben ohne Gewähr!!


- G0  -> siehe G1
- G1  [X Y Z E F] - Koordinierte Bewegung entlang einer oder mehrerer Achsen 
	(X Y Z E) F ist dabei die geforderte Verfahrgeschwindigkeit
- G2  [X Y I J E F] - Kreisbogen im Uhrzeigersinn
	(Dabei gilt: X= die Endpos. auf der X Achse, Y= die Endposi. auf der Y Achse
	Innn= X-Koordinate des Kreismittelpunkts, Jnnn= Y-Koordinate des
	Kreismittelpunkts, E= Extrusionslänge entlang des Kreisbogens, in mm und 
	F= Verfahrgeschwindigkeit, wobei E und F optional sind - {allerdings, ein
	Kreisbogen zu fahren, OHNE Extrusion, ist sinnlos})
- G3  [X Y I J E F] - Kreisbogen gegen den Uhrzeigersinn - siehe G2
Hinweis:  G2 und G3 müssen von der Slicer-Software unterstützt werden.
- G4  - Pause S<Sekunden> or P<Millisekunden>
- G20 - Einheiten der Bewegungsbefehle (G0-G2) sind in Zoll.
- G21 - Einheiten der Bewegungsbefehle (G0-G2) sind in Millimeter.
- G28 - Fahre alle Achsen (oder die bezeichnete(n)) zum Ursprung, z.B. "G28 Y0 Z0"
	fährt nur in Y und Z auf "0".
!! G29 bis G32 werden scheinbar nicht unterstützt.  Wozu denn auch?  RF1k hat 
	Z-Kompensation!
X- G29 S<0..2> - Messe Z-Höhe an den 3 vor definierten Punkten. S = 1 messe 
	durchschn. zHöhe, S = 2 speichere durchschn. zHöhe
X- G30 P<0..3> - Messe Z-Höhe an der augenblicklichen Pos.. P = 1 erste Messung, 
	P = 2 letzte Messung P = 0 oder 3 : erste und letzte Messung
X- G31 - Speichere Wert des Z-Höhentasters
X- G32 S<0..2> P<0..1> - Automatische Bettausrichtung. S = 1 messe zHöhe, 
	S = 2 messe und speichere neue zHöhe
		Entspricht in etwa "M3010" beim RF1k
!! G29 bis G32 werden scheinbar nicht unterstützt.  Wozu denn auch?  RF1k hat 
	Z-Kompensation!
- G90 - Interpretiere Koordinaten als absolut
- G91 - Interpretiere Koordinaten als relativ
- G92 [X<Wert> Y<Wert> Z<Wert> E<Wert>] - Setze die angegebene Koordinate(n) auf den
	vorgegebenen Wert
		Wird z.B. für die "E"-Koordinate häufig verwendet, so: "G92 E0"
!! G131 und G132 haben vermutlich was mit Schnellwechselextruder, oder Ähnliches,
	zu tun, wo man die Position der Extruderdüse nach einem Wechsel neu
	kalibrieren muss.
- G131 - set extruder offset position to 0 - needed for calibration with G132
- G132 - calibrate endstop positions. Call this, after calling G131 and after
	centering the extruder holder.

RepRap M Codes - Standard M-Befehle

- M104 <Snnn> - Setze Extrudertemperatur.  Hier wird nicht gewartet.  Die nächsten
	Befehle werden unmittelbar danach abgearbeitet
- M105 - Gebe Extrudertemperatur aus (wird scheinbar auch nicht unterstützt - man
	hat ja das Display)
- M106 <Sxxx> - Schalte Lüfter ein.  Parameter S von 0-255 zulässig (255=100%)
- M107 - Schalte Lüfter aus (gleich wie "M106 S0")
- M109 <Snnn> - Setze Extrudertemperatur.  Hier WIRD gewartet.  Die nächsten Befehle
	werden erst NACH erreichen der Temperatur abgearbeitet
- M111 S<0....9> - Setze Debug Level  (nicht dokumentiert in der RF1k Firmware?)
- M114 - Zeige Koordinaten der augenblicklichen Position (berücksichtigt G92!!)


Custom M Codes - Spezielle M-befehle

- M20  - Liste Inhalt der SD Karte
- M21  - SD Karte initialisieren (mounten - ist nicht dasselbe wie formatieren)
- M23 <Dateiname> - Wähle Datei auf der SD Karte aus ("M23 {\Pfad\}Dateiname.gcode")
- M24  - Starte Druck von der SD-Karte, oder fahre mit Druck wieder fort
- M25  - Druck von der SD Karte pausieren
- M26 <Snnnnn> - Setze Zeiger-Position innerhalb der gewählten SD Datei in Bytes
	Beispiel: "M26 S12345"
- M27  - Melde Status des Drucks von der SD Karte
- M28 <Dateiname> - Schreibe Datei auf SD Karte ("M28 {\Pfad\}Dateiname.gcode")
- M29  - Beende Schreibvorgang auf der SD Karte
- M30 <Dateiname> - Lösche Datei von der SD Karte
- M32 <Ordnername> - Erstelle Ordner/Unterordner auf der SD Karte
- M42 P<Pinnummer> S<Wert:0-255> - Ändere Output des Pins P auf den Wert S.
	Funktioniert nur auf gewissen Pins.
- M80  - Netzteil einschalten (NICHT für RF1k!)
- M81  - Netzteil ausschalten (NICHT für RF1k!)
- M82  - Interpretiere Werte für den Extruder (=E-Werte) als absolute Werte
	(Standardeinstellung)
- M83  - Interpretiere Werte für den Extruder als relative Werte, auch wenn im
	absoluten Koordinaten-Modus (G90)
- M84  - Schrittmotore bis zur nächsten Bewegung ausschalten (stromlos setzen).
	Mittels S<Sekunden> kann ein Zeitfenster definiert werden - findet innerhalb
	dieser Zeit keine Bewegung statt, schalten die Motore ab.  Neuerliche
	Eingabe mit S0 deaktiviert das Zeitfenster wieder.
- M85 <Snnn> - Setzt Zeitfenster, in Sekunden, ab dem die Motore abgeschaltet
	werden.  Neuerliche Eingabe mit S0 deaktiviert das Zeitfenster wieder
	(S0 ist Standardvorgabe).
- M92 [X<Wert> Y<Wert> Z<Wert> E<Wert>] - Stelle Schritte pro mm für die 
	angegebene(n) Achse ein - Verwendung sollte nicht notwendig sein (wirklich
	nur für Sonderfälle, zum Beispiel bei einer vorhandenen GCode-Datei, die
	skaliert werden muss.)
- M99 S<Wartezeit> X0 Y0 Z0 - Schalte angegebene(n) Motor(en) für S-Sekunden ab,
	Standardwert:10
- M104 S<temp> T<extruder> P1 F1 - Setze Extrudertemperatur, ohne Warten. 
	P1 = Warte bis alle vorhergehenden Bewegungen abgeschlossen sind, 
	F1 = piepse wenn die vorgegebene Temperatur erstmals erreicht wurde.
	Single-Extruder = T0 (Bett = T1 !!)
- M105 X0 - Melde Temperaturen. X0 = zeige auch die nicht-umgerechneten digitalen
	Werte.  Scheinbar nicht durch RF1k unterstützt
- M112 - Not-Abschaltung
- M115 - Schreibe Firmware-String.  Zeigt Firmware-Infos an.
- M116 - Warte bis alle angegebenen Temperaturen innerhalb von +/- 1° sind
- M117 <Nachricht> - Schreibe eine (kurze) Nachricht ins Display
- M119 - Melde Endschalterstatus (nicht-betätigter Schalter wird als "L" gemeldet)
- M140 S<temp> F1 - Setze Betttemperatur (OHNE Warten), mit F1 piepst es beim ersten
	Erreichen der Temperatur
- M190 S<temp> - Setze Betttemperatur (hier WIRD aber gewartet)
- M201 [Xnn Ynn Znn] - Max. Beschleunigungswerte in Einheiten/s² für Druckbewegungen
	Beispiel: "M201 X1000 Y1000"
- M202 [Xnn Ynn Znn] - Max. Beschleunigungswerte in Einheiten/s² für Leerfahrten
	ohne Extrusion
- M203 S<temp> - Temperaturüberwachung einschalten - (Konnte beim RF1k keine Wirkung
	feststellen)
- M204 - Setze PID Parameter X => Kp Y => Ki Z => Kd S<Extruder> 
	Standardmäßig wird der aktive Extruder angesprochen 
	Mit SingelExtruder: 0 = Extruder, 1 = Bett
	Zum Beispiel "M204 X3752 Y1000 Z3518 S0" --> OHNE GEWÄHR
- M205 - EEPROM Werte ausgeben (Hinweis: hierfür muss der EEPROM Support in der 
	Configuration.h eingeschalten werden)
- M206 T[type] P[pos] [Sint(long)] [Xfloat] - Einen Wert ins EEPROM schreiben
	Dazu muss man wissen welche Werte wo abgespeichert sind.  EEPROM Support
	in der Firmware vermutlich ebenfalls nötig.  Z.B. "M206 T3 P31 X200.00"
	stellt die Geschwindigkeit, mit der in Y gegen 0 gefahren wird 
	('ge-homed' wird), auf 200mm/s
- M207 - X<XY 'Ruckeln'> Z<Z 'Ruckeln'> E<Extruder-'Ruckeln'> - Das 'Ruckeln' (jerk)
	entsteht durch sehr rasche, abwechselnde Bewegungen, die den Drucker
	aufschaukeln können.  Mit Hilfe dieses Befehls schränkt man die
	Geschwidigkeit der raschen Abfolge ein.  Die neuen, angegebenen Werte sind
	temporär, sie werden NICHT im EEPROM gespeichert.  
	Der RF1k, mit seiner soliden Bauweise, ist hier nicht sehr anfällig.
	Beim RF1k ist der voreingestellte Wert für XY 10mm/s, für Z 20mm/s.
- M220 S<Prozent> - Verfahrgeschwindigkeitsmultiplikator, bei "M220 S50" gehts nur
	mehr halb so schnell voran
- M221 S<Prozent> - Multiplikator für die Extrusionsmenge
- M231 S<OPS_MODUS> X<Min_Länge> Y<Retract> Z<Hysterese> F<RetractMove> - Stellt das 
	Standard-Verhalten für Retract-Vorgänge ein. (Sollte beim RF1k nicht
	notwendig sein)
- M232 - Lese max. 'Vorlaufdruck'-Wert aus und setze es wieder auf 0 (der
	'Vorlaufdruck' ist ähnlich wie die 'Vorzündung' beim Otto-Motor.  Da baut
	der Extruder vorzeitig Druck auf, damit der Druck rechtzeitig vorhanden ist.
	RF1k hat standardmässig 0 eingestellt
- M233 X<VorlaufwertK> Y<VorlaufwertL> - Stellt temporäre Werte zur
	Vorlaufdrucksteuerung (siehe M232)
- M251 - Messe Anzahl der Z-Schritte (NUR FÜR DELTA-DRUCKER). S0 - Reset, 
	S1 - Print, S2 - Store to Z length (also EEPROM if enabled)
- M280 S<Modus> Modus 0 = Aus, 1 = Ein --> Zweck UNBEKANNT 
	("Set ditto printing mode. mode: 0 = off, 1 = on")
- M300 S<Frequenz> P<Dauer> - Gibt einen Piepston aus. 'Dauer' wird in Millisekunden 
	angegeben.  "M300 S440 P500" Gibt den Kammerton 'A' für eine halbe
	Sekunde aus.
- M303 P<Extruder/Bett> S<Temperatur> X0 - Fährt ein automatisches Programm ab, wo
	die PID-Werte für den Extruder oder das Bett, bei der angegebenen
	Temperatur, ermittelt werden.  Mit SingelExtruder: P0 = Extruder, P1 = Bett.
	Mit X0 wird der Wert im EEPROM gespeichert (benötigt evtl. EEPROM Support in
	der Configuration.h).
- M320 - Aktiviere automatische Bettausrichtung (wird vermutlich beim RF1k nicht 
	funktionieren, stattdessen "M3001" verwenden) - 
- M321 - Automatische Bettausrichtung ausschalten (wird vermutlich beim RF1k nicht 
	funktionieren, stattdessen "M3000" verwenden)
- M322 - Matrix für Bettausrichten löschen/resetten (wird vermutlich beim RF1k nicht 
	funktionieren, stattdessen "M3011" verwenden)
- M340 P<servoId> S<PulsInUS>  - Steuert ein zusätzliches Servo (bis zu 4 Stück)
	servoID = 0..3, Servos werden per Puls angesteuert, mit Werten von 500 bis
	2500, wobei 1500ms als Wert der Mittelstellung gilt.  Ein Pulswert von 0
	schaltet das Servo aus.
- M350 S<mstepsAll> X<mstepsX> Y<mstepsY> Z<mstepsZ> E<mstepsE0> P<mstespE1> 
	- Mikro-schritte einstellen (gilt nur für RAMBO Hauptplatine)
- M400 - Warte bis alle gepufferten Befehle abgearbeitet wurden
- M401 - Speichere die augenblicklichen X, Y und Z Koordinaten
- M402 [X Y Z] - Gehe zur gespeicherten Position.  Falls eine oder mehrere Achsen
	angegeben wurden, werden nur diese Koordinaten verwendet.
- M500 - Speichere alle EEPROM-relevanten Werte ins EEPROM
- M501 - Lade alle EEPROM-Werte (evtl. geänderte Werte werden wieder auf EEPROM-
	Werte zurückgesetzt)
- M908 - P<Addresse> S<Wert> - Strom für Schrittmotor einstellen (gilt nur für 
	RAMBO Hauptplatine)



#######################################################################
/* Spezielle M Codes nur für RF1000   ###   Aus Datei: "RF1000.h"   ###
#######################################################################

- M3000 - Z-Kompensation ausschalten
- M3001 - Z-Kompensation einschalten
- M3002 - Unterste Schrittgrenze setzen (falls weniger Schritte notwendig wären,
	werden diese einfach nicht ausgeführt)  Ist das richtig?
- M3003 - Maximale Schrittgrenze setzen (falls mehr Schritte notwendig wären, werden
	trotzdem nur so viele gemacht)  Ist das richtig?
- M3004 S<Mikroschritte> - Manueller Z-Offset (bis v.0.91.49, danach ersetzt durch
	M3006)
- M3005 - Spezielle Debug-Outputs einschalten
- M3006 S<mue-Meter> - Manueller Z-Offset (ab v.0.91.49, davor gab es nur M3004)
	Positive S-Werte erhöhen den Düsenabstand (das Bett bewegt sich nach
	unten)
- M3007 S<mue-Meter> - Minimaler Z-Komp-Offset (ähnlich wie M3002?)  
	Ist das richtig?
- M3008 S<mue-Meter> - Maximaler Z-Komp-Offset (ähnlich wie M3003?)  
	Ist das richtig?

- M3010 - Heat Bed Scan (HBS) starten.  Dabei wird die Oberfläche des Betts
	abgetastet und die Lage/Form als Matrix für später gespeichert, wenn 
	dann M3001 verwendet wird.
- M3011 - Die unter M3010 erhaltene Matrix aus dem EEPROM löschen
- M3012 - Die Standard-HBS-Parameter wieder herstellen (falls diese mit 
	einem der Befehle von M3020 bis M3055 geändert wurden)
- M3013 - Die aktuelle Matrix des HBS ausgeben


Mit M3020 bis M3055 kann man die einzelnen Parameter des Bettabtastvorgangs ändern
falls dafür Bedarf besteht (analog zu, bzw. siehe auch M3160 bis M3165):
- M3020 - configure the x start position for the heat bed scan
- M3021 - configure the y start position for the heat bed scan
- M3022 - configure the x step size for the heat bed scan
- M3023 - configure the y step size for the heat bed scan
- M3024 - configure the x end position for the heat bed scan
- M3025 - configure the y end position for the heat bed scan

- M3030 - configure the fast step size for moving of the heat bed up during the 
	heat bed scan
- M3031 - configure the slow step size for moving of the heat bed up during the 
	heat bed scan
- M3032 - configure the fast step size for moving of the heat bed down during the
	heat bed scan
- M3033 - configure the slow step size for moving of the heat bed down during the
	heat bed scan

- M3040 - configure the delay (in ms) between two fast movements during the heat 
	bed scan
- M3041 - configure the delay (in ms) between two slow movements during the heat 
	bed scan
- M3042 - configure the delay (in ms) between reaching of a new x/y position and 
	the test of the idle pressure

- M3050 - configure the contact pressure delta (in digits)
- M3051 - configure the retry pressure delta (in digits)
- M3052 - configure the idle pressure tolerance (in digits)
- M3053 - configure the number of A/D converter reads per pressure measurement
- M3054 - configure the delay (in ms) between two A/D converter reads
- M3055 - configure the pressure tolerance (in digits) per pressure measurement
Mit M3020 bis M3055 kann man die einzelnen Parameter des Bettabtastvorgangs (HBS)
ändern falls dafür Bedarf besteht.


Die folgenden M-Befehle sind für die allgemeine Konfiguration zuständig

- M3070 S1 oder S2 - Druck pausieren, als ob die Pause-Taste gedrückt wurde.  Dabei
	gilt S1 : pausiere an der augenblicklichen Position
	S2 : fahre zur vordefinierten Position (Standardposition oder mittels 
	M3105 definierter Position) und pausiere
- M3071 - Warte bis die Weiter-taste ('Play'-Taste) gedrückt wurde ### neu ab
	v0.91.49 ###

- M3079 - Druckobjekt 'ausgeben'.  Dabei wird zu einer vordefinierten Position
	gefahren
- M3080 - Drucker in Parkposition fahren (definiert mittels M3103)

- M3090 - Watchdog Timer testen - dabei wird die Firmware zurückgesetzt
- M3091 - Externes EEPROM löschen

- M3100 - Einstellen, wie viele Mikroschritte sich das Bett bewegt, wenn einer der
	Hardware-Tasten am Drucker betätigt wird
- M3101 - Einstellen, wie viele Mikroschritte sich der Extruderschrittmotor bewegt,
	wenn einer der Hardware-Tasten am Drucker betätigt wird
- M3102 [Xnnn Ynnn Znnn Ennn] - Versatz, in Mikroschritten(!!), wo der Extruder
	hinfahren soll, wenn die 'Pause' Taste gedrückt wird (ähnlich wie M3105)
- M3103 [Xnnn Ynnn Znnn] - Parkposition festlegen (siehe auch M3080)
- M3104 [Xnnn Ynnn Znnn] - Objektausgabeposition - Seit 0.91.48 NICHT MEHR VERWENDET
	Diese Funktion wird durch den "OUTPUT_OBJECT_SCRIPT_PRINT" in der
	Configuration.h ersetzt
- M3105 [Xnnn Ynnn Znnn Ennn] - Versatz, in Millimeter, wo der Extruder hinfahren
	soll, wenn die 'Pause' Taste gedrückt wird (ähnlich wie M3102)

- M3110 - Aktuellen Statustext 'einfrieren'

- M3120 - Gehäuselüfter (unten, beim SD Kartenschlitz) einschalten
- M3121 - Gehäuselüfter (unten, beim SD Kartenschlitz) ausschalten


// Die folgenden M-Befehle gelten nur für den Modus "Fräsen" und dienen der
// Werkstückabtastung

- M3130 - Starte/beende die Suche nach 'Z=0'

- M3140 - Z-Kompensation ausschalten
- M3141 - Z-Kompensation einschalten
- M3146 S<nnn> - Manuellen Z-Offset angeben (Einheiten in mue-Meter)
- M3149 - Besorge/wähle Z-Kompensationsmatrix für das aktuelle Werkstück

- M3150 - Starten/Abbrechen der Werkstückabtastung
- M3151 - Lösche spezifizierte Werkstückabtastmatrix aus dem EEPROM
- M3152 - Setze Abtastparameter auf Standardwerte zurück (siehe M3160 bis M3165)
- M3153 - Gebe spezifizierte Werkstückabtastmatrix aus

- M3160 - Konfiguriere X Startposition für Werkstückabtastung (Einheit ist mm)
- M3161 - Konfiguriere Y Startposition für Werkstückabtastung (Einheit ist mm)
- M3162 - Konfiguriere X Schrittweite für Werkstückabtastung (Einheit ist mm)
- M3163 - Konfiguriere Y Schrittweite für Werkstückabtastung (Einheit ist mm)
- M3164 - Konfiguriere X Endposition für Werkstückabtastung (Einheit ist mm)
- M3165 - Konfiguriere Y Endposition für Werkstückabtastung (Einheit ist mm)


// Weitere M-Befehle

- M3200 - Reservirt für Test- und Debugzwecke