OPEN-CNC-Shield Dokumentation

Diese Dokumentation gibt es Dank tatkräftiger Unterstützung aus der Community auch als PDF-Datei und kann direkt unter dieser Meldung heruntergeladen werden. Ein großes Dankeschön an Reinhard Bey.

Jumper / Terminals / Anschlüsse

BeschriftungFunktionBeschreibung
JP6, JP7, JP2, JP1, JP10, JP11Mikroschritte der AufstecktreiberHier werden die Mikroschritte der Aufstecktreiber eingestellt. Falls externe Treiber verwendet werden können diese Jumper frei gelassen werden.
Mehr dazu unter Mikroschritte
JP5, JP8, JP4, JP3, JP9, JP12Fault Jumper der AufstecktreiberMuss bei A4988 Treiber gesetzt sein. Bei DRV8825 bleiben die Jumper frei.
Mehr dazu unter Fault Jumper
J4, J7, J1, J2, J10, J11Motoranschluss bei AufstecktreibernHier werden die Motoren angeschlossen, wenn die Aufstecktreiber verwendet werden.
Schema: 1A 1B 2A 2B. Drehen die Motoren falsch herum einfach den Stecker einmal drehen.
Mehr dazu unter Anschließen der Motoren
JP19Konfiguration der AchsenHier können die verschiedenen Achsen miteinander verbunden werden. Wird Estlcam als Software eingesetzt sollten hier alle Jumper gesetzt sein.
Mehr dazu unter Konfiguration der Achsen
JP20Autosquaring KonfigurationHier kann der Autosquaring Modus aktiviert werden und die Drehrichtung der Motoren während Autosquaring festgelegt werden.
Mehr dazu unter Autosquare Konfiguration
JP17Verbindet „Vin“ mit dem 12V NetzWenn das Shield mit 12V betrieben wird, sollte dieser Jumper gesetzt werden.
Mehr dazu unter Stromversorgung
JP15 und JP16Jumper für die Spannung der AusgängeHier kann die Spannung für die Ausgänge 1-8 festgelegt werden. Jeder Jumper stellt die Spannung für 4 Ausgänge ein.
Mehr dazu unter Ausgänge
JP13 und JP14
(ab version 1.5)
Jumper für die Spannung an den EingängenHier kann die Spannung, welche an der Terminals der Eingänge anliegt festgelegt werden. Jeder Jumper zählt dabei für 8 Eingänge. Mehr dazu im Kapitel Eingänge.
JP18Spannung der DrehzahlsteuerungIst dieser Jumper gesetzt, liegt die Spannung des analogen Ausgangs für die Drehzahl zwischen 0 und 5V. Ansonsten liegt sie zwischen 0 und 10V.
Mehr dazu unter Spindelsteuerung
JP21(ab version 1.6)ENA EinstellungHier können die ENA Treiber standardmäßig eingestellt werden. Mit einem 1K Widerstand kann ENA hier entweder mit GND oder mit 5V verbunden werden. Wird dies nicht benötigt kann der Jumper auch weggelassen werden.

Stromversorgung

Das OPEN-CNC-Shield kann mit 12-24V betrieben werden. Ich empfehle 24V.
Wenn das Shield mit 12V versorgt wird kann es sein, dass im 12V Netz keine 12V ankommen, da durch den Spannungswandler ein geringer Spannungsverlust entsteht. Für diesen Fall ist der Jumper JP17 vorgesehen. Wenn dieser gesetzt ist, wird die Eingangsspannung direkt in das 12V Netz weitergeleitet.

Achtung, der Jumper JP17 darf auf keinen Fall gesetzt werden, wenn mehr als 12V am Terminal T2 (12-24V in) anliegen. Das kann diverse Bauteile auf dem Board zerstören!

Benötigte Stromstärke

Wenn keine Aufstecktreiber verwendet werden wird ein 24V 5A Netzteil völlig ausreichen und bietet auch noch Reserven. Der zweite 12-24V Vin ist in diesem Fall unnötig. Hier ist ein Beispiel Netzteil:

Sollten Aufstecktreiber verwendet werden sollte ein stärkeres Netzteil verwendet werden. Generell kann pro Treiber mit etwa 2A gerechnet werden. Hier ist zum Beispiel eins mit 24V und 15A, damit können ohne Probleme alle 6 Aufstecktreiber verwendet werden und es bleibt auch noch genug Reserve:
Die Netzteile mit hohen Strömen bieten meist mehrere Anschlüsse. Hierfür kann der zweite 12-24V Vin genutzt werden. Dieser dient der Sicherheit und soll der Wärmeentwicklung bei hohen Strömen entgegenwirken.

Eingänge

Es gibt 16 Eingänge auf dem OPEN-CNC-Shield. Diese können entweder mit positiver Spannung von 5-24V geschaltet werden oder mit GND. Wählbar ist dies über einen Jumper an dem jeweiligen Eingang. Jeder Eingang besitzt seinen eigenen Jumper.

Falls Autosquaring genutzt werden soll, braucht jeder Motor seinen eigenen Endstopp. Mehr dazu unter Autosquaring.

Spannung an den Eingängen

Ab Platinenversion 1.5: Die Spannung, welche an den Terminals für die Eingänge anliegt, kann mit den Jumper JP13 und JP14 festgelegt werden. Man hat die Wahl zwischen 5V und 12V. Es ist ebenfalls möglich selbst eine Spannung anzulegen. Dafür müssen die Jumper frei gelassen werden und die Spannung kann dann an den jeweiligen COM-Anschluss gelegt werden.

Endstopps

Normally closed / normally open

Es können entweder normally closed (im Normalzustand geschlossen / ausgelöst) oder normally open (im Normalzustand geöffnet / nicht ausgelöst) Endstopps angeschlossen werden. Diese können entweder mit mehreren an einem Eingang angeschlossen werden oder es kann jeder Endstopp an seinen eigenen Eingang angeschlossen werden.
Ich würde eine normally closed Verkabelung bevorzugen, da hierbei auch Kabelbrüche direkt erkannt werden können. Eingänge, an denen normally closed Sensoren angebracht sind müssen in der Software vermutlich invertiertiert werden.

