Rudis-Hobbysite.de
Hier finden Sie meine Projekte
 
 

GRBL


GRBL ist eine kostenlose, quelloffene Open-Source-Software zur Steuerung der Bewegung von Maschinen. Der G-Code Interpreter ist auf einem Atmega Mikroprozessor implentiert und erzeugt die Signale STEP und DIR für die Treiberbausteine der Schrittmotoren.

GRBL ist eine Firmware für einen Arduino Uno oder Mega. Dieser kommuniziert dann mit Kutty oder anderen G-Code-Sendeprogrammen. GRBL erhält von diesen den G-Code und Steuerbefehle. Rückgaben sind z.B. die aktuellen Positionen.

Folgende GRBL-Versionen möchte ich hier vorstellen:


GRBL V1.1 ist das neueste originale GRBL für den Arduino UNO. Dieses ist für 3 Achsen ausgelegt und ist somit die Standard Firmware für normale Fräsen. Die Verdrahtung zu den Stepperdrivern ist bei Github im Wiki beschrieben.


GRBL-MEGA V1.1 ist das originale GRBL für den Arduino MEGA. Dieses ist auch für 3 Achsen ausgelegt. Der Mega ist leistungsfähiger als der UNO und somit die bessere Wahl.


GRBLQ ist die dritte Firmware die ich hier vorstellen will. Sie basiert auf der neuesten Version für den Arduino Mega. Die "Quadro"-Achse kann als Drehachse oder als Linearachse konfiguriert werden. GRBLQ kann ist für Fräsen mit Teilapparat ideal. Pins für Spindel-PWM und Achslimits sind auch vorhanden.
Die Umstellung der Q-Achse auf linear erfolgt in der default.h. Wie das geht ist hier im Wiki beschrieben.


GRBL-Mega-5X ist die vierte Firmware. Sie basiert ebenfalls auf der neuesten Version für den Arduino Mega. Das Pinout passt auf die Ramps1.4-Platine und kompatible 3D-Druckerboards. Die Anschlüsse sind hier im Wiki beschrieben. Bei GRBL-Mega-5X können alle 5 Achsen des Rampsboards mit CNC Befehlen ansteuert werden. Die Letzten können wahlweise als Dreh- oder Linearachsen konfiguriert werden. Es können auch Achsen geklont werden um zwei Spindeln für eine Achse anzusteuern. Auch hierzu näheres im Wiki.
Mit linear konfigurierten Achsen kann GRBL-Mega-5X optimal an Styroschneiden eingesetzt werden. Der PWM-Heizbettausgang kann für die Regelung der Drahttemperatur benutzt werden. Auch Homing und Limits funktionieren auf allen Achsen.
Die Achs-Einstellungen erfolgen in der config.h. Sehr schön ist hier auch die Möglichkeit die Achsbezeichnungen z.B. auf X,Y,U,V einzustellen, wie es für Kutty im Hotwiremodus notwendig ist.



Tipps:


Die Installation von GRBL mittels Arduino IDE:

Der allgemeine Installationsweg über die Libraries ist hier im Grbl-Wiki beschrieben.
Alternativ kann der Download auch direkt in eine komplette INO umgewandelt werden. Dies ist auch notwendig um mit verschiedenen Versionen experimentieren zu können. Dazu alle Dateien in einen leeren Ordner z.B. "GrblMega" kopieren. In dem Ordner eine leere gleichnahmige Ino-Datei, hier im Beispiel "GrblMega.ino" erstellen. Dann diese doppelklicken und hochladen. Zuvor evtl. noch die Anpassungen in der config.h machen. Zum Test kann der Serial-Monitor gestartet werden. Auf 115200 baud eingestellt sollte die Grbl-Meldung kommen.
Wenn nun alles geklappt hat ist der Arduino bereit. Die Arduino-IDE beenden und in Kutty auf das rote Feld oben links klicken und den richtigen Comport auswählen. Wenn das Feld grün wird ist auch hier alles in Ordnung. Er kann nun eingebaut und verwendet werden.

Grbl einrichten:

Im Kutty-Menue Einstellungen > Einstellungen Grbl lassen sich die Grbl-Parameter übersichtlich editieren. Zuerst Soft-, Hardlimits und Homing ausschalten sonst sind ohne Offset nur negative Werte möglich.


Text?


Zuerst werden die Achsrichtungen nach dem Schaubild eingestellt. X+ geht nach rechts, Y+ geht von einem weg und Z+ nach oben. Bei der Homing/Referenzfahrt habe ich z.B. die Referenzschalter für X links, für Y vorne und Z oben. Das heist X und Y ist invertiert. Z muss immer oben montiert werden um Kollisionen bei der Referenzfahrt zu vermeiden.
Bei GRBL ist der Maschinen-Nullpunkt (G53) dort wo die Maschine eingeschaltet wird und nach der Referenzfahrt rechts hinten oben. Das heißt der Maschinenraum ist im negativen Bereich (dritter Quadrant).
Man arbeitet natürlich mit entsprechend gesetzten Werkstück-Nullpunkten wieder meist im positiven Bereich. Das ist zuerst automatisch G54. Es können weitere Werkstück-Nullpunkte bis G59 benutzt werden. Solange in diesen keine Offsets gespeichert sind, kann bei gesetztem Softlimit erstmal nur mit negativen Positionen gearbeitet werden.
Will man nur für eine einzelne Achse kein Softlimit haben, kann man dies deaktivieren in dem man Max travel auf 0 setzt. Da eine Drehachse endlos ist, ist es hier meist sinnvoll.


Verwenden Sie ein geschirmtes und nicht zu langes USB-Kabel. So ist die Datenübertragung stabiler, Störungen sollten dann nicht vorkommen.



GRBL-Mega-5X für eine Styroschneide einrichten:

Dazu bearbeiten wir die Datei config.h im Ordner Arduino/library/grbl. Folgende Zeile werden geändert:

 55: #define N_AXIS 4 // Number of axes
 56: #define N_AXIS_LINEAR 4 // Number of linears axis
 63: #define AXIS_3_NAME 'U'
 69: #define AXIS_4_NAME 'V' // Letter of axis number 4
186: #define HOMING_CYCLE_0 ((1<<AXIS_1)|(1<<AXIS_3))
187: #define HOMING_CYCLE_1 ((1<<AXIS_2)|(1<<AXIS_4))

Nach dem Hochladen muss Grbl noch konfiguriert werden. Das geht ganz übersichtlich mit Kutty im Menü Einstellungen > Einstellungen Grbl. Die Werte entsprechend den Maschinenwegen eingeben. Die Laufrichtung der Motoren kann invertiert, oder auch einfach durch Drehen des Steckers um 180° eingestellt werden. Zuvor sicherheitshalber spannungsfrei schalten.
Die Anschlüsse sind im WIKI bescheieben.

Bei der Verwendung von 24V für das Ramps-Board ist unbedingt darauf zu achten, dass man die Diode zur Mega-Spannungsversorgung enfernt. Der arduinoeigene Spannungsregler verträgt keine 24V. Dieses wird durch den USB-Anschluss mit Strom versorgt. Es kann auch ein Ramps kompatibles 3D-Druckerboard mit Atmega2560 verwendet werden. Diese sind von vorne herein auf 24V ausgelegt.



Rudis-Hobbysite.de