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