Zusammenfassung der M- und G Codes , die für den CraftBot genutzt werden

Edit 10-7-2016

Hinweis : Der erste Beitrag wird aktualisiert , sobald neue Daten zur Verfügung stehen. Falls Sie weitere Informationen über die Auswirkungen der M/G Codes besitzen, so teilen Sie diese in diesem Beitrag mit , damit die Liste aktualisiert werden kann. Vielen Dank !

 

Technische Daten :
Microprocessor Atmel : ATSAM3X8E ARM CORTEX M3 84 MHz
Schrittmotorsteuerung: DRV8825
Druckbett- und Heizelementsteuerung : MOSFET IOR IRLH5034PbF
Thermosensor ( Thermistor ) : 100k NTC. Meistens EPCOS 100K Thermistor B57560G104F

Batterietyp CB+ : CR2032 oder CR2025.

Extruder Heizelement : 12V 40W / CraftBot PLUS 24V / 40W
Druckbettheizung : 12V / 150W / CraftBot PLUS 24V / 150W Silikon


 

Linearbewegungen

XY Linearlager (8 Stück) Die Linearlager besitzen die Abmessungen 8mm x15mm x 24mm. Qualitätslager erhalten Sie z.B. von der Fa. IKO.

Ebenfalls zu empfehlen ist der Austausch durch Kunstofflager der Fa. IGUS DryLin RJ4JP-01-08.

Die Linearlager sind durch kleine Madenschrauben gesichert.

 

Ein Austausch der Achsen könnte von Vorteil sein, da der Ducrmesser minimal zu groß ist.

The XY Achsen besitzen einen Durchmesser von 8mm.
The Z Achse besitzt einen Durchmesser von 12mms.

 

Schrittmotor : 17HS3001-20B (40 N-cm / Achse 5mm ) NEMA17
Motorschrittwinkel : 200
Treiber Microstepping: 1/32 : 6400 steps für 1 Umdrehung

Antriebsriemen ( Timing belt ) BELT GT2: 2mm. Die Längen der Antriebsriemen sind :  132cm und 128cm.
Umlenkrolle : 20 Zähne x2mm= 40mm pro Umdrehung  = 3200/40=80 Schritte / mm für XY Bewegung

Hinweis : Es hat sich herausgestellt, daß die CoreXY Mechanik 160 Schritte / mm benötigt.

 

Z Achse TR10x2: Benötigt werden (200 x 32) /2mm , d.h. 3200 Schritte für 1mm Veränderung der Höhe in Z-Richtung.

Hinweis : In der Praxis mußte die Anzahl der Schritte auf 3050 geändert werden , um eine exakte Höhenveränderung von 1mm zu erreichen.

 


 

Antriebszahnrad Extruder :

Durchmesser : 10.8mm x pi = 33,9292 mm pro Umdrehung.
Schrittmotor: 200×32=6400 Schritte pro Umdrehung, benötigt werden pro 1mm Filament 6400/33,9292=188.628 Schritte für den Extrudermotor

Antriebszahnrad :

Innendurchmesser : 5mm

Außendurchmesser :10.8mm

Höhe :12mm

Anzahl der Zähne :38

