CNC-MINI-FRÄSE: GRBL einrichten

Prinzipiell läuft die Mini-Fräse. Für den produktiven Einsatz fehlt aber noch Einiges. Das holen wir mit diesem Artikel nach …

GRBL ist das Betriebssystem auf dem Arduino Uno, dass die Fräse steuern wird. Der PC sendet nur sogenannten GCODE an den UNO. Der übersetzt die Befehle dann in Richtungs- und Schrittimpulse für die Schrittmotoren. Dabei werden die Impulse (STEP und DIR) vom Arduino mittels der DRV8825-Treiber in Leitungsimpulse umgewandelt. Diese Impulse regen in geeigneter Weise die jeweils 2 Wicklungen pro Schrittmotor an. Die Schrittmotoren wirken über Gewindestangen oder Trapezspindeln auf die Achsen. Die unterschiedlichen Hardwarekomponenten, wie zum Beispiel die Gewindesteigung, machen eine Einrichtung der GRBL-Firmware unumgänglich. Die Steuersoftware auf dem PC kann das nicht, denn sie arbeitet maschinenunabhängig. Das ist ein großer Unterschied zur Steuerung über den Parallelport, wie es im Auslieferungszustand war. Der maschinenseitige Firmwareanteil und sogar der gesamte Prozessor fehlen bei dieser Art der Ansteuerung. Deshalb muss eine Software wie MACH3 auch genau auf die Maschine eingestellt werden.

Die Parameter, die in der Grundkonfiguration in GRBL angelegt sind, lassen sich über den Befehl $$ auflisten. In der Software GRBL-Controller geschieht das zu Programmstart sogar automatisch. Doch der Reihe nach …

Nach dem Start von GRBL-Controller wird der richtige Port eingestellt:

Ein erfolgreicher Connect mit der Fräse bzw. mit dem Arduino sollte die Antwort sein:

An dieser Stelle bleibt die Anzeige meist kurz stehen, bevor durch das automatische Kommando $$ der aktuelle Parametersatz angezeigt wird:

Die Bedeutung aller Parameter lässt sich im Internet an diversen Stellen unter dem Stichwort GRBL ermitteln. Ich empfehle dazu diesen Link. Wichtig zu Anfang sind die Parameter von 100 bis 102:

$100=400.000 (x, step/mm)
$101=400.000 (y, step/mm)
$102=400.000 (z, step/mm)

Hier wird eingestellt, wieviele Stepps die Steuerung erzeugen muss um an der betroffenen Achse eine Bewegung von 1mm zu bewirken. Bei Fräsen dürften Riementriebe wohl kaum vorkommen. Also muss hier nach der Steigung der Gewindestange (Trapezgewindestange etc.) gesucht werden. Vorsicht: Einfaches Messen am Objekt kann trickreich sein. Denn Trapezgewindestangen haben meist 2 Gewindegänge oder sogar mehr. Das muss man beim Messen beachten!

Ich habe eine 8mm Trapezgewindespindel mit 2 Gängen. Die Steigung eines Gewindeganges ist 4mm pro Umdrehung. Ich habe Achtel-Microsteps eingestellt. Nach der Formel …

step/mm = Motorsteps pro Umdrehung * Microsteps / Steigung

… ergibt sich bei mir durch 200 * 8 / 4 der Wert 400.  Die Einstellung des Parameters erfolgt durch Eingabe in der Command-Zeile:

Das Ergebnis unserer Einstellungen lässt sich jetzt leicht überprüfen. In GRBL-Controller lassen sich die Achsen über die Pfeiltasten bewegen. Die Spindel sollte mit eingespanntem Bohrer oder Fräser frei sein und nicht das Fräsbett berühren.

