Untertisch fräse – Platine

Allgemein

Beschreibung

Dieses „Table Router Shield“ ist für die vollautomatische Steuerung der Höhe einer Untertisch-Fräse entworfen worden. Für die Steuerung der Funktionen wird ein ESP32 genutzt. Tatsächlich ist das Einsatzgebiet nicht auf eine Untertisch-Fäse begrenzt. Es kann für alle Anwendungen genutzt werden, bei denen ein Stepper verfahren wird.

Funktionen

  • ESP32 mit DualCore Funktion um den Stepper-Motor und das Display unabhängig voneinander zu verwenden
  • Steckplatz für einen Aufstecktreiber im Pololu-Design. Das heißt es können z.B. DRV8825, A4988 oder auch die sehr geräuscharmen TMC2209 verwendet werden
  • Anschlüsse für die Nutzung externer Treiber, falls der Motor mehr Power benötigt
  • Button-/Schalter-Anschlüsse für:
    • Werkzeugwechsel
    • Werkzeuglängenmessung
    • OK-Knopf zum Anfahren der Soll-Position
    • Modus-Knopf, um in den Direkt-Modus zu wechseln(Achse verfährt direkt beim Betätigen des Encoders)
    • Ein/Ausschalten einer Spindel
    • Poti zum Einstellen der Geschwindigkeit der Spindel
  • Analoger 0-10V Ausgang für die Steuerung einer Spindel
  • Anschluss eines I2C Displays
  • Anschluss eines Encoders
  • Anschlüsse für Enstops(Limit oben, Limit unten und einen für die Werkzeuglängenmessung)
  • 12V Ausgang für z.B. einen externen Schrittmotor Treiber
  • 5V Ausgang für z.B. LEDs in den Schaltern
  • Alle Ein- und Ausgänge sind mit LEDs versehen, um den aktuellen Auslösezustand anzuzeigen
  • Verpolungsschutz am 12V Eingang
  • Selbst zurücksetzende Sicherungen, falls Kurzschlüsse verursacht werden
  • Pin out um weitere Funktionen zu realisieren
  • Fertige Software zum Aufspielen

Technische Daten

Eingangsspannung12V
Benötigte StromstärkeFür die Platine ohne Motor reicht wohl 12V 1A.
Dazu addiert man den Strom, den der Motor braucht.
Ich nutze ein 12V 4A Schaltnetzteil
Ausgänge– Spindle/Frequenzumrichter on/off
– Analog 0-10V für Spindelgeschwindigkeit
– PWM Ausgang (0-3,3V)
– 12V OUT(Stromstärke je nach Netzteil)
– 5V OUT(max. 2A im 5V Netz)
– Stepper Anschluss, falls der Aufstecktreiber genutzt wird(sowohl als Schraubterminal als auch als Dupont Pin-Header)
– Anschluss für einen Externen Stepper Treiber(STEP, DIR, ENA)
– Anschluss I2C Display(SDA, SCK, 5V, GND)
Eingänge– Schalter Direkt-Modus
– Taster OK-Knopf
– Taster Werkzeugwechsel
– Taster Werkzeuglängenmessung
– Taster Spindel An/Aus
– Potentiometer Spindel Geschwindigkeit
– Endstop oben (am besten NC)
– Endstop unten(am besten NC)
– Endstop Werkzeuglängenmessung

Platine besorgen / fertigen

Falls Du keine Lust hast die Platine und Bauteile selbst zu besorgen gehts hier zu meinem kleinem Shop.

Möchtest Du die Platine allerdings lieber selbst fertigen ist dies auch möglich. Die Dateien stehen unter der Creative Commons CC BY-NC-SA 4.0 Lizenz und können hier heruntergeladen werden: Gitlab – Timos Werkstatt

Zusätzliche Bauteile

Bauteil / BeschreibungAmazonAliExpress
ESP32 Devkit V1 – Achtung das Pinout muss genau dem in dem abgebildeten Bild entsprechen!