Achsloch :M3
(http://www.ebay.com/itm/5mm-38-teeth-Makerbot-3D-Printer-Kit-Feeding-Wheel-Extruder-Drive-Gear-/111682426600?ssPageName=ADME:L:OC:NL:3160)

 


Frequenzen der Schrittmotoren

Es gibt nur zwei feste Frequenzen für den Schrittmotor : 42000/13 Hz und 42000/40 Hz. . Der Extruder bewegt sich mit 188 Schritten pro mm , die Geschwindigkeiten sind daher 17mm/s und 5.5mm/s .


Begrenzung der maximalen Druckgeschwindigkeit

Momentan ist die Geschwindigkeit durch die Firmware auf 120 mm/s in X7Y Richtung begrenzt.

 


Allgemein :

Die Firmware wird einen Fehler erkennen und den Druck stoppen, falls ein Befehl wie “ ( “ or “ ) “  während der Verarbeitung des GCODE erkannt wird.
Simultane Achsbewegungen hängen vom GCODE ab , wird beispielsweise G1 X100 Y80 Z50 E10 in einer Zeile gesendet , so wird der CraftBot versuchen , 4 Bewegungen gleichzeitig durchführen. Slicer trennen solche Befehle oft automatisch , da diese Anzahl Befehle nicht gleichzeitig ausgeführt werden können.
Die linke , vordere Druckbettecke scheint sich bei X8Y0 , statt bei X0Y0 zu befinden. Objekte werden dadurch um 8mm versetzt. Eine Veränderung in den entsprechenden Slicerwerten schafft hier Abhilfe , um den vollen Druckbereich zu nutzen.

Folgende Zeilen können Sie zu startGcode des Slicers hinzufügen ( Nach den Befehlen für den Heizvorgang ) :

G1 X8 Y1 E10; es werden 10mm Filament ausgestoßen und der Extruder bewegt sich zur Eckposition des Druckbetts
G92 X0 Y0 E0; Der Wert für X,Y und E wird auf 0 gesetzt

 


 G codes

G0: Lineare Bewegungen: E F X Y Z

Ähnliche Funktion wie G1? (EDIT: G0 scheint mehr unbeschleunigte Bewegungen hervorzurufen als G1 !?)

 

G1: Lineare Bewegungen: E F X Y Z

Normal move E=extrusion in mm Raw filament (before heated) , F=speed in mm/minute(not seconds), XYZ=position: all positioned to a absolute origin. Without the E value it’s a travel move, wit the E value it’s a print move, simple said.

 

G4: Pause: P S limitiert auf 5 Sekunden.

Ein Halte Kommando : P=Millisekunden, S=Sekunden,  G4 S4 ergibt einen 4 Sekunden dauernden Halt

 

G20: Wechselt zur Maßeinheit Zoll ( inches )

 

G21: Wechselt zur Maßeinheit Millimeter

 

G28: Bewegung zum Nullpunkt : X Y Z  Zum Nullpunkt ( Startpunkt ) XYZ Achsen zum Endpunkt

 

G90: Absolute Positionierung :

Normale Einstellung: X0 Y0 Z0 ist die Eckposition vorne links , das Druckbett am höchsten Punkt ; alle XYZ Punkte beziehen sich auf X0,Y0.Z0

 

G91: Relative Positionierung : Alle XYZ Befehle beziehen sich auf den letzten Punkt

 

G92: Festlegung von E X Y Z

Meistens wird der Befehl G92 E0 genutzt , den Extruderwert zu resetten , um sehr hohe E-Werte am Ende des Drucks zu verhindern

 

G101: Relative Linearbewegung: E F X Y Z genau wie G1, alle Koordinaten beziehen sich auf die letzte Position

 

G197 pausiert den Druck und bewegt den Extruder zur Position  X0, Y100


 

M codes

M18: Schaltet die Schrittmotoren aus. Der Extruder läßt sich manuell bewegen

 

M82: Versetzt den Extruder in den absoluten Modus ???? Läßt den Extruder den Filamentausstoß ( Extrusion ) als absolute Position interpretieren

 

M83: Versetzt den Extruder in den relativen Modus ???? Läßt den Extruder den Filamentastoss ( Extrusion ) als relative Position interpretieren

 

M84: S schaltet den Motor nach Ablauf einer Zeitspanne aus : M84 S60 schaltet den Motor nach einer Minute aus

 

M104: Extrudertemperatur: H L S ????  S bezeichnet die Temperatur also bedeutet M104 S220 eine Festlegung der Extrudertemperatur von 220 Grad Celsius

 

M105: Abfrage der Extrudertemperatur : P T Feedback der Extrudertemperatur

 

M106: Lüfter einschalten : H L S ???? M106 S255 max. Geschwindigkeit ? Was bedeuten H und L ? Terminal feedback:  S:255 H:255 L:50

 

M107: Lüfter ausschalten ???? Steuert nur die beiden Objektlüfter

 

M109: Warten auf Erreichen der Extrudertemperatur: S

Legt die Extrudertemperatur fest und wartet mit dem Abarbeiten der nächsten Befehle, bis diese erreicht ist.
Es scheint so , als ob nur bis zum Erreichen von 97% der Temperatur gewartet wird , z.B +6 Grad bei 180 Grad , aber 8 Grad bei 240 Grad

 

M110: Festlegung der Zeilennummer. ???? Die Zeilennummer in der Liste der Gcode Befehle

 

M114: Die aktuelle Position ermitteln

???? Dies fragt die aktuelle Position von X, Y, Z und E Koordinate ab
Terminal feedback: X:60.21 Y:35.74 Z:9.47 E:0.00

 

M115: Die aktuelle Firmware Version ermitteln.

???? Fragt die aktuelle Firmware Version ab
Terminal feedback: PROTOCOL_VERSION:0.1 FIRMWARE_VERSION:1.1.6197 FIRMWARE_NAME:pr3Dator MACHINE_TYPE:CraftBot EXTRUDER_COUNT:1

 

M117: Fragt den aktuellen Nullpunkt ab

???? Ermittelt die Position von X, Y, Z und E Koordinate in Schritten statt mm

 

M140: Festlegen der Druckbettemperatur: H L S  Das Gleiche wie M140, nur für das Druckbett

 

M190: Warten auf Erreichen der Druckbettemperatur : S  Das Gleiche wie M109, nur für das Druckbett

 

M300 : Signalton  P S (P ist die Dauer 100 in einer Sekunde:  S ist die Tonhöhe: 3 ist hoch 500 niedrig

Dieser Befehl hat keine Wartezeit , der Ton wird sofort  abgespielt

M906: Einstellung des Motorstroms: E X Z

M906 X75 ; wenn der Wert für den X&Y Schrittmotor auf  75 gesetzt werden soll
Aktuelle Werte (E44,X44,Z33)

 

 

M907:  Set decay mode:  A B E Z ok Decay  A:0, B:0, Z:0, E:0,

 

M1000: Auflistung aller unterstützter Befehle

M1002: Get unique ID: S  ???? The ID of the specific CraftBot

Terminal feedback: My unhackable ID nummer in HEX probably: 12008, 0x314e304d08, 0x3230373108, 0x3231303908

 

M1003: Get firmware version: S

???? the firmware version loaded to the CraftBot
Terminal feedback: ok pr3Dator version: 1.1.6197 – 2014-12-18/1

 

M1004: Get HMI version. ???  Terminal feedback: *HMI version: 0.0.1

 

M1006: Set limits s=1 Case / S=2 Head: H L S

???? Allow moves outside the print volume, or not. ?
No terminal feedbak

 

M1014: Get ADC values.

???? the readout of temps and voltage?
Terminal feedback: ADC: 20C, 19C, 22.5C, 12.0V

 

M1015: Get PWM duty.

???? PWM value to control internal extruder pressure. S255 is full pressure.
Terminal feedback: Head:0, Bed:0, Obj:0, Peek:0 Case:255

 

M1114: Get machine coordinates.

???? feedback to PC about the XYZ position
Terminal feedback A:0 B:0 Z:21787 E:0

 

M1115: Get queue.

???? the queue of commands sent to the printer?
Terminal feedback: X0 Y0 Z0 E0

 

M1160: Fan control (Case,Head,Obj):  C H O

M1160 H255 makes the extruder fan spinning faster, but it’s overrides quickly and returns to default.

 

M1200: Set feed properties: F H L   minimum(L), maximum(H) and multipler(F)

Works only with the terminal window. L:600 H:7200 F:1.00

 

M1201: Set axis ratio: E X Y Z Here you can set a multiplier for each axis.

This is geometry, so if you want to change the size of the printed object, but you have the gcode only: M1201 (default 1.0) Works only with the terminal window.

 

M1202: Set axis soft limit: E X Y Z

???? The values specified set the software limits for axis travel in the positive direction.?
no feedback in terminal

 

M1203:  Set XY acceleration: A D F (values changed with the firmware from 1-1-2016)

default: M1203 A2000 D2000 F240

experimental faster acceleration: M1203 A3000 D3000 F1200
M1203 A = Acceleration. When set to 0, the acceleration is disabled. Causing more vibration. The higher the number, the steeper the acceleration.
M1203 D = Deceleration. When set to 0, the deceleration is disabled. Causing more vibration. The higher the number, the steeper the acceleration.

M1204: K1.0 E shift, experimental

The „K“ is the correction parameter specified in potato units. The default is 1.0 potato. This one works the best when LH=0.2mm

M1210:   Der voreingestellte Wert ist M1210 K1 F2400

Dies ist eine grundlegende Funktion die die Verzögerung des Extruderdrucks  in Relation zur Bewegung in X/Y Richtung ausgleichen soll .
Die Kompensation besitzt einen K Parameter , der die Höhe der Kompensation und einen F Paramter der die Mindestgeschwindigkeit festlegt .

Die Voreinstellung ist :
M1210K1F2400, sie sind für den Druck mit PLA gut geeignet.

M1300: Set extruder PID:  D F I P W

Extra parameter, F, meaning „Fan Correction“
Terminal feedback: ok S:255 H:255 L:50
An expert feature IMO. The PID controller algorithm involves three separate constant parameters, and is accordingly sometimes called three-term control: the proportional, the integral and derivative values, denotedP, I, and D. Simply put, these values can be interpreted in terms of time: P depends on the present-error, I on the accumulation of past errors, and D is a prediction of future errors, based on current rate of change What is the W value?

 

M1301: Set bed PID: D F I P W

extra parameter, F, meaning „Fan Correction“ ???? Same as M1300 only for the Bed
Terminal feedback: Bed PID: P=25.00, I=0.10, D=0.00, W=100.00

 

M1400: Start heating and waiting:  B E H P Q

B E H P Q B=bed temp E=extrusie H=extruder ok H<Head temp> B<Bed temp> E<Extrusion after heating(mm)>. All parameter are optional
Here is an example:
M1400 H220 B60 E20 (heat extruder to 220 degrees, the bed to 60 degrees, and after that extrudes 20mm filmanent)


 

The following commands are used for immediately pausing, but shouldn’t be used by users:

M1401: Push: F X Y Z
???? Push the state of the machine onto a stack Current feedrate, and Whether moves (and separately extrusion) are relative or absolute?
no feedback in terminal

M1402: Pop: F X Y Z
???? Recover the last state pushed onto the stack.?
no feedback in terminal

M1403: Flush.
???? (stop excuting the Gcode and reset?)
no feedback in terminal

 

M4001 will display the current value of the Heated Bed (probably it is 80 now.)

To set a new max current for the bed: M4001 P70 should be ok.

M4002 P1: this will let the bed heating element to get as many current as it requires to heat up fast.


 

Dangerous commands:

M4003 S270: sets max temp of the hotend, in this case 270c (At your own risk)

 

M6666 S69 does the reset. It really resets the main board, but no feedback to the LCD panel, so it won’t show you the changes. For example if you heat up using the LCD and you issue this command the LCD still shows its heating up, but that is not true.

 

M6666 reset without parameters, but you won’t see too much using this.

 

M6969 S69 erases the firmware.


Spannungsausfall – und Druck Wiederaufnahme Feature (Nur für CB+ und Firmware Version 8886 und höher):

Die Informationen wurden mir von Psanyi zur verfügung gestellt:

Die Grenzen der Wiederaufnahme :

  • Der gcode muss im oberen Verzeichnis oder zumindest nur zwei Verzeichnisse tiefer vorhanden sein.
  • Die Datei muss absolute Koordinaten in mm enthalten.

Der Neustart Prozess:

  • Das Programm hat einen Druckabbruch registriert , ermittelt die Datei und fragt nach der weiteren Vorgehensweise : Druckbett aufheizen oder den Extruder in die Anfangsposition ( X/Y ) fahren. Wird Anfangsposition gewählt , wird der Extruder etwas angehoben und der Schlitten fährt zur Anfangsposition XY0.
  • Danach wird die Datei geprüft und alle M Kommandos an den Drucker gesandt , dies ist nützlich für alle Änderungen an der Motorsteuerung ( “ motor tweaks “ ).
  • Jetzt wird die Position ermittelt gewartet bis die Temperaturen erreicht sind und in den Pausenmodus geschaltet. In diesem Modus können  Filament ausgestossen und Einstellungen verändert werden.
  • Sobald Play gedrückt wird , beginnt der Druckvorgang.

Some hidden CraftWare features:

ALT+CTRL+x = FPS and other screen rendering information.
ALT+CTRL+c = Camera path editor. I have used this to create animations shown in our Indiegogo campaign video
ALT+CTRL+z = Show / Hide buttons and info panel

CTRL+right mouse click and move is a look around function.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *