GRBL-Jogger

Der Gerbil-(aka. GRBL-)Jogger stammt ebenfalls aus einer der letzten Ausgaben der c’t.

Prozess

In der langen Kette von Schritten zwischen der Modellierung des gewünschten Objekts und dessen Fertigstellung, nimmt der GRBL eine Rolle am Ende, auf der Hardwareseite ein.

  1. CAD steht für Computer-aided-design, in einem Programm wie Inkscape wird ein Modell des Objekts erstellt und dann beispielsweise als HPGL-Datei exportiert.
  2. CAM steht demensprechend für Computer-aided-manufacturing. Hier gilt es die oben generierte Vektordatei für das jeweilige Bearbeitungsgerät aufzubereiten. Im Ergebnis steht dann in der Regel eine Datei mit G-Code-Befehlen. Ein G-Code-Befehl könnte beispielsweise so aussehen: G01 X0Y0Z0 → Bewegung zum Null-Punkt
  3. Der GRBL an sich kümmert sich dann in meinem Fall um die Umsetzung der G-Code-Befehle in Steuersignale für die Fräsachsen. Die Aufgabe des GRBL ist also, aus dem Befehl oben die einzelnen Achsen in der korrekten Geschwindigkeit entsprechend der Vorgaben anzusteuern.
  4. Da der GRBL im Allgemeinen nicht genug Power hat, um die Schrittmotoren direkt anzusteuern benötigt man zudeim eine Endstufe, bevor es an den Motor.

Jogger

Zudem kann man mit Hilfe des Joggers, die Achsen manuell steuern. Gerade für Tests, einfache Fräsarbeiten und die Ausrichtung des Fräskopfes ist das eine sinnvolle Funktion.

Aufbau

Die Platine für den GRBL-Jogger gibt es für nicht ganz günstige 40€ bei (link: http://www.eurocircuits.de text:Eurocircuits). Das war tatsächlich die erste Platine, die ich über so einen Dienst bezogen habe. Die Produktion ging zügig (obwohl die Website wohl mehr verwirrt als hilft) und die Platine wird dann per UPS aus Tschechien versandt (1,5 Tage).

Sieht auch echt professionell aus. Jetzt muss ich sie nur noch genauso professionell löten. Das hat soweit auch super funktioniert. Allerdings als Hinweis: Die DC-Buchse (2,1 mm) aus dem Reichelt-Warenkorb passt tatsächlich eher gar nicht. D.h. die lieber bei Segor kaufen.

Reichelt hat mich sowieso wieder mal enttäuscht und meine Kerko 22pF einfach nicht mitgeschickt (ich kann mir nicht wirklich vorstellen, dass die aus waren). Auf dem Lieferschein steht dann “Bitte neu bestellen”…? Mach ich gerne: Bitte aber dann Versandkosten erstatten und vielleicht mal vorab eine Mail schreiben.

Insgesamt habe ich für die Lötarbeiten wohl vier Stunden benötigt. Ein großer Teil der Arbeit ging aber für die Korrektur eines Lötfehlers. Merke: Widerstandsnetzwerke haben einen Pin eins!

Bisher konnte ich keine Fehler finden. Der ATMega644 ist programmiert. Im nächsten Schritt werde ich jetzt die serielle Schnittstelle testen und dann den TFT-Maximite anschließen.

Tests

Die Tests sind bisher gut verlaufen. Ich konnte über einen USB-Seriell-TTL-Adapter eine Verbindung mit dem GRBL herstellen und ein paar Zeilen plauschen. Nächster Schritt des Integrationstests ist der Anschluss des TFT-Maximites, denn das GRBL2.BAS-Skript bleibt stehen, wenn es keinen Input über die serielle Schnittstelle bekommt (Zeile 3; Fehler “Line is too long”). Und das funktioniert im Moment noch nicht, da mir das Flachbandkabel/die Stecker zum Anschluss fehlen. In MMBasic habe ich bisher noch keine Möglichkeit gefunden hier einen Timeout zu installieren. Andere Basic-Varianten arbeiten hier mit einem anderen Befehl (SERIN), hier kann man als einen Parameter einen Timeout einstellen. Leider scheint es den in MMBasic nicht zu geben.

Sub get_coord
Print #1, “?”; ’ send the query out of the serial port, no cr
Input #1, status$, dummy$, m_x, m_y, m_z, dummy$, w_x, w_y, w_z
print_status
If status$  <> “Jog” Then
…

Update: Weiteres Debugging über die serielle Schnittstelle hat dann zu Tage gefördert, dass der GRBL auf Anfragen (bspw. ? für aktuellen Status) mit dem Status und einer Endlosschleife Nullen antwortet. Dann erklärt sich auch die Fehlermeldung “Line is too long”, das bezog sich einfach auf den seriellen Output. Ich habe den Microcontroller dann noch mal neu programmiert (unbedingt darauf achten, dass der richtige Chip gewählt ist; bspw. 644 oder 644P), seitdem klappt es auch.