Die ersten zwei Zeilen im Log-Fenster sind durch Betätigen des Z-Jogs nach oben entstanden. Ausführliche Informationen liefert zum Beispiel dieses Wiki.  G91 setzt das System auf relative Positionierung. Die eingegebenen Koordinaten sind also immer als Inkrement oder Dekrement zur aktuellen Position zu sehen. G01 startet eine Bewegung für die angegebene Achse mit dem nachfolgenden Wert. G01 X10 bewegt also die Spindel in X-Richtung um 10mm. G01 X-10 bewegt in die Gegenrichtung. Man sollte zunächst sehr kleine Beträge wählen, um nicht in die Achsenende zu fahren. Hat man den Bogen dann raus, kann es ans Messen gehen. G01 X100 bewegt also um 10cm (100mm). Da kann man schon recht verlässlich messen, ob die Parametereingabe richtig war.

Stimmt denn auch die Richtung? Man kann den Koordinatenursprung sowohl vorne links setzen oder hinten rechts. Das ist eine Frage, die man sich anhand der Gegebenheiten überlegen muss. Bei mir sitzt der Ursprung hinten rechts. Nach vorne wächst also Y und nach links wächst X. Von vorne sieht man also das Ergebnis auf dem Kopf. Hebt sich die Spindel (Z-Richtung), ist das in jedem Fall die positive Richtung.

Ich habe mir das auch angezeichnet, was für spätere Überlegungen nützlich sein kann. Wenn man jetzt mit den oben genannten Kommandos zur Achsbewegung arbeitet, ist eventuell eine oder mehrere Achsen falsch angesteuert. An der Elektronik braucht man dafür glücklicherweise nichts ändern. Auch das geht über die Parameter.

$3 – Direction port invert mask:binary

… wird mit der folgenden Tabelle gesetzt

Soll also sowohl die X- als auch die Z-Achse invertiert werden, ist es der Wert 5. Der wird nun wieder in der Befehlszeile mit $3=5 eingegeben. Auch die oben genannte Tabelle findet man im Link zu GRBL.

Diverse weitere Parameter können noch eingegeben werden. Ob das notwendig ist, wird sich später noch zeigen. Ich habe mal alles Andere beim Standard belassen.

Als nächstes wäre es sinnvoll sich ein passendes „Opferbrett“ zu besorgen, dass das maschineneigene Fräsbett schont. Denn wer will schon in die Maschine bohren?  Hier hat sich MDF als sehr brauchbar erwiesen. Kleine Bretter in der Größe unseres Fräsbereiches sollten im Baumarkt als preisgünstiger „Abfall“ zu finden sein. Ich habe relativ schnell etwas gefunden, obwohl es mit einem Zentimeter etwas dünn war. Also habe ich einfach zwei Bretter übereinander fixiert.

Im Bild ist hinten rechts die Markierung meines Koordinatennullpunkts zu sehen.

Wir fahren jetzt über die oben gelernten Kommandos vorsichtig soweit wie möglich in den Nullpunkt X und Y. Ein geeigneter Fräser mit etwa 2 bis 3mm Schneidendurchmesser sollte in die Spindel gespannt sein. Spindelmotor einschalten und dann vorsichtig mit kleinen Bewegungen in negative Z-Richtung fahren, bis der Fräser die Platte berührt. Dann noch 2mm weiter. Jetzt per Kommando in positiver X-Richtung soweit wie möglich fahren. Damit haben wir die hintere im Bild sichtbare Linie bzw. Rinne erzeugt. Sinnvollerweise rechnet man den gesamten Weg aus den Kommandos zusammen, um den maximalen X-Weg zu erhalten. Ich habe mich mit 180mm zufrieden gegeben. Das gleiche Spielchen jetzt mit Y. Da kann man ruhig mit einem 100mm-Schritt starten und dann kleiner werden. Zusammenrechnen und wir haben den maximalen Y-Weg. Das ist dann die linke Rinne im Bild. Das nächste Kommando lautet dann G01 X-(maximaler X-Weg). Nicht das Minus vergessen, denn wir bewegen uns wieder Richtung Nullpunkt. Das war die vordere Rinne. Jetzt noch G01 Y-(maximaler Y-Weg). Negativ !! Jetzt sollte der Fräser wieder auf der ursprünglichen Eintauchposition stehen. Mit G01 Z15 heben wir den Fräser 13mm über das Brett. Er war ja vorher 2mm im Brett. Wir haben jetzt den Arbeitsbereich auf der Platte angezeichnet, was auch bei der Ausrichtung für die Werkstücke später sinnvoll ist. Abmontieren sollte man das Brett jetzt natürlich nicht mehr.

