Tillboard Extension

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.

Mein Bedienpanel als Beispiel

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 fertigen / besorgen

Falls Du keine Lust hast die Platine und Bauteile selbst zu besorgen, schreib mich gern über meine Facebook Seite oder per E-Mail(blog@altholtmann.com) an.

Möchte man 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

Außerdem habe ich hier noch die Stückliste bzw. meinen Reichelt Warenkorb:

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.

BauteilBeschreibungProduktlink
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.

A4988Falls 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

BeschriftungFunktionBeschreibung
JP2 / JP3MicrosteppingMicrostepping Einstellung der Treiber. Unbedingt die gleiche Microstepping Einstellung für beide Motoren einer Achse nutzen.
JP4 / JP5Fault / TreiberFault Jumper beim DRV8825 Treiber.
Muss beim A4988 gesetzt sein.
JP6OUT VoltageDieser 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.
JP8Autosquare configuse 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.
J4Panelanschluss KonfigurationCon1 – 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 / T212V in/outHier das Netzteil anschließen. Der zweite Terminal kann genutzt werden, um das Tillboard mit Strom zu versorgen.
T35V inOptional. Als Sicherheit gedacht, falls der Transistor auf dem Tillboard überfordert ist. Kann erstmal frei gelassen werden.
X2 Motor / Y2 MotorMotor AnschlüsseA1, A2, B1, B2 der Motoren. Falls der Motor falsch herum dreht einfach den Stecker einmal drehen.
X2 OUT / Y2 OUTTreiber externHier sind die STEP und DIR Signale für die Verwendung mit externen Treibern.
IN9-14Eingänge 9-14Diese 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-8Ausgänge 3-8Bei 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.
ENAEnable der TreiberLeider 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

BeschriftungBeschreibung
L1Zeigt an, ob 5V auf dem Board verfügbar ist
L4Zeigt 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

Ich nutze eine etwas hochwertigere Lötstation von Ersa und bin bestens zufrieden. Hauptsächlich nutze hierbei die feine Lötspitze mit 0,8mm Durchmesser.


PCB Halterung

Kann man sich selbst aus dem 3D-Drucker ausdrucken. Hat sich absolut bewährt.
Thingiverse


Lötzinn

Ich löte nur mit bleihaltigem Lot, fällt mir wesentlich leichter als mit bleifreiem Lot. Ich will aber auch nicht ausschließen, dass ich einfach zu blöd bin 😅. Hab mal verlinkt was ich mir letztens gekauft habe.


Pinzette

Meiner Meinung nach unverzichtbar. Hiermit können die Bauteile sehr leicht an ihrer Stelle gehalten werden. Man fixiert das Bauteil und dreht dann die Platine um und kann das Bauteil einfach fest löten. Gibt es in verschiedenen Ausführungen und Längen.


Entlötpumpe

Falls sich Pads verbinden oder zu viel Lötzinn aufgetragen wurde. Mir reicht so ein billiges Exemplar bis 5 € vollkommen.


Seitenschneider / Kabelschneider

Die Funktion muss ich wohl nicht erklären 🙂

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.

  1. 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.
  2. 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“.
  3. Als Nächstes kann 12-36V angeschlossen werden. Die andere LED sollte aufleuchten.
  4. 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:

EingangAchse
IN5X1
IN6X2
IN7Y1
IN8Y2

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.

9 Gedanken zu „Tillboard Extension“

  1. 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.

    Antworten
  2. 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.

    Antworten
    • 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.

      Antworten
  3. Hi Timo, beim compilen der Version 2.0 mit der Option für den Tempsensor und ein Display gibt es bei mir einen compiler Fehler ‚call of overloaded ‚print(uint64_t&)‘ is ambiguous‘ in der Zeile ‚display.print(lastReadTemperature);‘ der Funktion ‚void updateTemperatureSensor()‘.

    Bei der Version 1.1 funktioniert das compilen so einwandfrei.

    Antworten
  4. HI, ich hab das Board nun mit Endstufen von Stepper online ausgestattet da ich mit den Mini Treiber starke Verluste hatte beim Verfahren. MIt den Endstufen sind sie immer noch vorhanden, schwacher aber noch spür und sichtbar. Kann ein defektes Bauteil auf dem Board das Problem verursachen? Mit dem Arduino mit CNC Shield verfährt die Maschine ohne Probleme. Sind DM556T Treiber. Hab aber langsam eher die Vermutung das es ein Problem am Board gibt.

    Antworten
  5. Hi vielen Dank für Deine sofortige Antwort. Da ich es an IN angeschlossen habe und GND (mit Magnet) am Fräser habe und es sofort auslöst (rotes Feld in Estlcam) werde ich das Kabel (ehem. Stromkabel) gegen einen dünneren Draht austauschen und mich wieder melden.

    Antworten

Schreibe einen Kommentar