Gcodes

Aus RF1000 Wiki
Zur Navigation springen Zur Suche springen


Spezielle GCodes die es in der CommunityMod Firmware‏‎ gibt.

Die offizielle Liste der GCodes bzw. MCodes findet man hier: G-Code Verzeichnis

Einleitung

Die CommunityMod Firmware versteht mehr MCodes, als die offizielle Firmware, um weitere Sonderfunktionen zu unterstützen. Einige wenige Spezial-GCodes der offiziellen Firmware wurden aus der CommunityMod Firmware entfernt, da sie veraltet oder unnötig waren.

Im folgenden findet ihr eine Auflistung der speziellen Gcodes des CommunityMod. Ganz unten findet ihr die GCodes, die im Mod entfernt wurden.

Alle Angaben ohne Gewähr!!

M-Codes

M355 - X19 / Caselight Mosfet steuern

Parameter

S<0..1>
S = 0 Port X19 aus
S = 1 Port X19 an

Bemerkung

Der Port kann auch im Druckermenü umgestellt werden. Diesen Port X19 gibt es beim RF1000 und RF2000.

M3028 - Check Home

Parameter

X1: X-Achse prüfen
Y1: Y-Achse prüfen
Z1: Z-Achse prüfen

Beispiel: M3028 X1 Y1 - Prüft die Achsen X und Y nacheinander.

Bemerkung

Dieser Gcode führt ein spezielles Homing aus, welches prüft, ob der Schalterkontakt noch dort zu finden ist, wo er erwartet wird.
Ebenso wird die Hysterese des jeweiligen Min-Endstops in Steps vermessen.
Die Ergebnisse des Tests findet man im USB-Logfile bzw. in der seriellen Konsole.

M3900 - Z-Offset-Scan konfigurieren und aktivieren

Parameter

X: X-Scanposition im Matrixgitter. Normalerweise X~{1 .. 12}
Y: Y-Scanposition im Matrixgitter. Normalerweise Y~{1 .. 12}

Spezial Parameter

X0: X-Scanposition zufällig wählen, für sensible DDPs
Y0: Y-Scanposition zufällig wählen, für sensible DDPs
R1: Spezial-Scan. Dieser Scan scannt mehrfach und richtet eine Matrix so aus wie das Bett aktuell steht. Anwendungsfall: Bett hat aus irgendeinem Fall leicht seine Neigung verändert.

Experten Parameter Die folgenden Parameter waren einmal für Tests und die Entwicklung wichtig und werden von Parameter R1 intern benutzt:

S <0..100>: Lerneffekt: Das Ergebnis des Scans geht nur mit 0..100 Prozent in die aktive Matrix ein. Ist praktisch für iterative Mittelung an mehreren Scanstellen.
P <0..100>: Lerneffekt Einfluss: Kleine Werte für P legen fest, dass das Ergebnis des Scans nur in kleinerer Nähe zur Scanposition einen Einfluss auf die Matrix-Anpassung hat.

Man sollte beim Einsatz von S und P genau wissen was man tut, und warum man diese Parameter braucht. Im Alltag nicht notwendig.

Bemerkung

Hauptfeature der CommunityModFirmware
Dieser Gcode lässt die Düse des Hotends auf dem Heizbett aufsetzen. Damit wird wird der Soll-Ist-Abstand zwischen Hotend und Heizbett korrigiert, welcher je nach Temperatur leicht unterschiedlich sein kann.
Video: Youtube

M3901 - Z-Offset-Scan konfigurieren

Parameter

Siehe M3900

Bemerkung Siehe M3900. Bei diesem GCode werden die Scan-Parameter voreingestellt, der Scan wird aber nicht ausgeführt.


M3902 - manuelles Matrix bearbeiten und speichern

Parameter