normally open verkabelung
normally closed verkabelung

Näherungssensoren PNP oder NPN

Es können sowohl PNP Sensoren als auch NPN Sensoren angeschlossen werden. Hierzu muss lediglich die passende Jumper Einstellung an dem Eingang vorgenommen werden. Diese gibt es ebenfalls als NC(normally closed) oder NO(normally open) Variante. Siehe oben für die Verkabelung.

NPN NC Sensor:

LED als Signal für Eingänge

Möchte man eine LED verbauen, welche anzeigt, ob ein Eingang ausgelöst wurde, gibt es verschiedene Möglichkeiten dieses zu realisieren.

1. Direktes Anlöten an die Arduinos

Vorteil: Unabhängig von der Jumper-Einstellung und Stromspannung der Eingänge.
Nachteil: Es müssen Kabel verlötet werden.

Die Kabel für die LEDs können entweder von unten an die Platine gelötet werden, oder von oben direkt an die Arduino Megas. Im unteren Bild ist ein Beispiel für Eingang 1. GND von der LED wird mit dem Arduino Pin des Eingangs verbunden und der Pluspol der LED wird über einen 220 Ohm Widerstand mit 5V(Diese kann man sich irgendwo am Board abgreifen, zum Beispiel an einigen Schraubterminals) verbunden. Welcher Arduino dabei genommen wird, spielt keine Rolle. Eine Pinbelegung ist dem Schema zu entnehmen ⇾ Gitlab – Timos Werkstatt

2. LED ebenfalls am Eingang anschließen

Vorteil: Einfach anzuschließen, kein Löten
Nachteil: Abhängig von der Jumper-Einstellung und der Spannung des Eingangs

Jumper steht auf GND:
In diesem Fall wird die LED mit dem Minuspol an „IN“ vom Eingang angeschlossen und mit dem Pluspol mit einem Widerstand in Reihe an z.B. COM, oder direkt mit einem 220 Ohm Widerstand an 5V. Je, nachdem wie viel Spannung an COM anliegt werden verschiedene Widerstände benötigt. Siehe dazu die untere Tabelle.

Jumper steht auf VCC
Der Minuspol der LED wird an GND angeschlossen und der Pluspol in Reihe mit einem passenden Widerstand an IN. Welche Widerstand benötigt wird kann der unteren Tabelle entnommen werden:

SpannungWiderstand
5V220 Ohm
12V680 Ohm
24V1,2K Ohm

3. Arduino Mega Ausgang für LED programmieren

Vorteil: Es muss weder gelötet werden, noch ist man abhängig von der Jumper-Einstellung oder Spannung
Nachteil: Es muss ein wenig Arduino Code geschrieben werden.

Bei dieser Methode muss der Code von dem zweiten Arduino ein wenig erweitert werden. In der Setup Methode müssen die Pins für die Eingänge auf „INPUT_PULLUP“ gestellt werden. Dazu einfach kurz googlen, wie man Eingänge bei Arduinos setzt. Die benötigten Pins findet man ebenfalls im Schema ⇾ Gitlab – Timos Werkstatt

Danach erstellt man in der Loop-Methode eine Prüfung, ob der als „INPUT“ deklarierte Pin ausgelöst wurde(Google ⇾ Arduino digitalRead). Und falls dem so ist, setzt man einen der freien Pins am Pinout J8 entsprechend. Die LED wird dann mit dem Pluspol in Reihe mit einem 220 Ohm Widerstand an dem Pinout Pin angeschlossen und mit dem Minuspol irgendwo an GND.

Hier ein wenig Beispielcode(bisher ungetestet) für Eingang 1:

const byte input1 = 15; // Digital Pin for Input1
const byte output1 = A1; // Output Pin on Pinout J8 on the Shield

setup() {
   ...
   pinMode(input1, INPUT_PULLUP); // Set pinmode for input pin

   pinMode(output1, OUTPUT); // Set pinmode as output
   digitalWrite(output1, LOW); // Initial state for the output LED
   ...
}

loop() {
   ...
   bool input1State = digitalRead(input1); // Read input 1 pin
   // If input1State is LOW(which means it is triggered) write HIGH
   // to the output pin and vice versa
   digitalWrite(output1, !input1State);
   ...
}

Ausgänge

Das OPEN-CNC-Shield bietet 8 Ausgänge, welche in Estlcam nach Belieben geschaltet werden können. Es sind zwei Relaistreiber verbaut. Für jeden Relaistreiber kann die Spannung über die Jumper JP15 und JP16 gesetzt werden. OUT1-4 sind an COM1 angeschlossen und werden somit mit dem Jumper JP15 mit einer Spannung verbunden. Achtung: COM1 wird ebenfalls für das Spindel Relais genutzt, mehr dazu unter Spindel Steuerung. OUT5-8 sind an COM2 angeschlossen und werden mit dem Jumper JP16 konfiguriert.
So ist es zum Beispiel möglich, dass die Ausgänge 1-4 mit 5V arbeiten und die Ausgänge 5-8 mit 12V. Möchte man an eine andere Spannung kann man die jeweiligen Jumper offen lassen und diese Spannung direkt an COM1 oder COM2 anlegen. Diese ist dann an allen gleichnamigen COM Anschlüssen verfügbar, darf aber 50V nicht überschreiten.

Pro Ausgang darf maximal 500mA Strom fließen. Daher immer mit Relais arbeiten, sobald die Grenze eventuell überschritten wird. Auch auf die maximalen Ströme der Netze achten. Im 5V und 12V Netz stehen jeweils max 3A zur Verfügung. Die Ausgänge sind hier nicht die einzigen Abnehmer – Lüfter, Arduinos usw. ziehen auch Strom!