~ 11€ Amazon~ 10€ AliExpress
Encoder – 5V – 4Pin
~ 30€ Amazon~ 17€ AliExpress
I2C Display – LCD2004 – I2C
~10€ Amazon~ 6€ AliExpress
optional – Aufstecktreiber – 1x
DRV8825(mehr Kraft)
TMC2209(geräuscharm)
~ 19€/5Stk DRV8825
~ 32€/5Stk TMC2209
~ 7€/5Stk DRV8825
~ 19€/5Stk TMC2209
Taster / Schalter:
Ich habe für alle Funktionen Druck-Taster verwendet.
Achtung, der Taster für den Modus-Wechsel sollte „latching“ bzw. Einrastend sein.
Also 4x „latching“ und 1x „momentary“
Falls gewünscht auch mit LED(5V)
AmazonAliExpress
optional: Poti für die Geschwindigkeitssteuerung am FU
10K Ohm ist ein guter Wert für so einen Poti
AmazonAliExpress
optional, dringend empfohlen:
Geräteschalter – Not-Aus – 230V –
Damit die Fräse sicher geschaltet werden kann
~ 24€ Amazon
optional: Schuko-Einbausteckdose
AmazonAliExpress
optional: Kaltgeräte Anschluss
AmazonAliExpress
optional: Schaltnetzteil – 12V – 5A(48W)
AmazonAliExpress
optional: Endstops – 2 Stk.
AmazonAliExpress
optional – Makita Fräse(sehr laut)
~ 105€ Amazon
optional – China Spindel mit FU – Luftgekühlt
Vorteil gegenüber der Makita Fräse:
– Steuerung der Geschwindigkeit erreichbar
– Fräse kann geerdet werden und braucht
damit bei der Längenmessung keine Klemme am Fräser
~ 220€ AliExpress

Dokumentation

Hinweis für die Platinenversion 1.4

Dieser Workaround ist in Version 1.5 oder höher nicht mehr nötig.

Leider sind an dem ESP32 an den Pins 34,35,36 und 39 keine Hardwareseitigen Pullup Widerstände verbaut. Daher ist der Eingang immer in einem zufälligen Zustand, bis ein eindeutiges Signal anliegt. Das ist für die Funktion sehr hinderlich. Daher muss an diesen Eingängen ein 10K Ohm Widerstand verbaut werden. Dann kann auch die aktuelle Version der Software ohne Probleme genutzt werden. Wie die Widerstände anzubringen sind, zeigt die folgende Grafik, exemplarisch:

Betroffen sind die Eingänge: Limit Probe, Limit Top, Limit Bottom, Button Probe.
Die Verkabelung der Schalter an diesen Eingängen bleibt hierbei wie gehabt.
Beispiel für Limit Probe:
Damit dieser Eingang vernünftig funktioniert wird der Endschalter wie gehabt verkabelt, also eine Ader in den Limit Probe „IN“ Terminal, der andere in den Limit Probe „GND“ Terminal. Zusätzlich wird nun der 10K Ohm Widerstand(egal wie rum) mit einer Seite mit den Limit Probe „IN“ Terminal und die andere Seite mit 3.3V verbunden. 3.3V kann man entweder an dem Pinout abzwacken, oder am Poti Spindle Terminal.

Schraubterminals

BeschriftungFunktion
Button OKkurz: Anfahren der Soll-Position
lang: Abnullen der aktuellen Position
Button DirectHier sollte ein Schalter angeschlossen werden. Wenn dieser geschaltet ist, ist der Direkt-Modus aktiv und der Motor verfährt bei Betätigung des Encoders direkt.
Button WZWkurz: Startet den Werkzeugwechsel
Button Probekurz: Startet die Werkzeuglängenmessung
Button Spindelkurz: Startet/stoppt die Spindel
Limit Top / Limit BottomHier werden die Endstopps für das obere und untere Verfahrlimit angeschlossen(am besten NC – normaly closed endstopps verwenden)
Limit ProbeAnschluss eines Tasters oder Messplatte zur Werkzeuglängenmessung
Spindle Zum Steuern eines Frequenzumrichters – An/Aus
FOR: FOR auf dem FU
DCM: DCM bzw GND auf dem FU
Inverter / PWMZum Steuern der Geschwindigkeit der Spindel
PWM: Wird vermutlich nicht gebraucht, habe ich aber zur Sicherheit herausgeführt
VCC: Wird an den Analogen Eingang am FU angeschlossen(0-10V)
GND: Wird ebenfalls am FU angeschlossen
EncoderA, B, 5V und GND an die entsprechenden Terminals am Encoder anschließen
Display I2CSDA, SCK, 5V und GND an die entsprechenden Pins am Display anschließen
Stepper DriverSTEP, DIR, ENA und GND an die entsprechenden Terminals des externen Treibers anschließen.
Stepper onboard driver1A, 1B, 2A und 2B and die entsprechenden Anschlüsse der Stepper Motors anschließen(nur wenn der Onboard Treiber genutzt wird)

