Hinzufügen von Relais zur Steuerung zusätzlicher Geräte
Die meisten Steuerplatinen bieten die Möglichkeit, ein Relais anzuschließen, das durch Firmware-Befehle ausgelöst werden kann. Man kann dies z. B. zur Steuerung des Luftkompressors verwenden. Wird die Firmware mit Standardparametern kompiliert (oder aus LaserGRBL übernommen), steht ein Steuerbefehl zur Verfügung. Dieser Befehl ist “M8”. Dies ist ein G-Code-Befehl, wie im Kapitel Grundprinzipien erläutert. Es gibt einen weiteren Befehl, “M7”, der nur verfügbar ist, wenn man die Firmware kompiliert und diese Funktion aktiviert. Beide Befehle weisen die Firmware an, einen Pin auf der Steuerplatine zu setzen, mit dem andere Geräte wie LEDs, Lüfter oder wie gesagt der Air Assist Kompressor gesteuert werden können. Um die Pins auszuschalten, gibt man den Befehl “M9” in der Befehlszeile ein. Beide Pins werden zusammen ausgeschaltet, man kann sie nicht einzeln ausschalten. Die folgende Abbildung zeigt, wo man die Pins findet, die von diesen Befehlen gesteuert werden.
Da diese Pins nicht in der Lage sind, hohe Lasten zu treiben, muss man ein Relais dazwischenschalten. Das Bild zeigt, wie es geht. Oben rechts auf der Platine befindet sich neben den Endanschlaganschlüssen ein Stiftleisten. Hier findet man einige analoge Mikrocontroller-Pins zur Verfügung gestellt. Diejenigen, die wir suchen, sind A3 und A4 (dieser nur, wenn man die Firmware selbst angepasst hat, wie oben erwähnt). Die meisten Relais benötigen drei Leitungen, um gesteuert zu werden: VCC und GND (Spannung) und das Steuersignal (manchmal auch IN oder S genannt). Verbinde sie wie abgebildet, und es sollte direkt startklar sein. Jetzt kann man es testen, indem man “M8” in die Befehlszeile eingibt und die Eingabetaste drückt. Man sollte ein Klickgeräusch am Relais hören (oder eine kleine LED, die den Status anzeigt). Wenn man ein Solid-State-Relais verwendet hat, gibt es kein Klickgeräusch. Bei Solid-State-Relais empfehle ich eins, das separate Eingänge für Spannung und Trigger hat, wie dieses: AliExpress.
Aufgrund der Eigenschaften der Relais empfehle ich die Verwendung von SSRs. Diese können auch helfen, wenn man Probleme mit elektrischen Störungen hat, die durch das Schaltrelais verursacht werden. Hier ist eine Erklärung von Mitch (FluidNC):
“Um die Theorie zu erklären, warum das SSR-Modul funktionierte, das herkömmliche Relais jedoch nicht: Wenn man ein herkömmliches Relais ein- oder ausschaltet, kommt es in der Regel zu Störungen im Wechselstromnetz, da das Lastgerät sofort anfängt, Strom zu ziehen oder aufhört, Strom zu ziehen. Bei SSRs geschieht dies nicht, da sie über eine spezielle Schaltung verfügen, die das Einschalten bei Nullspannung und das Ausschalten bei Nullstrom ermöglicht. Diese Schaltung wartet, bis die Wechselstromwellenform die Polarität wechselt, und zwar bei einer sehr niedrigen Momentanspannung, bevor sie die Last einschaltet, so dass der Laststrom ansteigt, anstatt sofort seinen vollen Wert zu erreichen. Ähnlich verhält es sich beim Ausschalten: Es wird gewartet, bis der Laststrom nahezu Null ist, bevor es die Verbindung unterbricht. Die Störung durch das herkömmliche Relais dringt oft in andere elektronische Geräte ein und kann dazu führen, dass Mikroprozessoren zurückgesetzt werden oder bei USB-Verbindungen Übertragungsfehler auftreten.”
Wer ein konventionelles Relais wählt, dem empfehle ich, ein Relais zu kaufen, das zwischen high-level-active und low-level-active wählen kann, wie dieses: Amazon-Link. Auf diese Weise kann man die Logik am Relais umkehren. Bei einigen Nutzern war das Relais die ganze Zeit aktiv und wurde nur ausgeschaltet, wenn man den Befehl M8 sendet. In diesem Fall muss die Logik des Relais von High-Level auf Low-Level oder umgekehrt geändert werden. Der Standardtrigger ist in der Firmware wie folgt definiert: Low-Level: deaktiviert/High-Level: aktiviert (das Relais sollte in diesem Fall High-Level-aktiv sein). Man kann auch eine eigene Firmware kompilieren, um diese Einstellung umzukehren, falls man ein low-level-aktives Relais hat, das die Eingangslogik nicht vertauschen kann. Wichtig ist noch, dass das Relais mit 5V Spannung funktioniert. 12V oder andere Spannungen funktionieren nicht! Auf der Netzspannungs-Seite muss die „durchtrennte“ Leitung des Kompressors mit den Kontakten COM und NO (normally open) verbunden werden.
Warnung
Mit einem Relais kann man jede Last anschließen / steuern. Sogar 110/220V Geräte wie der Luftkompressor. Tue das nur selbst, wenn du weißt, was du tust! Elektrizität ist nichts zum Spielen, sie kann tödlich sein! Im Zweifelsfall einen Elektriker, zurate ziehen!
Die Steuerplatine selbst ist harmlos, sie enthält nur 5V- und 12V-Stromleitungen, die im aktiven Zustand sicher berührt werden können (sie kann natürlich zerstört werden, wenn man einen Kurzschluss erzeugt). Daher trennt man sie besser von der Stromversorgung (Netzteil UND USB-Kabel), während man die Kabel anschließt.
Konfigurieren von LightBurn zum automatischen Ein- und Ausschalten des Luftassistenten
LightBurn kann so konfiguriert werden, dass diese Befehle automatisch verwendet werden, um den Luftkompressor während der Arbeit zu starten / zu stoppen.
Von nun an wird der Kompressor eingeschaltet, während der Laser arbeitet und danach ausgeschaltet.
Sculpfun S10
Auch das ist beim S10 möglich, allerdings hier mit einer kleinen Änderung zum S6/S9 (zumindest bei der aktuellen Version der Firmware). Der Pin, den man hier nutzen muss, ist der Pin IO04. Die Spannungsversorgung habe ich diesmal von dem 5V Versorgungsport genommen.
Um das Relais anzusteuern, muss man den Befehl M7 benutzen, nicht wie sonst üblich M8 (ich denke, mit weiteren Firmware-Versionen wird das auch noch verbessert / geändert). Wichtig ist noch, dass es sich um ein High-Level-Trigger Relais handelt, da man hier den Pin noch nicht invertieren kann. Zum Beispiel so eines: AliExpress-Link
Sculpfun S30
Normalerweise benötigt man bei der S30 Serie der Sculpfun Laser kein Relais mehr, da sich ein Relais / Mosfet auf der Platine befindet, mit dem die mitgelieferte Pumpe direkt versorgt wird. In diesem Fall liefert das Mainboard die gesamte Leistung für die Pumpe, die Pumpe selbst hat keinen extra Stromanschluss mehr. Daher gilt es auch zu beachten, dass S30-5W und S30-10W eine andere Pumpe geliefert bekommen (12V) als der Pro Max mit 20W und 24V. Wenn man nun aber keine original-Pumpe anschließen möchte, sondern eine andere Pumpe / Kompressor, kann man aber auch hier ein Relais anschließen. In diesem Fall empfehle ich die Relais, die ich oben ausgeschlossen hatte, da hier die Leistung zur Verfügung steht, um auch solche Relais zu betreiben. Es sieht dann folgendermaßen aus:
MKS DLC32
Beim MKS DLC32 kann man ebenfalls ein Relais anschließen, und zwar nach folgendem Diagramm (danke, Lionel Koehl). Weitere Details zu den Anschlüssen findet man auch in der Hardware-Dokumentation zum DLC32 board.
Die Ansteuerung erfolgt ebenfalls mit dem M7-Kommando.
Zusätzliche I/O-Ports
Outputs
Die meisten Mainboards bieten zusätzliche Pins, die man per Software schalten kann. Bei 8Bit-Boards ist allerdings zwingend erforderlich, relativ tief in den Quellcode einzugreifen, um sie nutzbar zu machen. Bei den 32Bit-Boards ist es etwas einfacher, in dem man die FluidNC-Firmware nutzt. Damit können beispielsweise auf dem S30-Mainboard sechs zusätzliche Pins zur Ansteuerung von beliebigen Funktionen genutzt werden. Für das S10 und MKS-DLC32 Board gilt dies genauso, nur müssen die Pin-Namen angepasst werden. Hier erkläre ich es für das S30 Mainboard. Auf dem Mainboard befindet sich ein Steckplatz mit sechs I/O-Pins. Um sie nutzen zu können, müssen sie in der Konfiguration von FluidNC hinzugefügt werden (ich konnte allerdings immer nur maximal vier Pins auf einmal ansteuern, das könnte ein Bug in Fluid sein). Weitere Hinweise zur Installation und die fertige Config-Datei von FluidNC finden sich auf der Firmware-Seite. Wie alle ESP32-basierten Boards verwenden die Pins 3,3V als High-Pegel, man sollte also Relais verwenden, die bei dieser Spannung schalten (die meisten 5V Relais machen das aber auch).
Hier befindet sich die Dokumentation aus dem Fluid-Wiki: http://wiki.fluidnc.com/en/config/user_outputs. Wenn man die Konfiguration entsprechend in FluidNC hochgeladen hat, kann man die Ports nun mit den Kommandos M62 P0 oder M64 P0 anschalten, sowie mit M63 P0 oder M65 P0 ausschalten. Der Unterschied zwischen den beiden Kommandos ist hier beschrieben: https://www.linuxcnc.org/docs/html/gcode/m-code.html#mcode:m62-m65. Jetzt kann man an diese Pins wieder ein Relais anschließen und damit z. B. die Beleuchtung oder den Rauchabzug steuern. Dazu kann man die entsprechenden Befehle in LightBurn auch als Start/Endgcode einfügen, um das automatisch zu machen, siehe Bild oben.
Inputs
Die oben genannten Pins kann man auch als Inputs benutzen, um z. B. zusätzliche Schalter an den Laser anzuschließen und damit beispielsweise Aktionen zu triggern. FluidNC bietet dazu die Möglichkeit, einen Input-Pin mit einem Makro zu verknüpfen, das beliebigen Code enthalten kann, um den Laser zu steuern oder andere Aktionen auszuführen.
Oben sieht man ein Beispiel, wie man vier Schalter (mehr geht nicht) an vier der Pins des Mainboards angeschlossen wurden. In Fluid wurden Makros definiert, die den Laser jeweils um 10 mm in X- oder Y-Richtung verfahren, man könnte also daraus ein Steuerkreuz machen. Oder man nutzt es, um die z-Achse manuell zu verfahren oder ein Homing- oder Probing-Zyklus auszulösen. Man kann damit auch einen der anderen I/O-Pins steuern und z. B. die Beleuchtung steuern.