Im nachfolgendem Bild ist Beispielhaft der Anschluss eines 5V Relais. COM2 wird hierbei auf 5V gesetzt. Dann wird VCC mit COM2 verbunden(Also 5V an VCC) und GND mit GND. Geschaltet wird dann mit OUT5 und OUT6. Sobald diese in Estlcam ausgelöst werden liegt dort GND an. Sollte das Relais nicht schalten muss der Jumper auf dem Relais einmal umgesetzt werden. Dieser ist auf diesem Bild Gelb und unter den Anschlüssen für GND,IN1,IN2,VCC.

Aufstecktreiber / Externe Motortreiber

Das OPEN-CNC-Shield unterstützt sowohl Aufstecktreiber wie z.B. den A4988 oder DRV8825 als auch den Anschluss externer Motortreiber. Für was man sich entscheidet, bleibt einem selbst überlassen. Generell kann man sagen, dass externe Treiber einen deutlich höheren Kostenaufwand haben, aber dafür auch höhere Ströme unterstützen und nicht so eine gute Kühlung benötigen. Für Nema 17 Motoren mit etwa 2A Leistung sollten die Aufstecktreiber bei guter Kühlung vollkommen ausreichen. Möchte man größere/stärkere Motoren/Servos/“Closed-Loop Motoren“ sollte man sich eher mit externen Treibern beschäftigen. Man kann auch erstmal klein anfangen und später auf externe Treiber aufrüsten.

ENA Einstellung

Ab Platinenversion 1.6: Die Einstellung welchen Zustand der ENA(Enable) Anschluss im Standard hat kann über den Jumper JP21 getätigt werden. Dies gilt sowohl für die Aufstecktreiber als auch für externe Treiber. Besitzen die Treiber selbst schon entsprechende Pullup-/ oder Pulldown Widerstände kann der Jumper frei gelassen werden.

Platinen Version v1.6 und v1.7: Der Widerstand R20 ist leider falsch beschriftet. Dort muss anstatt eines 10K Widerstands ein 1K Widerstand eingesetzt werden. Ist dort der 10K Widerstand verbaut geht auch nichts kaputt, allerdings funktioniert dann der Jumper für den ENA State nicht(JP21).

Aufstecktreiber

Alle Änderungen sollten immer im Stromlosen zustand erfolgen. Bitte auch unbedingt darauf achten die Treiber richtig herum einzustecken! Hier gibt es Unterschiede zwischen A4988 und DRV8825 Treiber! Wurde ein Treiber einmal falsch herum eingesteckt und das Board unter Strom gesetzt ist der Treiber sehr wahrscheinlich defekt.

Microstepping

Das Microstepping der Aufstecktreiber wird mit Jumpern eingestellt. Diese befinden sich auf der Platine genau unter den jeweiligen Treibern. Diese Einstellung kann demnach nur erfolgen, wenn die Treiber nicht eingesteckt sind.

Mit Microstepping kann man die Schritte des Motors weiter verkleinern. Ein typischer Schrittmotor hat z.B. 200 Schritte für eine volle Umdrehung. Stellt man das Mircostepping nun etwa auf 1/8 Schritt bedeutet dies: 200 × 8 = 1600 – Es werden nun 1600 Schritte für eine volle Drehung benötigt. Je höher die Microstepping Einstellung, desto geringer wird der Haltemoment der Motoren. Generell kann man mit diesen Werten experimentieren, um zu schauen, welche sich am besten für die eigene Maschine eignen. Oft geben Hersteller auch an, wie die Mikroschritte eingestellt werden sollten. Hat man hier eine Einstellung gewählt muss, man diese auch unbedingt der Software mitteilen.

MS0MS1MS2Mikroschritte
0001 – Vollschritt
1001/2 Schritt
0101/4 Schritt
1101/8 Schritt
0011/16 Schritt
1011/32 Schritt
0111/32 Schritt
1111/32 Schritt
0 bedeutet Jumper ist nicht gesetzt, 1 bedeutet Jumper ist gesetzt

Hier ist ein Beispiel für Estlcam. Die Mikroschritte sollten so für eine MPCNC-Fräse funktionieren. Die Jumper sind in diesem Beispiel für die x- und y-Achse auf 1/8 Schritt und für die z-Achse auf 1/4 Schritt eingestellt.

Einsetzen der Treiber

Bitte nur im Stromlosen zustand!

Hier ist es wichtig auf die richtige Orientierung zu achten, welche sich durchaus zwischen den verschiedenen Treiber Typen unterscheiden kann.

Ich mache es immer so, dass ich unter die Treiber schaue und die Position der Motoranschlüsse suche(1B, 1A, 2A, 2B) und darauf achte, diese dann in Richtung des 4Pin Headers für den Motor auszurichten.

So sieht das ganze dann von oben aus. Die Motoranschlüsse gehen in Richtung des Pin Headers. Achtung, das Bild eines DRV8825 Treibers unterscheidet sich! Nur auf die Motoranschlüsse achten!

Fault Jumper

Dieser Jumper ist neben jedem Treiber zu finden. Bezeichnungen JP5, JP8, JP4, JP3, JP9, JP12.
Falls man die DRV8825 Treiber nutzt, bleibt dieser Jumper offen bzw. wird nicht gesetzt. Die Treiber geben hierüber ein Signal wenn diese überlastet sind, welches man abgreifen und nutzen könnte. Bei den A4988 Treibern muss dieser Jumper gesetzt werden! Hiermit wird der Treiber mit 5V versorgt.

Treiberstrom einstellen

Die Treiber besitzen ein Potentiometer, mit welchem der Strom bzw. die Spannung eingestellt werden kann. Dies wird folgendermaßen berechnet: Maximalstrom der Motoren geteilt durch 2. Also für Standard Nema 17 Schrittmotoren mit 2A ergibt sich eine Referenzspannung von 1V( 2A / 2 = 1). Bei dieser Spannung brauchen die Treiber allerdings eine sehr gute Kühlung. Bei der MPCNC werden die Treiber meist auf 0,7V eingestellt. Kühlen muss man die Treiber aber trotzdem ;-).
Das Einstellen der Spannung muss im bestromten Zustand erfolgen. Daher muss man hier sehr Vorsichtig sein, nicht abzurutschen und somit einen Kurzschluss zu verursachen. In dem folgenden Video habe ich kurz gezeigt, wie man die Motoren einstellen kann:

Anschließen der Motoren

Die Motoren werden an den Anschlüssen J4, J7, J1, J2, J10 und J11 angeschlossen. Hierfür kann man Dupont Stecker verwenden. Hier zum Beispiel ein Set mit Zange:
Folgendes Anschlussschema sollte helfen:

Um herauszufinden welche Kabel zusammengehören kann man einfach eine Durchgangsmessung machen. Die Anschlüsse 1A und 1B sollten einen Durchgang haben. Genauso wie 2A und 2B.

Externe Motortreiber

Es gibt eine Vielzahl unterschiedlicher externer Treiber. Nutzt man externe Treiber, wird die Microstepp Konfiguration direkt an dem Treiber vorgenommen und nicht mehr auf der Platine. Die Jumperstellung spielt also keine Rolle mehr auf der Platine. Ebenfalls braucht die Platine nun nur noch einen Bruchteil des Stroms, da die Treiber direkt mit dem Motorstrom betrieben werden. Hier ist ein Beispiel für TB6600 Treiber:

Auf dem OPEN-CNC-Shield sind für jeden Treiber 4 Ausgänge. Einmal Enable(ENA) zum stromlos Schalten der Motoren, dann DIR für die Drehrichtung und STEP für die Schritte. Als letztes wird GND an allen Minus Polen aufgelegt. Im „High Voltage“ Bereich wird der Schrittmotor und das Netzteil angeschlossen.

Konfiguration der Achsen

Hier kann man die Achsen miteinander verbinden. Je nachdem wofür man das Shield verwendet können die Achsen konfiguriert werden. Setzt man beispielsweise einen Jumper bei „Step X2“ und „X1“ sind die Steps der beiden Achsen verbunden / gleich. Gleiches gilt für die anderen Jumper.

Achsen in Estlcam

Bei der Verwendung von Estlcam sollten alle Jumper gesetzt sein. Estlcam unterstützt nur drei Achsen(x, y und z). Durch Setzen der Jumper Verfahren die Motoren für x1 und x2 dieselben Schritte und drehen in dieselbe Richtung. Gleiches gilt für die anderen Achsen.

Achsen in LinuxCNC

LinuxCNC Adapters v1.0

Hier kann der Jumper für die z-Achse sowohl bei „Step“ als auch bei „Dir“ freigelassen werden. Hierdurch kann der Motor Z2 für eine weitere Achse verwendet werden. Demnach könnten man dadurch in LinuxCNC 4 Achsen verfahren.

LinuxCNC Adapter 6Achs v1.0

Hier sollten keine Jumper gesetzt werden. Dadurch können in LinuxCNC 6 Achsen verfahren werden.

Spindel Steuerung

Das OPEN-CNC-Shield bietet vielfältige Möglichkeiten der Spindel Steuerung. Unter anderem ist es möglich diese ein- und auszuschalten oder die Drehzahl zu regulieren.

Achtung! Lebensgefahr! Lasse den Fräsmotor von einem Elektriker anschließen!

Auf dem unten stehenden Bild sind die Terminals zum Anschluss einer Spindel abgebildet.

BeschriftungFunktion
FOR / DCMDieser Anschluss ist für die Steuerung eines Frequenzumrichters (FU) z.B. bei der typischen Chinaspindel. Hiermit wird der FU an- und ausgeschaltet. Genaueres hierzu unter Anschluss eines Frequenzumrichters.
Spindel Relais
GND/OUT/COM1
Hier kann ein Relais zum Einschalten einer Spindel angeschlossen werden. Es kann hier auch sonstige Hardware welche gleichzeitig mit der Spindel eingeschaltet werden soll über ein Relais geschaltet werden(zum Beispiel die Pumpe bei einer Wassergekühlten Spindel). An dem Ausgang OUT liegt im geschalteten Zustand GND(Masse) an. COM1 wird über die Jumper auf der Platine gesetzt und kann entweder 5V, 12V oder eine selbst angelegte Spannung sein. NIEMALS 230V hier anlegen!!!
Mehr dazu unter Anschluss einer Fräse.
Inverter/PWM
GND/VCC/PWM
Diese Anschlüsse dienen der Drerhzahlsteuerun. Zwischen GND und VCC wird ein analoges Signal zwischen 0-10V ausgegeben. Ist der Jumper JP18(5V/10V) gesetzt wird hier ein analoges Signal zwischen 0-5V ausgegeben. Dieses kann über den Einstellbaren Widerstand R24 justiert werden. Siehe dazu Analoges Signal kalibrieren. Zwischen PWM und GND wird ein PWM Signal zwischen 0 und 5V ausgegeben. Dieses kann z.B. für den Anschluss eines Lasers verwendet werden, siehe dazu Anschluss eines Lasers.

Analoges Signal kalibrieren

Wie der analoge Ausgang auf 10V kalibriert wird, zeigt das folgende Video. Dieser Schritt ist übrigens nur notwendig, wenn auch eine Spindel mit externer Drehzahlsteuerung angeschlossen wird.

Hier nochmal kurz zusammengefasst:

  1. Platine mit Strom versorgen.
  2. Arduino an Computer mit Estlcam anschließen
  3. Multimeter auf Gleichstrommessung stellen und an den Terminal Inverter/PWM anschließen. Dabei kommt der Minus-Pol an GND und der Plus-Pol an VCC.
  4. In der CNC Steuerung von Estlcam den Arduino Mega mit richtigen Port auswählen.
  5. Unter dem Reiter Fräsmotor die Einstellungen für die China Spindel laden.
  6. Die Steuerung programmieren.
  7. Den Button drücken, um die Spindel zu starten und den Befehl „pwm100“ in der Kommandozeile eintippen.
  8. Sicherstellen, dass der Schieberegler für die Spindel Geschwindigkeit über 100 % steht und dann so lange an der Stellschraube auf dem Potentiometer drehen bis das Multimeter etwa 10V anzeigt.
  9. Fertig.

Anschuss einer Fräse(Ein/Aus)

Normale luftgekühlte Fräse. Drehzahlregelung an der Fräse selbst. Achtung, laut.

Anschluss Fräse

Der Fräsmotor wird über ein Relais mit der Steuerung verbunden. Es sollte ein Solid State mit Nulldurchgangsschaltung verwendet werden. Hier ist ein Beispiel: Ebay – RM1A23D25. Achtung, je nach Stromentnahme kann das Relais heiß werden und muss gekühlt werden. Hier ist zum Beispiel ein passender Kühlkörper: Amazon – Kühlkörper.
Die typischen mechanischen 5V Relais für z.B. Arduinos sind nicht geeignet. Diese können Störungen verursachen und geben auch des Öfteren mal den Geist auf.

Anschluss Fräse mit externer Drehzahlsteuerung

Fräsen mit externer Drehzahlsteuerung wie zum Beispiel eine AMB 1050 FME oder auch Fräsen von Mafell
Amazon – AMB 1050
Amazon – Mafell FM 1000

Anschluss Fräse mit externer Drehzahlsteuerung

Die Fräse kann hier ohne ein Relais direkt an dem OPEN-CNC-Shield angeschlossen werden. Das braune Kabel kann entweder an COM1 angeschlossen werden, oder direkt an das Netzteil zur Stromversorgung der Platine angeschlossen werden.

Anschluss eines Frequenzumrichters(China Spindel)

Typische wassergekühlte China Spindel. Besitze ich selbst auch. Wenn die einmal läuft, läuft sie 🙂

Anschluss eines Frequenzumrichters

Verbindungstabelle:

OPEN-CNC-ShieldFrequenzumrichterErklärung
FOR / DCMFOR / DCMAn- und ausschalten des Frequenzumrichters. Strom fließt von FOR nach DCM. Hier ist die Fließrichtung entscheident. Sollte die Spindel nicht schalten, obwohl sie eigentlich „müsste“ einfach mal die Kabel vertauschen und ausprobieren ob es dann klappt.
Inverter/PWM
GND und VCC
ACM(GND) und VI(VCC)Diese Verbindung ist für die Drehzahlsteuerung. Normalerweise 0-10V. Über den Jumper JP18 auf 0-5V einstellbar. Bei meinem FU konnte man auch einstellen, wie viel Volt der Eingang funktionieren soll. Dafür bitte in die Bedienungsanleitung des FU schauen.
Spindel Relais
OUT / COM1
Optional: Hier kann man zum Beispiel ein Relais anschließen um Pumpen oder Absaugung etc. zu schalten. Achtung: Je nach höhe der Stromabnahme kann das Relais heiß werden und muss gekühlt werden!

Achtung, damit die Drehzahlsteuerung funktioniert muss der Jumper bei VI/VR wie im obigen Bild gesetzt sein. Ansonsten wird die Drehzahl weiterhin über den Poti am FU gesteuert.

Weitere Informationen zu Einstellen und Anschließen des Frequenzumrichters findet man auch auf der Estlcam Seite. Dort ist dies noch einmal sehr gut beschrieben: Estlcam – Chinaspindel

Anschluss eines Lasers

Hier einmal Beispielhaft der Anschluss eines Lasers. Ich habe folgenden Laser verwendet:

Der Laser, den ich verwende braucht 12V, diese hole ich von einem externen Netzteil. Da der Laser nur läuft, wenn über PWM ein Signal heraus gegeben wird, spare ich es mir, den Laser über ein Relais mit Strom zu versorgen. Das wäre aber auch möglich. Das Relais würde dann genauso wie die Spindeln an den Anschluss „Spindel Relais“ auf der Platine angeschlossen werden.
Damit TTL des Lasers funktioniert braucht dieser ein sauberes PWM Signal von 0 oder 5V. Dieses findet man auf der Platine an dem Anschluss „PWM“. Der Anschluss „VCC“ funktioniert auch dann nicht, wenn der Jumper für 5V gesetzt ist. VCC gibt lediglich eine Analoge Spannung heraus.

Wichtig, bei meinem Laser lagen an dem roten Kabel von TTL 12V an. Diese keinesfalls mit der Platine verbinden. Dabei können Bauteile zerstört werden. Es reicht das gelbe Signal Kabel und das schwarze GND Kabel anzuschließen.

Wie das ganze dann angesteuert wird und Softwareseitig funktioniert zeige ich in diesem Blog Beitrag: LaserGRBL mit dem OPEN-CNC-Shield

Link zur angepassten GRBL Firmware: Gitlab – grbl

SUB-D 37 Anschluss

Dieser Anschluss führt viele der Arduino Pins nach außen und dient als Schnittstelle für externe Bedienelemente wie zum Beispiel Handräder, Joystick, Buttons etc.

Externes Funk panel

Dieses Bedienpanel ist Kabellos. Weitere Informationen gibt es auf dieser Seite: Wireless Control.

Extension Panel(Anschluss per Kabel)

Das Extension-Panel wird per Kabel angeschlossen und bietet eine Menge Möglichkeiten für externe Bedienelemente. Hierzu habe ich eine Seite mit weiteren Informationen erstellt:

Extension Panel
Bild von Carsten Schröder

Handrad

Dieses Handrad ist schön klein und bietet die wichtigsten Bedienelemente. Es wird per Kabel angeschlossen. Hierzu gibt es einen Beitrag mit einer Zusammenbau-Anleitung: DIY Handrad unter 70€

Breakout Board / Eigene Entwicklung

Es soll lieber etwas Eigenes sein? Das ist auch kein Problem. Dafür kann man sich so einen Adapter bestellen und anschließen:

SUB-D 37 Breakout Board


Dort lassen sich dann alle Bedienelemente anschließen und man kann z.B. der Anleitung auf der Estlcam Homepage folgen: Estlcam Handrad – Dazu einfach nach dem unten Abgebildetem Pin out anschließen.

SUB-D 37 Pinout

Lüfteranschluss