R: Finde den größten Ausreißwert in der Z-Matrix und ersetze ihn durch einen Mittelwert seiner Umgebung.
E: Setze alle Werte der Matrix auf 0. Man erhält eine gültige Matrix, welche ein absolut Planes Heizbett abbildet.
Z0: Lese das aktuelle Z-Offset, verrechne es in die Matrix und setze das Z-Offset auf 0. Es ändert sich im Ergebnis an der Kompensation nichts, nur das eingestellte Z-Offset wird abgenullt und in die Matrix übernommen.
Z<-0,2 .. +0,2 ohne 0>: Verschiebe die Z-Matrix in ihrer Höhe. Minus bedeutet, dass die Düse näher ans Bett rückt.
S<0..9>: Speichere die aktive Z-Matrix auf Speicherposition 0 bis 9 (ins externe EEPROM) ab.
Beispiel 1: M3902 Z0 S1 - Übernehme das aktuelle Z-Offset in die aktive Z-Matrix und speichere diese Matrix auf Speicherposition 1.
Beispiel 2: M3900 dann M3902 S1 - Korrigiere per Z-Offset-Scan die aktive Matrix und speichere diese Matrix auf Speicherposition 1
Beispiel 3: M3902 E1 dann M3900 R1 dann M3902 S8 - Nulle die aktuelle Z-Matrix, führe den Speziellen Z-Offset-Scan aus, der die plane Matrix in ihrer Ausrichtung grob dem Bett anpasst und speichere das Ergebnis auf Speicherposition 8.

Bemerkung

Vorsicht, den M3902 nur benutzen, wenn man weiß, was man tut.

M3909 - SenseOffset konfigurieren und aktivieren

Parameter

P<1...14999> [digits]
S<1...300> Standard: 180 [um]

Bemerkung

Hauptfeature der CommunityModFirmware

Der Parameter P legt die Digit-Grenze bzw. Innendruck-Grenze fest, ab der der Drucker in der ersten Lage "nachgibt" und das Bett leicht herunterfährt, wenn der Druck im Hotend zu hoch wird. Der Parameter S legt fest, wie viel Offset die Logik maximal aufbauen darf. Die Grenze für Parameter P wird normalerweise so gewählt, dass sie höher ist als der Normaldruck/die Normaldigits des jeweiligen Hotends in Kombination mit dem Material und der verwendeten Druckgeschwindigkeit in der ersten Lage. Eine aktuell passende Z-Matrix wird vorausgesetzt. Die Differenz zwischen dieser Digit-Grenze P und dem Normaldruck stellt im übertragenen Sinn das sogenannte "Anpressniveau der ersten Lage ans Heizbett" ein.


M3911 - DigitFlow Compensation konfigurieren und aktivieren

Parameter [S] Untere Digit-Grenze für den Beginn der Feedrate und Extrusionskorrektur [P] Obere Digit-Grenze für volle Korrektur [F] <0..-95> maximale Geschwindigkeitskorrektur in Prozent [E] <0..-95> maximale Extrusionsmengenkorrektur in Prozent

Beispiel: M3911 S5000 P7000 F-50 E-5 Bemerkung

Siehe auch im Druckermenü: Menü->Configuration->DMS-Features->...
Wiki: DigitFlowCompensation

M3912 - Automatische Startmade

Parameter

I <1..5> Anzahl der Maden

Spezial Parameter

S [digits] untere Slowdown Grenze in Digits, Standard 1500
P [digits] obere Slowdown Grenze in Digits, Standard 4500
F <5..50> ungebremste Standardfeedrate, Standard 15
E <10..30> Extrusionsrate, Standard 20

Beispiel: M3912 legt die Standardmade. Beispiel2: M3912 S500 P1000 F8 legt eine besonders Hotend-innendrucklose Startmade für z.B. Flexmaterialien Beispiel3: M3902 I3 legt die Standardmade in Form von bis zu 3 Linien ab, außer der Benutzer drückt vorher Play. Bemerkung Der GCode produziert eine sensible Startmade, die auf eine obere Digit-Begrenzung hört. Werden die Digits zu hoch, wird das Ablegen der Startmade langsamer. Drückt man während der Startmade Play wird die Startmade abgebrochen und mit dem Druck begonnen.

Video: Youtube

M3913 - sensibles Load-Filament

Parameter [P] = Kraftlimit [F] = Feedrate