Stepper Anschluss

Das Shield unterstützt sowohl den Anschluss von Aufstecktreibern als auch externe Treiber. Wofür man sich entscheidet, hängt wohl von der benötigten Stromstärke ab. Die Aufstecktreiber können verwendet werden, wenn nicht viel Kraft auf den Motor einwirkt. Für eine Untertisch-Fräse würde ich eher zu externen Treibern tendieren, damit der Motor den wirkenden Kräften beim Fräsen standhält.

Onboard Treiber

Achtung, wenn bei der Verwendung von Aufstecktreibern bitte unbedingt beachten, dass diese unter Umständen eine aktive Kühlung benötigen! Dies hängt von der eingestellten Stromstärke ab.

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 DIP-Schaltern eingestellt. Diese befinden sich auf der Platine genau neben dem Aufstecktreiber-Anschluss.

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
Diese Tabelle gilt nur für A4988 und DRV8825 und ähnliche Treiber. TMC2209 werden anders eingestellt!

0 bedeutet Jumper ist nicht gesetzt, 1 bedeutet Jumper ist gesetzt

Einsetzen des Aufstecktreibers

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.

Fault Jumper

Dieser Jumper ist neben dem Treiber zu finden. 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. Achtung, bei TMC2209 sind die Werte anders. Dazu bitte direkt in die Dokumentation des Herstellers schauen.
Das Einstellen der Spannung muss im bestromten Zustand erfolgen. Daher muss man hier sehr Vorsichtig sein, damit man nicht abrutscht und somit einen Kurzschluss zu verursacht. In dem folgenden Video habe ich mit einem anderem Shield kurz gezeigt, wie man die Motoren einstellen kann. Das funktioniert mit diesem Shield genau so.

Anschließen des Motors

Der Motor wird an den Anschlüssen 2B, 2A, 1B und 1A angeschlossen. Hierfür kann man den Dupont-Anschluss neben dem Treiber verwenden. Hier zum Beispiel ein Set mit Zange zum Crimpen der Stecker:

Oder man nutzt die Schraubterminals bei „Stepper onnboard driver“
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.

Externer Treiber

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 Dip-Schalter Einstellung 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 Shield sind 4 Ausgänge für einen externen Treiber. 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. Hierfür kann der „12V OUT“ Anschluss des Shields verwendet werden.

Endstops und Schalter anschließen

Die Endstops und Schalter werden einfach an den entsprechenden Terminals angeschlossen. Dazu wird eine Ader des Schalters an GND und eine an den „IN“-Eingäng des Terminals auf der Platine angeschlossen. Es wird also mit GND geschaltet.

Spindel Steuerung

Das Shield bietet 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.
Inverter/PWM
GND/VCC/PWM
Diese Anschlüsse dienen der Drehzahlsteuerung. Zwischen GND und VCC wird ein analoges Signal zwischen 0-10V ausgegeben. Dieses kann über den Einstellbaren Widerstand R1 justiert werden. Siehe das Kapitel „Analoges Signal kalibrieren“. Zwischen PWM und GND wird ein PWM Signal zwischen 0 und 3,3V ausgegeben.

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. In dem Video wird ein anderes CNC Shield verwendet, das Grundlegende vorgehen ist aber gleich. Es wird allerdings nicht die Software Estlcam benötigt. Das genaue Vorgehen ist unten noch einmal zusammengefasst.

Hier nochmal kurz zusammengefasst:

  1. Platine mit Strom versorgen.
  2. 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.
  3. Mit den Schaltern der Platine die Spindel starten(diese sollte zu diesem Zeitpunkt nicht angeschlossen sein!)
  4. Den Poti für die Spielgeschwindigkeit bis zum Anschlag aufdrehen, nun sollte das Messgerät 10V anzeigen.
  5. Falls nicht 10V angezeigt werden, die Schraube an dem Widerstand R1 solange drehen, bis 10V angezeigt werden.
  6. Fertig.

Software aufspielen / einstellen

Die Software kann ebenfalls in dem Gitlab Repository gefunden werden: Github – Timos Werkstatt

ESP32 Pinout

Im nachfolgenden Bild ist einmal das Pinout bzw. Schema für den ESP32 dargestellt. Dies kann beim debuggen / erweitern der Software behilflich sein:

Pinout-Anschluss

Hier ein Schema für die Belegung des Pinouts: