Gaups GRBL Shield Pololu a4988

Was bringt die Platine überhaupt?
Die Platine dient eigentlich nur dazu, den Aufbau sauberer zu machen, als dies auf einem Steckbrett zu schaffen ist. Sie hat saubere Leiterbahnen und bietet alle möglichen Vorzüge gegenüber eine manuell hergestellten Platine!

Wie bereits in vorherigen Postings zu lesen ist gibt es bei der Platine, die ich aus der USA bestellt habe Probleme mit der Lieferung. Mittlerweile ist die Platine wohl auf deutschem Boden, was aber noch lange nicht heißt, dass ich sie in meinen Händen halte. DHL kann mir ebenfalls keinen Aufenthaltsort nennen, da DHL das Tracking für Briefe dieser Art nicht anbietet. Also ist die Buildlog.net Platine erst einmal verschollen, was mich ehrlich gesagt ziemlich nervt. Nicht nur, dass EJ nicht in die Pötte kommt, nein, nun muss ich auch noch auf DHL warten.
Das ich dieses Problem schon vorhergesehen habe, habe ich mir eine ähnliche Platine namens GAUPS vom eShapeOko Hersteller Catalin bestellt. Diese kostete 10€ + ein paar Euro Versand. Da sie im Webshop als verfügbar aufgelistet war ging das Paket auch innerhalb von 4 Tagen nach Versand bei mir ein.
Das freut das Bastlerherz, denn nun konnte dieses Kapitel auch endlich weitergehen. Ich habe also Teile zum Bestücken der Platine gekauft ( rund 15€ ) und alles zusammen gelötet und verdrahtet. Das sieht natürlich um Welten besser aus als es vorher war. Ich habe ein paar kleine Veränderungen gegenüber der Anleitung vorgenommen. So ziert keine DIP Schalter Leiste das Zentrum der Platine, sondern einfach 2 Lochleisten, die ich mit Kabeln verbinde um die Microsteps für die Motoren festzulegen. Das hat einfach den Grund, dass es in meinem Elektronikladen keine 12 DIP Schalter Leisten gibt. Das Maximum waren 6er Leisten. Diese haben aber das Problem, dass sie zu breit sind und somit nicht nebeneinander passen. Nach dem die Platine sauber zusammen gelötet und verdrahtet war habe ich noch 30 Minuten einen Fehler gesucht, der gar nicht da war. Im Gegensatz zu meinem Testaufbau sind die Motoren nämlich nicht die ganze Zeit mit Strom versorgt, sondern laufen nur, wenn etwas gefräst werden soll. Das fiel mir auf, als ich zufälligerweise ein Testprogramm abspielte und die Fräse einwandfrei los lief.

Wie bereits erwähnt wird die buildlog.net Platine direkt verscherbelt. Sollte jemand Bedarf daran haben kann er mir ja gerne schreiben. Wann diese allerdings eintrifft wissen vermutlich nicht einmal die Götter!

Wie gesagt bin ich schon lange am überlegen, ob ich eine CNC Fräse bauen soll, oder nicht. Für mich war immer klar, dass wenn ich eine CNC Fräse bauen werde, dann will ich vorher die Elektronik im Griff haben. Über EBay und Heise bin ich über einen 3 Achsen Controller gestolpert. Ein Teil, das zwar im Amateursektor liegt, aber dennoch was kann und das man über den Parallel Port steuern kann. Damit macht man vermutlich nichts falsch dachte ich, denn serielle und parallele Schnittstellen sind schon seit gefühlten 1000 Jahren in Betrieb und somit kompatibel mit dem hinter letzten Betriebssystem.

Mein Computer hat schon lange keinen LPT Port mehr, dafür aber die Dockingstation meines Laptops, aber ich hatte meine Rechnung ohne Windows 7 x64 gemacht, denn mit 64 Bit kann die Software (hatte Mach3 getestet) scheinbar nicht. Genauso wie mit Laptops, denn da soll das Timing auf Grund der Schlafmodus-Integration auch nicht wirklich taugen. Und der Parallel Port über eine proprietäre Dell Schnittstelle? Pff… Projekt zum Scheitern verurteilt.

Ich hatte es natürlich versucht und den Schrittmotor an die Elektronik angeschlossen, aber mehr als geglüht hat der Motor nicht. Zumindest ging er, denn er hatte das volle Haltemoment – Aber Bewegung?! Fehlanzeige.
Frustriert landete dieses Stück Hardware nach insgesamt 10h Fehlersuche und Debugging erst einmal in der Ecke. Bei dem Modul handelt es sich um einen 3 Achsen Controller mit TB6560AHQ Chips. Schön anzusehen, aber für meine Betriebssystem Kombi und Schnittstellenproblematik einfach nicht zu gebrauchen.

TB6560AHQ

Pest vs. Cholera
Da dieses Teil aus Fernost leider nicht so funktioniert wie ich es mir gedacht hatte und ich gerne mit USB arbeite habe ich mich auf die Suche nach etwas gemacht, mit dem ich arbeiten kann. Da bin ich auf Arduino und ein Projekt GRBL gestoßen. Wer mich kennt, der weiß, dass ich nicht viel von Arduino halte. Überall werden diese Monster haften Arduino boards verbaut, auch wenn es ein <1€ Controller tun würde. Es wird nicht mehr nachgedacht, sondern nur noch alles mit Hardware erschlagen. Aber genau das ist nicht wirklich meins. Ich lerne gerne neue Sachen von der Basis, verstehe wie Microcontroller funktionieren, ohne das ich eine Tonne von Bibliotheken benötige um dann eine Zeile Code zu schreiben, die dann wie Welt in die andere Richtung drehen lässt.

Doch dieses Mal wollte ich nicht davon abbringen lassen meine CNC Fräse zu bauen, egal ob ein Arduino Herz darin schlummert, oder nicht. (Alleine die Erkenntnis, dass ich damit nicht entwickeln muss um eine CNC Steuerung zu bekommen hatte wirklich sehr viel Charme)
Also Arduino als CNC Controller. Dann fehlen nur noch die Schrittmotor Treiber. D.h. der Controller sorgt dafür, dass die Motoren wissen was sie tun müssen und die Schrittmotor Treiber die zwischen Controller und Schrittmotor hängen versorgen den Schrittmotor und bereiten die Signale des Controller soweit auf, dass er weiß in welche Richtung und wie weit er drehen muss. Es ist auch möglich den oben beschriebenen China Controller über ein Arduino (bzw. einen Microcontroller) zu steuern. Das kam aber zumindest für meine ersten Gehversuche nicht in Frage, da hier auch wieder allerlei Probleme entstehen können.

Als Schrittmotortreiber habe ich welche von Polulu genommen – die A4988. Diese sind zusammen mit Arduino und GRBL sehr einfach zu betreiben. Auch jemand der absolut keine Ahnung von Fräsen hat kommt hier mit einer entsprechenden Anleitung zurecht. Ich möchte aber dennoch gerne die Schritte erläutern, die notwendig sind das Arduino Board dahin zu bringen G-Code zu empfangen.
Als erstes kauft man sich ein Arduino Board. Soweit ich gelesen habe geht es gut mit einem Arduino Nano, oder Arduino Uno. Ich habe mich für das Uno entschieden, weil es für mich praktischer zum Entwickeln ist. Hält man das Arduino Board in der Hand sollte man sich die aktuellen Treiber runterladen, damit es auch korrekt auf dem Laptop erkannt wird. Die Arduino Gui wird nicht wirklich benötigt.
Nach dem das Board korrekt unter Windows (für andere Betriebssysteme müsst ihr leider wo anders gucken) erkannt wurde kann man sich auch direkt ans Flashen machen. Zuerst brauchen wir das .hex File von der GRBL Seite (das sollte einfach zu finden sein). Als nächstes nimmt man den Flasher seiner Wahl, oder den Link von der GRBL Seite für ein mini Tool namens XLoader – http://xloader.russemotto.com/.
Damit flasht man das .hex File zügig und unkompliziert auf den Atmel Chip.
Wie funktioniert nun die Kommunikation?!

Die Kommunikation der Computersoftware zum Übersenden der Steuerbefehle läuft nun über die Serielle Schnittstelle des Arduino. D.h. alle Kommandos werden via USB auf die Serielle Schnittstelle des Atmel Chip übertragen.
Über diese Schnittstelle kann man den Atmel auch konfigurieren um die Schrittmotor Schrittweite zu ändern. Dafür kann man eine x beliebige Terminal Emulation nehmen, oder falls man sich die Arduino GUI heruntergeladen hat diese Verwenden. Der Punkt für die serielle Kommunikation lautet Werkzeuge -> Serieller Monitor.

Nach dem die Verbindung aufgebaut wurde (Seriell mit 9600 Baud) begrüßt uns der Controller mit einem freundlichen Grbl 0.8c [‚$‘ for help].
Hierüber können wir nun alles konfigurieren. Hierzu müsst ihr aber das Wiki von GRBL lesen, denn alle Einstellungen hier noch einmal aufzulisten wäre etwas viel . Ich habe erst einmal alle Parameter so gelassen, wie sie waren und versucht ob der Motor, den ich angeschlossen habe läuft. Als Software, die G-Code versteht und mit GRBL Arbeitet habe ich „GRBL Controller“ heruntergeladen. Das sah ganz praktikabel aus und genau das ist es auch. Für jemanden der zum ersten Mal mit so etwas in Kontakt kommt ist Mach3, zumindest für mich einfach zu überfrachtet.
GRBL Controller ist relativ simpel. Man kann auf den entsprechenden COM Port des Controllers Verbinden und dann ein G-Code File importieren und dann auf „Begin“ drücken.

Wie gesagt, nach dem ich alles soweit verkabelt hatte lief der erste Nema 12 Motor nach nicht einmal 15 Minuten 1a. Vorbei die Zeit des Debuggings, nun konnte ich mich daran machen, die Materialien zu kaufen, die ich brauchte um alles zusammen zu bauen.
Bisher läuft die erste Achse (Frästisch) ganz gut, so dass ich in den nächsten Tagen diesen Beitrag hier mit Fotos über die Verkabelung als auch den nächsten mit dem Basis Aufbau füttern kann, yay.

Nachtrag: Hier geht es zu der weiteren Entwicklung in Sachen CNC