Es ist möglich an dem 4Pin Lüfter Anschluss auf dem Board auch einen 2Pin Lüfter oder einen 3Pin Lüfter mit 12V anzuschließen. Dabei bitte auf die richtige Verpolung von GND und +12V achten. Diese sind auf der Platine gekennzeichnet.

Die Steuerung eines 4Pin Lüfters mit Drehzahlsteuerung funktioniert nur mit dem zweiten Arduino Mega! Ohne den zweiten Arduino dreht ein PWM-Lüfter vermutlich gar nicht, oder nur sehr langsam.

Zweiter Arduino Mega

Der zweite Arduino Mega mini pro ist optional und kann eingesetzt werden, um weitere Funktionalitäten hinzuzufügen. Dazu gehört Autosquaring, temperaturabhängige Lüfter Steuerung, Ansteuerung eines Displays usw.

Software aufspielen / konfigurieren

Die Software für den Arduino liegt im Gitlab – Timos Werkstatt – Repository: open-cnc-shieldSketch

Mögliche Display Layouts(hier unbedingt darauf achten, dass der Displaytyp übereinstimmt):

    Layout_128X32_Fan_and_Temp,
    Layout_128X32_Temp_and_Autosquare,
    Layout_128X32_Autosquare,
    Layout_128X64_1

Erklärvideo

Autosquaring

Autosquaring der Achsen ist vor allem bei DIY Fräse nützlich und soll für die Rechtwinkligkeit der Achsen zueinander sorgen. Gerade bei der MPCNC oder Artisan, welche größtenteils aus dem 3D-Drucker kommen kann es Probleme bei der Rechtwinkligkeit geben, welche hierdurch hoffentlich behoben werden. Beim Autosquaring werden alle Motoren, für welche Autosquaring aktiviert ist gegen ihre jeweiligen Endstops gefahren. Damit die Achsen dann im rechten Winkel sind, müssen die Endstops entsprechend ausgerichtet werden.

Achtung, um Autosquaring zu nutzen, muss ein Taster / Schalter an den passenden Pin des SUB-D 37 Anschlusses angeschlossen werden. Nutzt man das Extension-Panel oder Funk Panel sind hierfür bereits Anschlüsse vorgesehen und herausgeführt.

In diesem Video zeige ich wie man Autosquaring nachrüstet bzw. nutzt und was das ist:

Autosquare Konfiguration

Das Autosquaring wird über Jumper konfiguriert und aktiviert.

Hier kann für jede Achse einzeln festgelegt werden, ob diese aktiv ist oder nicht. Ebenso kann die Richtung geändert werden. Sollten die Motoren also in die falsche Richtung nach dem Start des Autosquaring laufen sorgt ein Jumper bei z.B. „Rev X“ dafür, dass die Motoren der x-Achse in die andere Richtung laufen. Diese Einstellung gilt nur für den Autosquaring Modus!
Wenn der Jumper bei „use IN9“ gesetzt ist, wird beim Starten von Autosquaring der Eingang 9 ausgelöst und kann in Estlcam zum Beispiel als Endstopp konfiguriert werden. Damit denkt Estlcam, dass ein Endstopp ausgelöst wurde und versucht nicht selbst die Fräse zu verfahren.

Autosquaring für eine Achse ergibt nur Sinn, wenn es auch zwei Motoren für diese Achse gibt.

Endstopps anschließen

Die Endstopps müssen an den richtigen Eingängen angeschlossen sein, damit Autosquaring funktioniert. Hier ist eine Anschlusstabelle:

MotorEndstop
X1Eingang 5
X2Eingang 6
Y1Eingang 7
Y2Eingang 8
Z1Eingang 3
Z2Eingang 4

Es wird im Standard von Programm von NO ( = normally open) Endstopps ausgegangen. Falls die Endstopps als NC angeschlossen werden muss dies im Arduino Code geändert werden. Siehe dazu folgende Zeile am Anfang des Arduino Codes:

// Use HIGH for normally open endstops and LOW for normally closed endstops
const uint8_t endstopStateTriggered = HIGH; 

Lüfter Steuerung mit PWM

Auf der Platine ist ein 4Pin Lüfter Anschluss. Hier können alle möglichen Arten von 12V Lüfter angeschlossen werden. Darunter ein 2Pin Lüfter(nur mit GND und +12V) ein 3Pin Lüfter oder ein 4Pin Lüfter mit Drehzahlsteuerung.
Auf dem zweiten Arduino wird standardmäßig alle 10 Sekunden die Temperatur des Onboard Temperaturfühlers ausgelesen und die Drehzahl des Lüfters entsprechend bei Temperaturanstieg erhöht. Dies funktioniert nur mit einem 4Pin PWM Lüfter, und auch dort gibt es Unterschiede in der Frequenz. Ich habe die Platine mit folgendem Lüfter getestet:

12V PWM Lüfter:
Dieser Lüfter ist angenehm leise und funktioniert super mit der Drehzahlsteuerung.
Wobei sicherlich auch andere Funktionieren. Ich habe halt nur diesen einen getestet.

Externe Temperatur Sensoren

Es ist möglich weitere externe Temperatur Sensoren anzuschließen. Dafür gibt es auf der Platine einen Terminal mit der Beschriftung „Temp DS18B20“. Hier kann ein oder auch mehrere Sensoren vom Typ DS18B20 angeschlossen werden. Ich weiß gerade nicht genau wie viele, aber sicherlich mehr als man braucht. Diese gibt es unter anderem auch in einer wasserdichten Variante. Da bietet es sich doch an, auch z.B. die Kühlwassertemperatur im Auge zu behalten :-).

DS18B20:

Standardmäßig wird nur ein Sensor dort ausgelesen und auf dem Display des Bedienpanels ausgegeben. Möchte man mehrere Sensoren auslesen und verarbeiten oder auf irgendeine Art auf die Temperatur reagieren, muss man selbst Hand anlegen und die Funktion selbst auf dem Arduino programmieren. Beizeiten mache ich hierzu mal einen Beitrag.

Estlcam

Folgt…