Der ganze oben beschriebene Vorgang hilft bei der ersten Berührung mit der Fräse und sollte das Verständnis für die Koordinatenhandhabung stärken. Zudem zeigt es auch in gewisser Weise die Wiederholgenauigkeit der Maschine. Sollte der Fräser nicht genau am Eintauchpunkt angekommen sein, liegt es mit hoher Sicherheit daran, dass irgendwo zu großes Spiel in den Trapezgewindespindeln vorliegt oder der Spindelmotor nicht richtig befestigt ist oder die Treiberbausteine nicht richtig eingestellt sind und Schritte verlieren. Bevor es im nächsten Beitrag weitergeht, sollte das alles reibungslos funktionieren.

5 1 vote
Article Rating
Abonnieren
Benachrichtige mich bei
guest
17 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Dieter Oswald

Hallo Thomas,
ich habe mir eine CNC-Fräse aus China besorgt. Sie hat eine Zeit problemlos gearbeitet.
nun bekomme ich keine Rückmeldung über die Maschinenkoordinaten und die work-koordinaten. Steppermotoren (xyz) bewegen sich.
Die Koordinaten bleiben aber bei 0.
GRBL 0.9j habe ich neu auf den Arduino Nano neu geladen, aber keine Veränderung.
Ich verwende den GRBL-Controller 3.6.1 und bCNC, in beiden Fällen änder sich die Koordinaten nicht. Es gibt also keine Rückmeldung vom Nano bzw. vom Shield zum Nano.
Ich hoffe Du kannst mir einen Tipp geben.
Deine Homepage ist richtig hilfreich, danke. Als Funkamateur hat man so seine Eigenschaften.
Schon jetzt vielen Dank für eine Info.
Dieter DG1GOD

Dieter Oswald

Servus Thomas,
danke für die Info, aber sie hat nicht geholfen. Ich habe die Werkstückposition verändert und anschließend den Befehl zurück zum Ursprung gegeben, die Spindel ist exakt zurückgekehrt. Das bedeutet doch der Datenfluß ist O.K.
Auf dem PC-Bildschirm wird jedoch die Werkstückposition und Maschinenposition nicht angezeigt. Die Felder sind weiß. Ich habe eine grosse Vermutung die Treiber der Schrittmotoren haben einen Schaden oder die Eingänge vom Arduino Nano haben einen Schuß bekommen.

Dieter Oswald

Servus,
ich habe mir einen neuen Nano besorgt. Er ist heute angekommen, Stiftleiste eingelötet und Programm aufgespielet. Nach Inbetriebnahme und Programmstart, welch Wunder die Daten erscheinen wieder. Also der Nano hatte einen Schuß.
Woher ? Erdung war/ist O.K. Überspannung aus Netzteil? Da ich keinen Schaltplan vom Shield finde, ist die Ursachenforschung doch etwas mühsam. Andererseits sind scheinbar Dateneingänge am Nano defekt. Woher?
Ich werde sehr sensibel in der Zukunft die Fräse beobachten. Irgendwo muss der Defekt ja herkommen.

Vielen Dank für Deine Infos, die auch meinen Gedanken geholfen haben.
Ein schönes Wochenende
Dieter

Dieter Oswald

Servus
danke für die Antwort. Ich habe auch schon mal nachdedacht über die statische Ladung, aber alles geerdet. Eventuell gibt es 2 Erdungen, habe ich auch schon gesehen.
Nochmals danke für die Hilfe.
Wennn ich neue Erkenntnisse habe, melde ich mich wieder.
Danke bis demnächst.

Dieter

Andreas

Hallo Leute,

wenn ich ein Programm gelanden habe und auf Senden drücke fängt die Maschine an und das Software GRBL Candle hängt sich auf.