Beispiel: M3913 P3500 F3
Alternativ: Menü->Extruder->Load-Filament

Bemerkung Die Düse wird mit Material gefüllt bis ein Digits-Wert überschritten wurde, dann gestoppt. Abbrechen ist jederzeit mit dem Play-Button am Drucker möglich.

Video: Youtube

M3914 - sensibles Unload Filament bzw. Filament entladen

Parameter

P: <2000 .. 15000> [digits] Der Parameter legt fest, wie fest der Extruder maximal ziehen darf.

Beispiel: M3914 P4500 - Unload Filament zieht mit etwa 4500 digits am Filament

Bemerkung Das Filament wird dann unter Einhaltung der oberen Filament-Grenze herausgezogen. Es wird auf ca. 90°C geheizt und am Filament gezogen, bis ein Digit-Wert erreicht wurde. Anschließend wird in 5°C-Schritten die Temperatur erhöht, bis sich das Filament löst. Abbrechen ist jederzeit mit dem Play-Button am Drucker möglich. Diese Kraft-Zug-Grenze P sollte vom Extrudermotor ohne Überspringen oder Fräsen erzeugbar sein. Sie sollte bestenfalls unter 12000 digits liegen, sodass die DMS-Sensoren geschont werden und trotzdem maximal hoch sein. Diese Grenze muss für manche Filamente kleiner gewählt werden, wie z.B. für weichere Filamente. Für weiches Flex ist dieser Befehl nicht unbedingt sinnvoll.


M-Codes für Spezialanwendungen

M3919 - Einstellung des Tipdown Z-Offsets

Parameter

TODO

Bemerkung Spezielles Z-Offset für das rechte Hotend. Nur für spezielle Extruderköpfe wie DGLASS oder Nibbels/Wessix Dual-Prototypen.

Für Menüsupport: UI_SHOW_TIPDOWN_IN_ZCONFIGURATION=1 in der configuration.h einstellen

M3939 - ViscositySense

Parameter

TODO

Bemerkung Testfunction to determine the digits over extrusion speed

Benötigt FEATURE_VISCOSITY_TEST=1

M-Codes für Entwickler und Debug

M3941 - Optionalen Temperatursensor auslesen

Parameter

TODO

Bemerkung Testfunction to determine the digits over extrusion speed

Benötigt FEATURE_VISCOSITY_TEST=1 in der configuration.h

M3987 - Stepperdriver Statusregister auslesen und Daten ausgeben

Parameter

TODO

Bemerkung reading motor driver and stall pins - Testfunction

Benötigt FEATURE_READ_STEPPER_STATUS=1 in der configuration.h

M3989 - User Interrupt INT3

Parameter

TODO

Bemerkung Dummy-Funktion/Vorlage für Entwickler, die mit einem weiteren Hardware-Knopf eine Aktion auslösen wollen.

Benötigt FEATURE_USER_INT3=1 in der configuration.h

M3993 - Move_Cache Füllstände debuggen und auslesen

Parameter

TODO

Bemerkung Einstellen der LOW_TICKS_PER_MOVE zur Laufzeit und auslesen der Füllstandsstatistik des Move_Cache.

Benötigt FEATURE_DEBUG_MOVE_CACHE_TIMING=1 in der configuration.h

im Mod entfernte M-Codes

M3002

[1]

Grund

Unnötig, wir nutzen M3007 in Millimeter. Sogar das ist unnötig, weil es im Mod eine Automatik für diese Kompensationsgrenzen gibt.

M3003

[2] Grund

Unnötig, wir nutzen M3008 in Millimeter. Sogar das ist unnötig, weil es im Mod eine Automatik für diese Kompensationsgrenzen gibt.

M3071

[3]


Grund

Unnötig, wegen Fräsen, integriert in M3070

M3100

[4]


Grund

Unnötig, weil wir im Menü eine Einstellmöglichkeit geschaffen haben (Menu->Position->Z-Step: XXX um)

M3101

[5]

Grund

Einstellung in Mikroschritten nicht mehr Zeitgemäß.

M3102

[6]

Grund

Unnötig, -> M3105 Pause-Position in [mm]