LinuxCNC

folgt…

Anschluss des Adapters

Den Estlcam Arduino abziehen und dafür einen der LinuxCNC Adapter aufstecken.

LPT / Parallel Port verbinden

Hier einmal die Pinbelegung der LPT Anschlüsse:

LinuxCNC Adapter v1.0

LinuxCNC Adapter 6Achs v1.0

Konfiguration der CNC

Folgt

LaserGRBL

Hierzu habe ich einen Beitrag erstellt: LaserGRBL mit dem OPEN-CNC-Shield

FAQ – Häufig gestellte Fragen

Wieso zeigt Eingang 8 in Estlcam immer ausgelöst an?

Das liegt daran, dass Estlcam den Arduino Pin D13 für den Eingang 8 nutzt und dieser leider bei den Arduinos meist mit der internen LED verbunden ist. Zum Glück ist diese überflüssig und kann einfach entfernt werden. Ich mache das immer mit einem Cuttermesser und hebel die aus.
Man kann selbstverständlich auch vorsichtiger Vorgehen und diese auslöten. Dann hat man die Möglichkeit diese später wieder anzulöten. In diesem kurzen Video zeige ich, wie ich das immer mache:

31 Gedanken zu „OPEN-CNC-Shield Dokumentation“

  1. Hi, wo und wie muß ich die Induktiven Endschalter (NPN NO) am open cnc shield anschließen, daß ich bei der Volksfräse eine Referezfahrt machen kann?

    Antworten
  2. Hallo,
    meine Eigenbausteuerung meiner Fräse hat sich atomisiert und ist somit hinüber.
    Nun bin ich auf diese Seite hier gekommen und ich bin begeistert von der ganzen Technik.
    Die Software werde ich über Estlcam realisieren, die Endstufen sind extern.
    Die Platine möchte ich selber herstellen bzw. lassen.

    Dann noch ein paar Fragen:
    – Existiert dazu eine Stückliste für den Kauf vom Kleinkram?
    – ist ein Werkzeuglängensensor und Tastplatte verwendbar?
    – kann man die Endschalter Achsenweise, also X-Achse (2 Schalter in Reihe), Y-Achse und Z-Achse ebenso?
    – kann ich den externen NOTAUS direkt anschliessen? und wo? und geht der dann auf einen Interrupteingang?

    Habe ich es richtig gelesen, ein Mega steuert nur die kpl. Fräse und der zweite ist frei abänderbar, wenn man den Code umschreibt?

    Bei mir wird der Schaltplan mit schwarzem Hintergrund angezeigt und auch so ausgedruckt. Ist das so gewollt oder kann ich die Einstellung farblich invertieren?

    Danke schon mal für die Beantwortung….und noch ein Lob, endlich wird mal der modernere und kleinere Mega eingesetzt. Ich arbeite schon länger damit.

    Gruß Franz

    Antworten
  3. Umgekehrt natürlich:

    FM1000 –> OpenCNCShield
    GND –> GND
    VCC –> UPV
    PWM –> US
    UO –> ?

    Denke das müsste so angeklemmt werden. Bleibt dann UO frei?

    Antworten
  4. Nein, ich glaube das ist falsch. Miss Mal zwischen Gnd und UPV. Ich denke dass da Spannung anliegt und wenn du das am shield anschließt könnte das kaputt gehen.
    Ich würde eher:
    Gnd -> Gnd
    VCC -> US

    VCC ist analog und gibt zwischen 0-10V aus.

    Antworten
  5. Hallo Timo,

    Danke für die schnelle Lieferung. Ich habe mittlerweile auch alles zusammengelötet. Eine Frage konnte ich nicht über das Netz klären. Kann ich einfach 24 v Strom an das Board anlegen um die stromwandler einzustellen, oder muss ich dabei was beachten?
    Will das frisch gelötete Bord nicht gleich grillen, deshalb frag ich vorher lieber. Danke schon mal!

    Antworten
  6. Hallo,
    ich möchte an das OPEN-CNC-Shield mehrere Temp-Sensoren und ein Display anschliesen, außerdem Autosquare nachrüste.
    Dafür habe ich einen 2. Mega eingesteckt. Auf dem Bord gibt ein Anschluss J8 (Pinout Mega2) wofür aber nirgends die Belegung zu finden ist. Muß ich für das Aurosquaring den D-SUB37 benutzen, oder gibt es auch eine andere Möglichkeit?

    Antworten
      • ich wollte die Pinouts J8 benutzen, komme aber damit nicht zurecht.
        Ich kann nicht erkennen wo Pin1 ist?
        Es gibt da auch kein SCL und SDA ?
        Da ich nicht der Elektronik und Programmierexperte bin komme ich da nicht weiter.
        Wenn ich das Display provisorisch am D-Sub37 anschließe funktioniert es.
        Könntest du mal genauer erklären wie ich ein Display an den Pinouts anschließe?

        Antworten
  7. Hallo Timo,
    Wenn ich versuche den Arduino mit der von dir zur Verfügung gestellten Datei zu bespielen kommt die Fehlermeldung „A15 was not declared in this scope“ kannst du bzw jemand anderer mir da evtl weiterhelfen?
    Danke schon mal 🙂

    LG

    Antworten
  8. Hallo Timo,

    Super Board, funktioniert bisher einwandfrei.

    Du hast den Anschluss von 3-Draht induktiven Näherungsschaltern beschrieben. Wie schließe ich 2-drahtige Sensoren an? Ich habe die von dir vorgeschlagenen Sensoren auf Amazon gekauft (2-draht, NC, NPN).

    Danke

    Antworten
  9. Hallo Timo,
    ich habe die Bausätze nun zusammengebaut und bin am Testen. Das Open-CNC Board läuft mit Estlcam zusammen. Wireless Panel und Adapter wollen aber noch nicht so richtig. Einige Taster leuchten, Display ist dunkel, aber die Status LEDs flackern. Es kommt aber in Estlcam kaum etwas an.
    Komischerweise bewegt sich ein an X1 angeschlossener Stepper von alleine, das ändert sich wenn ich am Poti Rotation drehe, das ist doch aber für die Spindel oder?
    Beim Programmieren der AD Wandler, habe ich im Arduino Monitor auch keine Bestätigung der ID erhalten. Kann man die irgendwie neu programmieren?

    Ich hoffe Du hast einen Tipp oder eine „Standard Testvorgabe“ für mich.
    Lieben Dank
    Gruß Pit

    P.S. Ein geiles Projekt und tolle Bausätze. Respekt.

    Antworten
    • Hallo,
      nähere mich langsam an. Das Display war defekt, habe es nun mit einem aus der Bastelkiste ersetzt, das läuft.
      Die Wifi Kommunikation generell geht wohl, das Display zeigt Temperatur und Fan an.
      In Estlcam kommen Änderungen am Spindelpoti an, hin und wieder auch mal Taste X und Motor an, aber nicht immer.
      Hier meine Frage, müssen alle Stepper, Spindel etc. angeschlossen sein zum Testen?
      Joystick und Handrad passiert in Estlcam noch nichts.
      Zu der ID für die AD Wandler, hier war die Baudrate falsch, nach der EInstellung auf 9600 konnte ich sehen, das eine ID eingestellt wurde. Ich habe mal eadAddressOriginal(); einkommentiert und bekomme eine 7(111), hoffe das ist ok.
      Warum tut sich in Estlcam noch nichts?
      Jemand einen Tipp?
      Gruß Pit

      Antworten
      • Neuer Stand,
        habe nun die Boards neu geflasht, mit der alten RF24 (1.3.9), das hatte ich nicht gelesen.
        Und ich habe mit Hilfe des Schaltbildes Messungen auf der Adapterplatine vorgenommen:
        -Knöpfe kommen nun alle in Estlcam an.
        -Autosquare Poti kommt an (0-5V) gemessen an U2 Pin 8
        -Spindle Speed Poti kommt an (0-5V) gemessen an U1 Pin 7
        -An U1 keine Änderungen an Pin 7-10, daher funktioniert auch der Joystick nicht und Feedrate nicht.

        Frage, liegt das nun an einem defekten MCP4728 oder kann der nicht addressiert werden?

        Wie kann man die ID in dem MCP4728 zurück und neu setzen, im Video stand etwas von“händisch ändern“ aber wie mach ich das?

        Wer kann helfen?
        Gruß Pit

        Antworten
  10. Hallo,

    ist es irgendwie möglich SSR Relais an die Ausgänge zu hängen?
    Ich habe noch einige hier rumliegen und würde diese gerne verwenden.

    Vielen Dank schonmal.

    Antworten
  11. Moin Moin,
    verstehe folgendes zur Spannungsversorgung nicht:
    Die Netzteile mit hohen Strömen bieten meist mehrere Anschlüsse. Hierfür kann der zweite 12-24V Vin genutzt werden. Dieser dient der Sicherheit und soll der Wärmeentwicklung bei hohen Strömen entgegenwirken.

    Ich nutze Aufstecktreiber DRV8825 und hatte noch ein Meanwell RSP 500-24 liegen.
    Sollte ich hier das Board mit beiden Vin mit dem Netzteil verbinden ? Leistung hat es ja genug und ist wohl auch etwas Oversized, aber wie geschrieben hatte ich es noch liegen.

    Gruß Heiko

    Antworten
    • Ist eigentlich nicht nötig. Du kannst im Betrieb mal die Zuleitung anfassen und schauen, ob diese warm wird. Wenn dem so ist, kannste die zweite Strippe zusätzlich legen…

      Antworten
  12. Hallo

    Ich bin aktuell daran eine CNC Fräse zu konstruieren( bzw. lasse das meine Schüler machen)
    Dein Projekt gefällt mir sehr gut zur Ansteuerung der Motoren.
    Mein Gedanke ist jetzt einen Rasberry Pi 4 mit LinuxCNC in Verbindung mit einer Mesa 7C81 zu verwenden,
    und deine Open-CNC Shield zur Ansteuerung der Achsen und als I/O Karte zu verwenden.
    Die Spindel würde ich dann über RS-485 ansteuern.
    Meinst du das macht Sinn?
    Ach ja, grundsätzlich läuft es wohl auf eine 5 Achs Maschine mit 2 Motoren an der Y achse hinaus.
    Hab da so ne Idee 🙂
    Deshalb wohl auch Linux CNC, da ich dort auch grundsätzliche Sicherheitsoptionen nutzen kann.
    Dein Wireless Handrad finde ich auch Super, aber wird wohl erst später aktuell.

    viele Grüße
    Andreas

    Antworten
    • Hallo,
      diese Bauteil-Kombination hab ich bisher noch nicht gesehen, sollte aber prinzipiell ohne weiteres funktionieren. Ich würde mich nochmal schlaumachen, ob der Raspberry generell genug Leistung für dein Vorhaben besitzt. Bei 5 Achsen müssen ja schon einige Steps erzeugt werden. Und das dann bei hoher Taktfrequenz, keine Ahnung ob der Raspberry das alles so leistet. Klingt aber auf jeden Fall sehr interessant und ich würde mich freuen, wenn du berichtest, ob das klappt. Das ist eine Kombination, die für mich auch noch infrage kappt. Ein Raspberry ist für mich auch wesentlich angenehmer als ein ganzer Tower-PC.

      Viele Grüße, Timo

      Antworten
      • Ich denke es sollte Funktionieren. Gerade um den Pi zu entlasten will ich die Mesa Karte verwenden. Die 7C81 hat einen FPGA und viele configurierbare Ports und das für unter 100€.
        Dein Open-CNC Schield noch als i/o Karte und für den Anschluss der Motortreiber( Denke closed Loop Nema23 ) und man hat alles was man braucht. Die I/O Karten von Mesa würden natürlich auch gehen, aber sind doch sehr teuer.
        Ich besorg mir mal die Komponenten, dann sehe ich weiter.
        viele Grüße
        Andreas

        Antworten

Schreibe einen Kommentar