Eingestellt
Update 01.05.2024: Tillboard Extension wird nicht mehr weiterentwickelt / unterstützt / verkauft. Schau gern beim Nachfolger, dem OPEN-CNC-Shield 2 vorbei.
Allgemein
Beschreibung
Eine Erweiterung für das von Till Nenz erstellte MPCNC-Nano-Estlcam-Shield auch Tillboard genannt. Damit kann eine CNC Fräse mit der Software Estlcam gesteuert werden. Die hier vorgestellte Erweiterung bzw. Tillboard Extension wird auf das Tillboard aufgesteckt und bringt einige neue Funktionalitäten mit sich. Das Tillboard wurde zwar für die MPCNC designed, funktioniert aber genauso gut auf anderen Fräsen. Mit der Extension ist es außerdem möglich Autosquaring der Achsen trotz Nutzung von Estlcam auszuführen.
Funktionen
Die Extension tauscht für die Steuerung der CNC den Arduino Nano gegen einen Arduino Mega aus. Außerdem ist eine neue Schnittstelle hinzugekommen, mit der ein externes Bedienpanel nach eigenen Wünschen erstellt und angeklemmt werden kann.
Hier eine Auflistung der Funktionen:
- Alle Funktionen des Tillboards sind erhalten geblieben.
- Autosquaring der Achsen ist nun möglich.
- Zwei weitere Stepper Treiber können verbaut werden. Steuerung über externe Treiber ebenfalls möglich.
- Insgesamt 16 Eingänge und 8 Ausgänge, alle galvanisch getrennt.
- Alle in Estlcam konfigurierbaren Bedienelemente können genutzt werden, besonders hervorzuheben:
- Verfahren per Joystick
- Spindel Geschwindigkeit und Vorschub Einstellung per Poti
- Programme / Motor starten und stoppen
- Display zur Anzeige des Autosquaring Status der Achsen und Temperatur der Fühler(Können z.B. in Schaltkasten oder im Kühlmittel Tank positioniert werden)
- Herausgabe aller Bedienelemente über eine SubD 37 Schnittstelle.
Was ist dieses Autosquare und wofür brauche ich das?
Diese Frage habe ich versucht in diesem kurzen Video zu Beantworten:
Platine
Vorwort
Das wichtigste Vorweg: Das Ganze ist ein Hobby von mir und ich bin kein ausgebildeter Elektriker. Daher übernehme ich auch keinerlei Haftung für eventuelle Schäden die durch die Extension indirekt oder direkt entstehen. Wer sich das Löten nicht zutraut, sucht sich Hilfe bei bekannten oder in einem Elektronikfachgeschäft.
Platine / Bauteile besorgen
Falls Du keine Lust hast die Platine und Bauteile selbst zu besorgen gehts hier zu meinem 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
Teilelisten
Hier gehts zu den Teilelisten in Form einer —> Google Docs Tabelle
Über den Reiter oben kann zwischen den verschiedenen Platinen gewechselt werden
Benötigte Bauteile
Neben den Komponenten für die Extension Platine und der Extension Platine selbst werden folgende Sachen benötigt, AliExpress ist immer am günstigsten, dauert dafür aber auch am längsten. Ich warte teilweise zwei Monate auf die Materialien. Bei Amazon und Ebay sollte man auch darauf achten, von wo die Artikel verschickt werden. Viele elektronische Bauteile werden dort ebenfalls aus China verschickt und dann wartet man wieder lange.
Bauteil | Beschreibung | Produktlink |
---|---|---|
Arduino Mega | Steuerung der Fräse | |
Arduino Nano | Steuerung Autosquaring, wenn man schon das Tillboard hat, kann natürlich der vorhandene Arduino Nano genutzt werden | |
D-SUB 37 Kabel | Das serielle Verbindungskabel zwischen den Platinen. Getestet wurde auch schon mit 5m. Es wird ein „Male to Female“-Kabel benötigt. Manchmal auch einfach als „Verlängerung“ bezeichnet. | |
A4988 | Falls Onboard Treiber verwendet werden sollen, kann man entweder die A4988 oder DRV8825 nutzen. Hiervon werden zwei zusätzliche zum Tillboard benötigt. | |
Schrauben (4 Stück)M3x60 oder M4x60 | Befestigung der Extension über dem Tillboard. Je nachdem, wie das Tillboard befestigt ist, kann man sich auch andere Lösungen einfallen lassen. Länger geht auch(kann man ja später passend einkürzen) | M3: M4: M3: M4: |
Abstandshalter (4 Stück) | Abstandshalter zwischen den Boards. Ich habe mir die einfach selbst im 3D-Drucker gedruckt. Geht ganz fix. Durchmesser passend zur Schraube und die Länge je nachdem, welche Spacer genutzt werden. | |
Anschlüsse / Konfiguration
Jumper / Terminals
Beschriftung | Funktion | Beschreibung |
---|---|---|
JP2 / JP3 | Microstepping | Microstepping Einstellung der Treiber. Unbedingt die gleiche Microstepping Einstellung für beide Motoren einer Achse nutzen. |
JP4 / JP5 | Fault / Treiber | Fault Jumper beim DRV8825 Treiber. Muss beim A4988 gesetzt sein. |
JP6 | OUT Voltage | Dieser jumper muss gesetzt sein, wenn an den COM Ports der Ausgänge 5V anliegen soll. Ansonsten diesen jumper frei lassen und selbst Power auf einen COM Anschluss geben. Gilt nur für die Ausgänge auf der Extension Platine. Das Tillboard hat einen eigenen Jumper über den OUT1 und OUT2 eingestellt werden. OUT3 vom Tillboard ist kein richtiges OUT3 – das ist das Einschalt-Signal für die Fräse in Estlcam. Wenn also OUT3 von der Estlcam Software aus verwendet werden soll, muss der OUT3 der Extension Platine verwendet werden. |
JP8 | Autosquare config | use IN9: Wenn gesetzt wird IN9 während des Autosquaring ausgelöst. Kann man dann z.B. in Estlcam als Endstopp setzen, damit Estlcam weiß, dass er gerade nicht verfahren kann. AS X: muss gesetzt sein, wenn autosquare X an ist. AS Y: muss gesetzt sein, wenn autosquare Y an ist. Rev X: Auto Squaring der x-Achse in die andere Richtung. Rev Y: Auto Squaring der y-Achse in die andere Richtung. |
J4 | Panelanschluss Konfiguration | Con1 – Con11 können frei belegt werden und stehen an der Platine fürs Panel wieder zur Verfügung. Die nebenstehenden Pins sind Funktionen, die nicht standardmäßig am Panel verfügbar sind. Möchte man diese Funktion jedoch dennoch am Panel haben kann man hier einfach einen Jumper setzen und Con1 wird dann mit “Motor Stop” belegt. Dies gilt ebenso für die anderen Pins. Man kann allerdings auch komplett andere Sachen an die freien Pins anlegen, z.B. die Steuerung für das ColdEnd oder ähnliches. Motor/Programm Stop: Das Gegenstück zu Motor/Programm Start. Kann weggelassen werden, da man auch einfach zweimal Start drücken kann. Speed 4-6: Für mich haben drei Geschwindigkeitseinstellungen vollkommen ausgereicht. Diese können in Estlcam unter Steuerung-> Bedienelemente frei konfiguriert werden. Braucht man mehr, kann man hier die Jumper setzen. IN15 / IN16: Eingang 15 und 16. Falls man am Panel noch einen Eingang belegen möchte(Tastplatte?) Autosquare: Startet das Auto Squaring. Autosquare Speed: Poti für die Geschwindigkeitseinstellung vom Autosquaring. Je nachdem wie die Microstepps eingestellt sind variiert diese bei jeder Fräse. Daher kann man die entweder hier mit einem Poti einstellen, oder in dem Arduino Programm für den Nano fest einstellen. Display SCK / SDA: Anschlüsse für das OLED Display |
T1 / T2 | 12V in/out | Hier das Netzteil anschließen. Der zweite Terminal kann genutzt werden, um das Tillboard mit Strom zu versorgen. |
T3 | 5V in | Optional. Als Sicherheit gedacht, falls der Transistor auf dem Tillboard überfordert ist. Kann erstmal frei gelassen werden. |
X2 Motor / Y2 Motor | Motor Anschlüsse | A1, A2, B1, B2 der Motoren. Falls der Motor falsch herum dreht einfach den Stecker einmal drehen. |
X2 OUT / Y2 OUT | Treiber extern | Hier sind die STEP und DIR Signale für die Verwendung mit externen Treibern. |
IN9-14 | Eingänge 9-14 | Diese Eingänge werden gegen GND ausgelöst. Also einfach einen Schalter zwischen IN und GND. Dann kann der Eingang entsprechend in Estlcam konfiguriert werden. |
OUT3-8 | Ausgänge 3-8 | Bei den Ausgängen wird ebenfalls gegen GND geschaltet. Also z.B. ein Relais an OUT3 und COM anklemmen. COM kann mit dem JP6 Jumper entweder auf 5v eingestellt werden oder man legt selbst ein Kabel an einem der COM Terminals. Man könnte z.B. 12V vom Tillboard darunter nehmen. |
ENA | Enable der Treiber | Leider sind beim Tillboard die ENA Anschlüsse fest auf GND gelegt. Daher bleibt nur die Beinchen der Treiber abzukneifen und dann den ENA der Treiber an den richtigen Terminal am Extension Board anzuschließen. Generell werden alle ENA gleich geschaltet, daher ist es egal, ob man ENA1, ENA2 oder ENA3 nutzt. Nutzt man externe Treiber, kann man einfach alle ENA der Treiber am Board an dem 3er Terminal anschließen. Carsten Schröder hat hierzu ein passendes Video mit einer Anleitung erstellt: Treiber auf dem Tillboard schaltbar machen |
LEDs
Beschriftung | Beschreibung |
---|---|
L1 | Zeigt an, ob 5V auf dem Board verfügbar ist |
L4 | Zeigt an, ob 12V auf dem Board verfügbar ist |
Pinbelegung SubD37 Anschluss
Falls jemand direkt Kabel am SubD37 Anschluss auflegen möchte.
Zusammenbau / Löten
Zur Technik brauche ich vermutlich nicht mehr viel zu sagen, da Du bereits das Tillboard erfolgreich fertig gelötet hast. Der Aufwand ist bei dieser Platine ähnlich und das Vorgehen unterscheidet sich auch nicht großartig. Das wird hier keine „Schritt für Schritt“ Anleitung.
Vorbereitung / Materialien
Hier mal eine kleine Auflistung der Sachen, die ich benutze, um Platinen zu löten:
Lötstation
PCB Halterung
Kann man sich selbst aus dem 3D-Drucker ausdrucken. Hat sich absolut bewährt.
Thingiverse
Lötzinn
Pinzette
Entlötpumpe
Seitenschneider / Kabelschneider
Vorwort / Informationen
Damit man immer gut an die Bauteile ran kommt, kann ich nur empfehlen sich von den Niedrigsten zu den größten Bauteilen vorzuarbeiten. Es sollte vor allem darauf geachtet werden sauber zu löten und nur Lötzinn auf die dafür vorgesehenen Pads zu geben. Sollte einmal soviel Lötzinn an einem Pad sein, oder sollten sich zwei Pads verbinden kann man gut so eine kleine Vakuumspritze zum Entfernen des überflüssigen Zinns benutzen.
Es empfiehlt sich außerdem alle benötigten Bauteile zurechtzulegen und sich jedes Mal zu vergewissern, dass man das richtige Bauteil in der richtigen Ausrichtung einlötet. Ich weiß gar nicht wie oft ich Male-Pin-Header statt Buchsen eingebaut habe oder umgekehrt. Es ist äußerst schwierig und lästig diese wieder zu entfernen. Daher lieber einmal zu viel prüfen, ob alles richtig ist, bevor das Bauteil eingelötet wird.
Bilderstrecke
Beim Löten der IC-Sockel sollte unbedingt auf die richtige Richtung geachtet werden. Die Kerben sollten übereinander liegen, wie hier auf dem Bild zu sehen.
Die ICs werden ebenfalls so eingesteckt, dass die Kerben übereinander liegen. Manche ICs haben einen Punkt anstatt einer Kerbe. Dann muss halt der Punkt über der Kerbe des Sockels liegen
Die Beinchen der Widerstände und LEDs noch nicht wegschmeißen. Die können für das Panel später noch verwendet werden.
Die Male Header für den Arduino Mega werden auf die andere Seite gelötet. Der Arduino Mega ist damit quasi unter der Platine.
Die Board Spacer werden ebenfalls nach unten angebracht und werden später in die Anschlüsse für den Arduino Nano des Tillboards gesteckt.
Die Terminals können zusammen gesteckt werden und dann in eins angebracht werden. Daher ist es eigentlich auch egal, ob man die 3er oder 2er Terminals nutzt. Wenn viele ineinander gesteckt werden kann es sein, dass man die auf dem Board ein wenig drücken muss, damit die in die Löcher passen.
Auf der Unterseite der Platine befindet sich noch ein 5V Anschluss für einen 40×40 mm Lüfter, den man dort optional installieren kann. Generell sollte der ganze Aufbau gut gekühlt werden. Der kleine Lüfter wird dafür nicht ausreichen.
Test
Zu diesem Zeitpunkt noch nicht den Arduino Nano einstecken! Dieser braucht vorher die richtige Firmware!
Nach dem ganzen Löten und zusammenbauen wollen wir die Platine erstmal testen, bevor wir Strom darauf geben.
- Dazu nehmen wir unser Messgerät und überprüfen einmal, ob wir irgendwo einen offensichtlichen „kurzen“ haben. Dazu nehmen wir ein Multimeter und stellen das auf Widerstandsprüfung. Ich habe mit eingesetzten ICs und Arduino im Stromlosen zustand etwa 500Ohm Widerstand an 5V und GND vom Temperatur Sensor. Das ist in Ordnung. Wenn der Wert viel niedriger ist, deutet das auf einen Kurzschluss.
- Dann können wir einmal 5V auf das Board geben und schauen, ob die LED leuchtet. Das geht am besten an dem Terminal für „5V in“.
- Als Nächstes kann 12-36V angeschlossen werden. Die andere LED sollte aufleuchten.
- Wenn bis hier hin nichts abgeraucht ist, kann die Platine aufs Tillboard aufgesteckt werden und mit dem zweiten 12-36V Terminal kann man auch das Tillboard mit Strom versorgen.
Anschluss an das Tillboard
Ich habe die beiden Boards hier provisorisch mit Schrauben und Muttern befestigt. Allerdings wird man beim Einbau in den Schaltkasten eher eine lange Schraube mit Abstandshaltern benötigen.
Immer noch nicht den Arduino Nano einstecken! Das machen wir im späteren Kapitel
Wenn die LEDs nach dem Verbinden der Boards entsprechend Leuchten und alles gut aussieht kann man den Arduino Mega mit dem PC verbinden und prüfen, ob auch mit Estlcam alles läuft. Hier muss in der Steuerung nun Arduino Mega aus der Liste ausgewählt werden. Hat man die Treiber ebenfalls angeschlossen kann man schon testen, ob alles richtig verfährt.
Gehäuse
Ein passendes Gehäuse für den 3D Drucker wurde von Carsten Schröder entwickelt und auf Thingiverse veröffentlicht: https://www.thingiverse.com/thing:4410310 |
Arduino Nano / Autosquaring
Der Arduino Nano ist auf der Extension Platine für das Autosquaring und Auslesen der Temperatur Sensoren verantwortlich.
Braucht man weder Autosquaring noch Temperatur Fühler kann der Arduino Nano auch weggelassen werden. Das Board mit Bedienpanel funktioniert trotzdem.
Firmware
Download / Requirements
Die Firmware kann hier heruntergeladen werden. Diese muss dann mit der Arduino Software aufgespielt werden. Danach kann der Arduino bedenkenlos in die Extension Platine eingesetzt werden.
Benötige Libraries(Können in der Arduino IDE unter Sketch → Bibliothek einbinden → Bibliotheken verwalten hinzugefügt werden):
Firmware(Einfach in die Arduino IDE kopieren)
Erklärvideo Firmware
In diesen Video zeige ich, wie die Firmware auf die Arduinos geschrieben wird. Es geht in dem Video zwar um das OPEN-CNC-Shield, aber das Vorgehen unterscheidet sich nicht zur Tillboard Extension. Bitte dran denken, in der Arduino IDE den Arduino Nano als Board auszuwählen.
Anpassungen / Einstellungen
In den ersten Zeilen der Firmware können noch Einstellungen vorgenommen werden, sofern das gewünscht ist. Hier ist eigentlich alles mit Kommentaren erklärt.
// Programm configuration
uint16_t stepDelay = 0; // delay between steps in microseconds if no poti is connected - set to 0 to use a poti for setting speed
uint16_t startDelay = 1000; // delay between pressing the autosquare button and starting autosquare - in miliseconds, should be at least 500
byte speedPotiSamples = 10; // Samples of every speed poti reading
uint16_t speedPotiMin = 10; // min delay between steps in microseconds
uint16_t speedPotiMax = 5000; // max delay between steps in microseconds
uint16_t tempSensorUpdateInterval = 5000; // interval between temperatur sensor reads in milliseconds
byte endstopStateTriggered = LOW; // Use HIGH for normally open endstops and LOW for normally closed endstops
#define READ_TEMPERATURES // comment with "//" if temperature sensor is not needed
/**
* USE_DISPLAY
* Uncomment the next line only, if a display is connected by a wire with the shield. For example if the extension panel is used.
* If the wireless solution is connected to shield the next line has to be commented like this: "//#define USE_DISPLAY"
*/
//#define USE_DISPLAY // comment with "//" if temperature sensor is not needed
/**
* WIRELESS ADAPTER CONNECTED
* Comment with // if wireless adapter is not connected!
* IMPORTANT - Has to be commented if there is a wired connection on the sub-d port. For example if the wired extension panel is used
*/
//#define WIRELESS_ADAPTER_CONNECTED
Autosquaring
Erklärung
Der Arduino Nano übernimmt die Kontrolle über die Stepper Motoren, wenn der Autosquaring Knopf/Taster gedrückt wird. Das Ganze hat eine Zeitverzögerung, damit man nicht direkt alle Achseneinstellungen unbrauchbar macht, wenn man da zufällig mal dran kommt. Bedeutet man drückt den Taster, wartet kurz und dann beginnt das Autosquaring. Für welche Achsen Autosquaring durchgeführt werden soll und die Drehrichtung lassen sich über Jumper konfigurieren. Man muss den Taster so lange gedrückt halten, bis alle Endstopps angefahren wurden. Der aktuelle Status wird dabei über das Display ausgegeben.
Anschluss der Endstopps
Für das Autosquaring braucht jeder Stepper Motor einen eigenen Endstopp Schalter. Diese müssen wie folgt angeschlossen werden:
Eingang | Achse |
---|---|
IN5 | X1 |
IN6 | X2 |
IN7 | Y1 |
IN8 | Y2 |
Estlcam
Damit Estlcam nicht gleichzeitig versucht die Motoren zu steuern(passiert eigentlich nur durch Bedienfehler) kann der Eingang IN9 genutzt werden. Dazu muss der entsprechende Jumper auf der Platine gesetzt sein – JP8. Danach kann man diesen in Estlcam bei den Eingängen z.B. als Endstopp konfigurieren. Wird Autosquare nun gestartet löst der Eingang aus und Estlcam stoppt die Steuerung, da es denkt, ein Endstopp wurde ausgelöst.
Hallo Timo,
ich habe nach langer Zeit angefangen das Board zu löten.
Jetzt bin ich an dem Punkt den Adruino Nano zu bearbeiten. Ich bekomme
folgende Fehlermeldung und kenne mich da leider nicht aus:
A1
exit status 1
‚A15‘ was not declared in this scope
Was mache ich falsch??
Gruß Roberto
Das richtige Board in der Arduino IDE auswählen.
Hallo Timo,
ich habe das Board bei dir gekauft und nun auch alles fast soweit fertig. Leider habe ich nicht drauf geachtet und das 128×64 große Display gekauft. Jetzt wollte ich das in der Firmware für den Arduino einstellen, aber ich finde bei deinem Arduino Sketch (Tillboard + Extension + Panel) keine möglichkeit ein anderes Display als das 128x32px einzugeben….Magst du mir kurz helfen?
Dafür müsste die Firmware angepasst werden. Falls du das machst oder jemanden findest der das macht, stellt gerne einen Merge Request auf Gitlab, dann haben alle was davon: https://gitlab.com/cnc-projects1/timos-werkstatt
Hey Timo, gutes neues Jahr
Hab heute die extension zusammen gebraten :-)) funzt.. i.o
Echt cooles Teil, das bedienpannel kommt auch noch dran 🙂
meine Frage:
habe externe Cl endstufen. muss ich dir/step/gnd jeweils nur auf das tillboard auf die gleiche 3 klemmen durchschleifen?
Mfg Claudio
Wie hast du es gelöst mit dem Anschluss der externen Treiber? Für TMC wird ja auf dem Board in Reihe geschalten….
Gruß Michel
Hi, sag mal, kann es sein, daß auf dem Foto ganz oben auf der Seite von der Platine der Nano verkehrt rum eingesteckt ist? Auf allen Videos ist der USB Anschluss nicht auf der Seite des großen Sub-D Steckers.
Hallo, bei der Orientierung der Bauteile bitte immer an die Beschriftung auf der Platine halten. Dort ist die USB Buchse auf einer Seite angedeutet.
Die Orientierung hat sich geändert. Es gibt verschiedene Platinen Versionen.
Das Extension Board gefällt mir richtig gut, vielen Dank für all deine Arbeit!
Ein kleiner Hinweis für all die Leute, die TMC2209 Treiber auf dem Board verwenden möchten. Die TMC2209 StepSticks haben einen internen 20 kOhm Pullup am Enable Pin, damit die Treiber sauber laufen sollte man statt des 10 kOhm Widerstands an R10 einen 1 kOhm Widerstand nehmen.
Die Config Jumper MS0-2 werden etwas wie folgt anders belegt.
MS0 MS1 = Microsteps
0 0 = 8
0 1 = 4
1 0 = 2
1 1 = 16
Je nachdem welche StepSticks man hat, kann man mit MS2 entweder zwischen stealthChop und SpreadCycle wechseln, oder hat keine Funktion, weil UART nach außen geführt wurde.
Hallo Stefan,
ich hoffe diese Nachricht erreicht Dich.
Sehr interessanter Beitrag und für mich sehr relevant da ich auch die TMC 2209 verwende.
https://www.amazon.de/gp/product/B07WC71M4R/ref=ppx_yo_dt_b_asin_title_o09_s00?ie=UTF8&psc=1
Die Frage die sich mir stellt ist, kann ich mir die ganzen Endstop Schalter und deren Verkabelung sparen indem ich die von den 2209ern unterstütze Funktion „Sensorless Homing“ an der MPCNC verwende? Ich habe einige 3D Drucker bei denen ich genau das tue. Mir ist allerdings nicht ganz klar wo ich z.B. die „Bump Sensitivity“ einstellen würde?
Würde das überhaupt in Verbindung mit Autosquaring funktionieren? Ich habe gelesen das Autosquaring mit Estelcam die Endstops benötigt.
Eine weitere Frage in Bezug auf Deinen Hinweis zu dem Widerstand der von 10kOhm auf 1kOhm geändert werden sollte stellt sich in Bezug auf Verwendung des Tillboards selbst. Dort verwende ich auch die 2209er Treiber bisher erfolgreich (bin noch ganz neu, gerade seit 3 Tagen die Fräse am laufen). Müsste ich auch dort einen oder mehrere Widerstände ändern?
Vielen Dank im Voraus!
Schöne Grüße
Damien
Für Sensorless Homing benötigst du wohl ein anderes Board. Damit das funktioniert benötigst du nämlich die UART oder SPI funktion der TMC-Treiber. Und müsstest den einen extra Pin (DIAG) mit einem Input verbinden.
Insgesamt wäre das viel rumgelöte, weswegen man schon besser ein anderes Board nehmen sollte.
Bzgl. des Widerstands: Wenn es bei dir reibungslos läuft, gut! Bei meinen Treibern war wegen dem 10kOhm Widerstand die Spannung zu hoch für den Enable Pin. In etwa 1,6V.
Mit dem 1kOhm Widerstand kommt man deutlich unter 1V und der Treiber schaltet zuverlässiger. Denn wenn Enable auf GND ist der Treiber aktiv. Ist die Spannung zu hoch geht er aus.