Kann jemand helfen?

Gruß Andreas

Thomas Sturm

Hallo Andreas,
bis jetzt gerade kannte ich GRBL Candle gar nicht. Ich kann mangels Erfahrung leider gar nichts dazu sagen. Die grundlegenden Parameter hast Du ja sicherlich schon geprüft: Kommunikationsparameter, elektrische Verbindung (Wackler), läuft die Software ohne angeschlossene Maschine, etc.
Weiß jemand anderes mehr?

Viele Grüße
Thomas

Dietmar

Hallo an alle,
ich besitze seit kurzem eine Mini CNC-Fräße.
Sie tatet die kordinaten exakt ab NUR statt das sich der Fräßer senkt und auf die Arbeitshöhe geht, geht der Fräßer nach oben tastet aber in der hochgefahrenen Pos die Korordienaten ab
kann mir jemand von Euch sagen woran das liegen kann???
LG
Dietmar

Thomas F.

Evtl. die Z- Achse in der Software invertieren.

Michael Grolimund

Guten Abend,

Ich habe mir auch so eine China Fröse zugetan welche mit dieser GRBL (Candle) Software betrieben wird. Da ich ein absoluter Anfänger bin im CNC Bereich würde mich interessieren ob mir jemand helfen und sagen kann was für Dateiformate diese Software denn alles verarbeiten und umsetzen kann??
Damit ich weiss in welche Formate ich die Dateien denn konvertieren oder erstellen soll.

Besten Dank

Michael

Roger

Hallo zusammen,

habe die Fräse nun seit einiger Zeit in der Ecke stehen und will es nun noch einmal versuchen.
Die Beispielprogramme, wie z.B. der Schriftzug „iphone“ laufen tadellos.
Aber wenn ich, wie im youtube-video (https://www.youtube.com/watch?v=XfhlZuw5mDs) erklärt, den smiley programmiere und an den Controller sende, kommt die Meldung: error, expected command letter?!
Mit welchem Tool programmiert/konstruiert Ihr, um es dann an den Controller/die Fräse zu senden?

Die Handfunktionen (auf/ab, Fräser ein/aus, etc.) funktionieren.

Danke und Grüße

Roger

Toni

Hi Roger,
die Fehlermeldung „error, expected command letter“ kommt höchstwahrscheinlich von einer fehlerhaften Punktuation im G-code. Typischer Fehler ist, dass im G-Code Generator der Ländercode nicht richtig gesetzt ist und und Punkt . und Komma , dann nicht richtig gesetzt werden.
Schau‘ mal ob das bei dir zutrifft, d.h. prüfe im ersten Schritt deinen G-Code auf fehlerhafte Punktuation.

Viele Grüße,
Toni

Ferdinand Fischer

Hallo,
Ich habe eine CNC 3018 Fräsmaschine. Hat bisher gut funktioniert fräst jedoch seit kurzem (hab zwischendurch mit dem Laser 5500 mW gearbeitet) alles viel zu klein, Faktor ca. 0,26. Ich finde jedoch in den Einstellungen keinen Fehler.
Danke für deine Hilfe, Ferry

Thomas

Hallo Ferdinand,
ich würde mal tippen, dass während der Arbeit mit dem Laser die Firmware geändert wurde. In der Firmware stehen genau die Parameter, die die Motor-Rotationsbewegungen in Längenbewegungen übersetzen. Um verschiedene Maschinen anzupassen, benötigt man einen Faktor, der Rotationsschritte mit einem Übersetzungsfaktor versieht um die gewünschte Bewegung auf einer Achse zu erreichen. Ich bin mir sehr sicher, dass dort der Fehler liegt. Die Zusammenhänge habe ich ja oben in dem Artikel erklärt. Da steht auch, wie man die Parameter ändern muss.

Daniel Kuhr

So weit bin ich dank deiner Schilderungen nun auch 😁👍🏻. Mich würde nun interessieren wie ich einen Endstop je Achse eingerichtet bekomme.
Gruß Daniel