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.

10 Gedanken zu „CNC-MINI-FRÄSE: GRBL einrichten“

  1. 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

    1. Hallo Dieter,
      ich würde darauf tippen, dass die Parameter im GRBL nicht ganz richtig eingestellt sind. Kontrolliere das mal bitte. Außerdem kann bei der Kommunikation vom Rechner zum Board noch Einiges schiefgehen. Da wären mal als Einflussgrößen ein zu langes oder ungeeignetes Kabel, – genau den Fehler hatte ich auch schon und habe mich lange gewundert. Dann könnte eventuell noch die Kommunikationsgeschwindigkeit zu hoch oder ungleich eingestellt sein. Wenn Du über GRBL-Controller die Schrittmotoren ansteuern kannst, dann gib doch mal beispielsweise eine 10cm-Bewegung ein. Miß den Startpunkt und den Endpunkt. Kommen die 10cm hin. Falls nicht, geht was an Daten verloren. Wenn das alles nicht zum Ziel führt, kannst Du Dich gerne nochmal melden, am Besten dann über das Kontaktfeld.

      1. 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.

        1. Hallo,
          die Treiber sind definitiv nicht defekt, denn sonst würden sich die Schrittmotoren nicht bewegen. Du hast ja sicher die GRBL-Parameter auf Deine Maschine eingestellt. Prüfe doch mal bitte, ob die Parameter mit dem Befehl „$$“ auch genauso wieder zurückgegeben werden. Grundsätzlich ist vor dem Arbeiten auch wichtig Maschine und Programm miteinander zu synchronisieren. Das funktioniert beispielsweise über den Button „Zero Position“.

          1. 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

          2. Sehr schön, dass Du den Fehler gefunden hast und jetzt wieder alles läuft. Die Arduinos sind extrem anfällig gegen statische Aufladung. Das habe ich auch schon feststellen müssen. In Deinem Fall hatte ich da aber nicht drauf getippt. Man lernt halt immer noch dazu.
            Wegen des Schaltplans vom Shield schau doch mal auf https://blog.protoneer.co.nz/arduino-cnc-shield/#BoardLayout . Das könnte Dir helfen. Letztlich verteilt ja das CNC-Shield nur die Arduinoanschlüsse. Der Formfaktor sollte also eigentlich ziemlich egal sein.
            Du hattest auch etwas von bCNC geschrieben. Da habe ich auch gerade mal draufgeschaut. Sieht interessant aus. Vielleicht als Tip an alle Leser: https://github.com/vlachoudis/bCNC/wiki

  2. 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

  3. 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

    1. 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

  4. 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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.