Shapeoko Elektrik Upgrade
Die alte Welt - GRBL und Arduino
Über GRBL gibt es eine Menge zu lesen. Damals hatte ich einen kleinen Hack für den Code geschrieben, um einen Laser an die Hardware anzuschließen und diesen über G-Codes zu steuern. Das Ganze lief auf einem Arduino Uno mit einem uralten GRBL-Shield und Pololu-Treibern. Ich mochte die Pololu-Treiber eigentlich immer und hatte sogar eine maßgeschneiderte Kühlung aus einem Kupferblock gefräst, die die Treiber kühl halten sollte. Gekoppelt mit ein paar Kühlrippen und einem Lüfter funktionierte das einigermaßen. Die Treiber mussten über zwei Messpunkte eingestellt werden, die man mit dem Multimeter messen musste, während man (natürlich im stromlosen Zustand) an einem winzigen Poti mit einem Schraubenzieher die Spannung justierte. Das war eine ziemliche DIY-Fummelei, die ich schon damals als absurd empfand. Ob alles richtig funktionierte, konnte man auch nicht wirklich testen, weshalb man die Fräse während der Arbeit genauso im Blick behielt wie die Temperatur des Kühlers, die oft weit über 60°C lag.
Die Zwischenwelt - GRBL mit Wifi
Eigentlich wollte ich die Pololu-Treiber weiterverwenden, also habe ich das GRBL-Shield auf ein etwas moderneres Arduino Uno mit ESP32 aufgebaut. Unter der Haube lief dann nicht mehr GRBL, sondern das webbasierte FluidNC. Zugegeben, bei FluidNC habe ich mich anfangs etwas überschätzt. Da FluidNC auf vielen Plattformen läuft, ist die Konfiguration entsprechend komplex und nicht mal so nebenbei erledigt. FluidNC hat eine config.yaml-Datei, die man über die Benutzeroberfläche hochlädt. Anschließend überprüft man, ob alles passt, und nimmt gegebenenfalls über das Webinterface temporäre Änderungen vor. Offiziell unterstützt FluidNC das Arduino Uno und das GRBL-Konstrukt nicht, da sie damit schon oft Probleme und Supportanfragen hatten. Nach mehreren Anläufen entschied ich mich, das alte GRBL-Shield aufzugeben und auf etwas anderes umzusteigen. Mittlerweile hat sich natürlich auch in Sachen Treiber einiges getan, sodass ich mich ohnehin nach etwas Neuem umsehen wollte.
Die neue Welt - Fysetc E4
Am Ende entschied ich mich für ein Fysetc E4 mit TMC2209-Schrittmotortreibern und allem, was dazugehört, direkt an Bord. Sogar für eine SD-Karte, auf der man seine G-Code-Dateien ablegen kann, ist Platz. Dort wird auch die Konfiguration gespeichert, sowie ein paar Scripts, mit dem man per Knopfdruck auf dem Webinterface Befehle ausführen kann. Eigentlich ist das Board für 3D-Drucker gedacht, aber es ist angenehm günstig und bewältigt problemlos die vier Schrittmotortreiber meiner CNC-Fräse. Die Konfiguration war etwas zeitintensiv, aber nun weiß ich auch einiges über die Treiber selbst. Nach einigen Messungen habe ich es auch geschafft, einen externen Lüfter an die Hardware anzuschließen, der permanent läuft, aber über oben genanntes Script abgeschaltet werden kann. Da das gesamte Layout Open Source ist, ist es auch entsprechend gut dokumentiert. Alles Nötige findet man hier: https://wiki.fysetc.com/E4/.
Ein tipp noch. Zum invertieren der Laufrichtung eines Motor genügt es, wenn man hier ein :low an den direction_pin anhängt. Somit läuft der Motor dann in die andere Richtung.
Anbei gibt es auch meine Konfiguration des Fysetc E4 und der Shapeoko.
config.yaml Fysetc E4
|
|
Zum deaktivieren des Lüfters muss man nur den Digital Pin 0 ein / ausschalten. Das geht mit den Befehlen M62 und M63. Diese kann man einfach in zwei Script ablegen und dann über die Oberfläche ausführen (oder man tippt es händisch ein)
|
|
|
|