3D-DIY.de

Upgrade: MKS SGEN_L 32bit Mainboard & TMC2209 Treiber

Bisher werkelten in meinem Tornado ein MKS Gen L Mainboard mit 8bit ATmega Prozessor und die superleisen Trinamic TMC2130 Treiber. Ein Kritikpunkt, der bei den 2130 immer wieder laut wurde war, dass sie etwas zu wenig Power an die Motoren geben, weshalb in vielen Foren zumindest für den Extruder andere Treiber empfohlen wurden.

Ich konnte soweit über mein Setup nicht klagen. Nur bei Drucken mit vielen Retracts kam es ab und an zu Aussetzern beim Extruder, die sich hin und wieder in unschönen Fehlern im Druck zeigten.

Vor einiger Zeit kam dann aber Martin vom Online Shop Coq au lo-res auf mich zu und fragte, ob ich Lust habe, das neu erschienene MKS SGEN_L 32bit Mainboard (quasi ein direkter Konkurrent zum SKR Mainboard) im Bundle mit den auch noch sehr frischen TMC2209 Treibern zu testen. Mein Urteil werde ich hier noch in einem separaten Beitrag veröffentlichen. Heute soll es um den Umbau selbst gehen.

Fakten zum MKS SGEN_L

Das Makerbase MKS SGEN_L Mainboard vertritt eine neue Generation der Steuerung von 3D-Druckern. Anstelle eines einfachen 8bit Prozessors, ähnlich einem Arduino, arbeitet es mit einem 32bit Cortex-M3 LPC1768 Prozessor. Das erweitert die Möglichkeiten der Firmware und führt insbesondere bei komplexen Steuerungen zu deutlichen Verbesserungen in der Qualität und Geschwindigkeit des Drucks.

Rein äußerlich entspricht es in den Abmessungen und der Position der wichtigsten Anschlüsse dem beliebten 8bit Vorgänger MKS Gen L und passt damit hervorragend in Drucker, die zuvor mit diesem Board bestückt waren. Im Gegensatz zu seinem großen 32bit Bruder, dem MKS SGen verfügt es aber über weniger I/O und Erweiterungsmöglichkeiten.

Der große Vorteil des neuen Designs liegt darin, dass sämtliche Verbindungen für SensorlessHoming und die erweiterte Kommunikation zwischen Treibern und Mainboard bereits integriert sind. Das aufwändige Verkabeln entfällt also komplett!

Fakten zu den TMC2209 Treibern

Die neu entwickelten TMC2209 Steppertreiber kombinieren beliebte Features der Vorgänger und bringen weitere Verbesserungen und Neuerungen mit. Im Gegensatz zu den TMC2130 setzen sie nicht auf SPI als Kommunikationsprotokoll zum Mainboard sondern auf UART, genau wie die TMC2208.

StallGuard, die Funktion zur Erkennung von Kollisionen, die das sensorlose Homen ermöglicht, fehlte bei den 2208 Treibern. Die 2209 haben dies nun in einer verbesserten Version an Bord. (Wobei zum Zeitpunkt des Verfassens dieser Anleitung Sensorless Homing nicht mit allen verfügbaren Treibermodulen möglich war, unter anderem auch nicht mit den MKS TMC2209. Die Silent StepSticks von Watterott beherrschen Sensorless Homing)

Außerdem liefern die neuen Treiber höhere Motorströme und können so mehr Kraft auf die Stepper bringen und neigen damit weniger dazu, Steps zu verlieren. Auch schnellere Bewegungen und schwerere Druckerkomponenten, sind nun keine Probleme mehr.

Hardware Installation

Die Installation ist denkbar einfach. Insbesondere, wenn aktuell bereits ein MKS Gen L Mainboard verwendet wird, können die Kabel für Stromversorgung, Lüfter, Thermistoren und Heizungen einfach 1:1 getauscht werden.

Wenn du bislang noch nicht an der Steuerung deines Druckers gearbeitet hast, nimm dir die Zeit und lese die folgenden Schritte einmal genau durch. An einzelnen Stellen bin ich nicht auf jedes Detail eingegangen, da vieles sehr ausführlich schon einmal beim Umbau auf MKS Gen L und TMC2130 beschrieben wurde. Dort findest du auch Beschreibungen der einzelnen Anschlüsse, die sich beim 8bit Gen L und dem 32bit SGEN_L in den meisten Fällen gleichen.

Hast du aktuell noch ein anderes Board im Einsatz, empfehle ich dir, zunächst alle Kabel zu beschriften und Fotos vom bestehenden Setup zu machen. So kannst du im Zweifel immer wieder zum Anfang zurück und Fehler schneller ausmachen.

Beim Anschluss der Kabel solltest du unbedingt auf die Polarität der einzelnen Leitungspaare achten. In der Regel wird rot für positiv und schwarz oder blau für negativ verwendet. Die MKS Boards haben die kleine Stolperfalle, dass nicht bei allen Anschlüssen + und – an der gleichen Stelle sind. Schaue daher genau auf die Beschriftung und prüfe alle Kabel nocheinmal, bevor du den Strom das erste Mal anschaltest.

Treiber einsetzen

Je nachdem, welche Treiber du verwendest, können die Stiftleisten farbcodiert sein oder sie sind alle in der gleichen Farbe. Die MKS Treiber haben eine grüne und eine schwarze Leiste, entsprechend der Gegenstücke auf dem Mainboard.

Wenn alle Leisten die gleiche Farbe haben gilt: Die Beschriftung sollte lesbar sein und die drei dreieckig angeordneten Pins sind auf der linken Seite, wenn das Mainboard mit den Treiberanschlüssen nach oben vor dir liegt.

Außerdem solltest du, wie bei allen Trinamic Treibern, darauf achten, dass der eigentliche Treiber-Chip nicht auf der Oberseite, sondern auf der Unterseite sitzt, solltest du die Pins selbst anlöten müssen.

Da auch eine direkte Verbindung zu den Endstopps auf dem Board vorhanden ist, kannst du den dafür nötigen DIAG Pin ebenfalls nach unten weisend auf den Treiber löten. Hier lauert aber auch die erste Fehlerquelle!

Bisher war der DIAG Pin immer an der oberen linken Ecke der Module zu finden. Viele Treiber von chinesischen Anbietern nutzen dieses Design auch noch bei den 2209. Watterott, die das ursprüngliche Layout für die StepSticks mit Trinamic Treibern entwickelt und unter OpenSource Lizenz veröffentlicht haben, stellen inzwischen auf eine neue Version um. In der ist DIAG eine Position nach unten gerutscht.

Es ist also wichtig zu prüfen, von wem deine Treiber stammen und auf welchem Layout sie basieren. Im Watterott V2 Layout ist der alte DIAG Pin nun mit INDEX belegt. Dieser Pin gibt bei jedem vollen Schritt einen Impuls aus und sollte daher nicht mit einem Pin versehen werden.

Jumper setzen

Das MKS SGEN_L kommt mit einer Reihe von Kurzschlussbrücken (Jumper), über die Funktionen konfiguriert und Verbindungen hergestellt werden. Durch das Schließen der UART Brücke für jeden Treiber wird die Kommunikation mit dem Mainboard ermöglicht.

Quelle: https://github.com/makerbase-mks/Datasheet/blob/master/English%20datasheet/MKS%20SGEN_L%20Datasheet.pdf

Eine weitere Reihe zu schließender Brücken befindet sich über den Endstopp Anschlüssen. Für jede Achse, bei der Sensorless Homing verwendet werden soll, muss per Jumper die Verbindung geschlossen werden. Also für X und Y die ersten beiden von links. Dadurch wird der Sockel für den DIAG Pin direkt mit dem Endstopp verbunden, es ist kein zusätzliches Kabel nötig.

Eventuell nötige Hardware-Hacks

Zumindest im Fall des SGEN_L und wohl auch beim SKR Mainboard sind, je nach verwendeten Treibern, ein paar kleine Hacks nötig. Die MKS TMC2209 aus dem Coq au lo-res Bundle konnte ich ohne Modifikationen einsetzen und UART nach Anpassung der Firmware nutzen. Sensorless Homing funktionierte allerdings so nicht. Soweit ich bisher weiß, ist es mit den aktuellen Versionen der MKS Treiber auch nicht möglich.

Zum Vergleich habe ich auch TMC2209 Treiber von Watterott gekauft. Mit denen konnte ich auch Sensorless Homing ohne Probleme nutzen, die Treiber lassen sich aber nicht zu 100% Plug&Play verwenden.

Du musst dich hier also am besten schon vor dem Umbau entscheiden, was dir wichtig ist: Wenn du Plug&Play mit möglichst wenig Aufwand möchtest, dabei aber auf Sensorless Homing verzichten kannst, dann greifst du am besten zum Paketangebot von Coq au lo-res. Willst du unbedingt Sensorless Homing nutzen und scheust die nötigen Hacks nicht, dann sollten mindestens zwei Treiber von Watterott für die X und Y Achse auf deiner Einkaufsliste stehen. Das SGEN_L Mainboard bekommst du natürlich auch separat, ohne Treiber.

UART mit Watterott V2 Treibern

Damit du UART auf dem SGEN_L mit Watterott V2 Treibern nutzen kannst, muss in der unteren Reihe der vierte Pin weggelassen bzw. abgeknipst werden. Außerdem kommen die Treiber ab Werk mit einer offenen Lötbrücke. Die muss geschlossen werden um UART zu aktivieren.

Auf der Unterseite des Treibers befinden sich drei kleine, nebeneinanderliegende Kontakte. Der mittlere geht zum Treiberchip, die beiden äußeren sind mit dem 3. und 4. Pin der unteren Reihe verbunden. Je nachdem, mit welchem Kontakt der mittlere durch eine Brücke aus Lötzinn verbunden wird, steht UART über den 3. oder 4. Pin zur Verfügung.

Quelle: https://github.com/watterott/SilentStepStick/blob/master/hardware/SilentStepStick-TMC2209_v20.pdf

Für unseren Fall schließen wir die Brücke zum unteren Pin (rot eingerahmt). Verwende dafür eine möglichst dünne Lötspitze und achte auf die umgebenden Komponenten! Ich habe leider bei einem Treiber den benachbarten Kondensator C2 zu sehr erhitzt, sodass er sich gelöst hat und am Lötkolben klebte. Leider sind die Dinger winzig und ich habe ihn nicht mehr gefunden. zum Glück habe ich Ersatz bekommen und konnte den neuen Kondensator wieder anlöten. Gute Beleuchtung und evtl. etwas Vergrößerung durch eine Lupe oder ein Mikroskop sind hier empfehlenswert!

Wenn du V2 Treiber verwendest, die DIAG an der neuen Position haben, dann musst du jetzt dein Mainboard umdrehen. Zwar ist auch an der neuen Position ein Anschluss vorhanden, der ist aber auf dem Board nirgendwo angeschlossen. Die einfachste Lösung ist daher, ein Stück Draht zu nehmen und die beiden vertikalen Pins der X und Y Treiberblöcke miteinander zu verlöten. So werden beide Anschlüsse mit den Endstopps verbunden.

Zu guter Letzt ist noch ein zusätzlicher Jumper auf dem Mainboard nötig: Unter den Treibern befindet sich jeweils ein ganzer Block von offenen Pins. Der Jumper wird so platziert, dass die mittleren Pins der beiden unteren Reihen überbrückt werden.

Wer mehr zu diesen Hacks wissen will, findet Fotos und Hintergründe in einem entsprechenden Thread auf Github.

Firmware

Da es sich um ein 32bit Board handelt ist auch eine Firmware nötig, die die entsprechende Architektur unterstützt. Das SGEN_L Läuft mit Smoothieware und Marlin 2.x. Da ich mich hier besser auskenne, ist meine Wahl logischerweise auf Marlin gefallen.

32bit Support gibt es erst ab dem 2.x Zweig von Marlin. Da diese Version aber nach wie vor in Entwicklung ist und noch kein finales Release steht, arbeiten wir hier mit Beta-Firmware, die vereinzelte Bugs haben kann. Auch während der Erstellung meiner Firmware gab es ein paar grundlegende Anpassungen, ohne die Mein Setup evtl. auch gar nicht laufen würde.

Natürlich findest du hier auch meine aktuell verwendete Firmware zum Download. Du findest im Paket alle Dateien, um eigene Anpassungen vorzunehmen und natürlich auch die fertige .BIN Datei, die du einfach direkt auf dein Board laden kannst. Im nächsten Schritt erkläre ich kurz, wie du eigene Firmware für dein Board vorbereitest.

Tornado Marlin 2.0.3 für 32bit MKS SGEN_L mit TMC2209, E3D V6 Hotend und BLTouch

Entwicklungsumgebung einrichten

Um eigene Firmware zu erstellen benötigt man etwas komplexere Software, als die Arduino IDE. Nach Lektüre in der Marlin Doku und etwas Testen bin ich bei Microsoft Visual Studio Code hängen geblieben. Mein bevorzugter Editor ist eigentlich Sublime Text 3. Auch damit würde es gehen, ich hatte aber ein paar Probleme beim Compilen. Mit Visual Studio lief es dann.

Zusätzlich wird Platform.io benötigt, das den Support für die verwendeten Prozessoren mitbringt. Den gesamten Setup-Prozess kannst du in der Marlin Doku nachlesen.

Firmware aufspielen

Im Gegensatz zu Arduino basierten Boards wird die Firmware nicht direkt von der IDE per USB aufs Board übertragen, sondern eine BIN Datei erstellt, die dann auf einer Micro-SD gespeichert wird. Beim nächsten Start liest das Board die Datei aus und aktualisiert seine Firmware.

Das Beschreiben der SD Karte ist über einen handelsüblichen Cardreader möglich. In den meisten Fällen wird das Board beim Anschluss an einen PC auch als Speichermedium erkannt und kann direkt beschrieben werden.

Das Update der Firmware über Octoprint klappt übrigens auch hier wieder. Es müssen nur ein paar Einstellungen angepasst werden:

Abschluss

Wenn alle Verbindungen hergestellt sind und die Firmware erfolgreich geflasht ist, kannst du deinen ersten Testdruck starten. Denke daran, dass du ein völlig neues Board hast. Das heißt alles, was du bisher an Kalibrierungen usw. vorgenommen hast, ist nicht mehr vorhanden. Auch ein eventuell eingelesenes Mesh zum Auto Bed Leveling muss neu erstellt werden.

Eventuell passen für dein Setup einzelne Werte aus der Firmware noch nicht. Im Speziellen das Sensorless Homing ist mit einem Standardwert voreingestellt. Teste das Homing zunächst auf einer Achse (G28 X bzw. G28 Y). Wenn die Achse sich kaum bewegt oder ohne zu stoppen ans Ende fährt, musst du einen höheren oder niedrigeren Wert einstellen.

Im Gegensatz zu den 2130 Treibern reicht die Empfindlichkeit bei den TMC2209 nicht von -64 bis +63, sondern von 0 bis 255. Über den Gcode M914 kannst du bspw. per OctoPrint neue Werte vergeben bzw. die aktuellen auslesen. Starte zur Sicherheit eher mit hohen Werten und taste dich dann in kleinen Schritten weiter nach unten. Hast du einen funktionierenden Wert für beide Achsen gefunden, speichere die neue Konfiguration mit M500.

MKS SGEN_L kaufen

Habe ich dein Interesse geweckt? Ein neues Makerbase MKS SGEN_L Mainboard kannst du wie immer bspw. direkt über Aliexpress bestellen oder du wählst den schnelleren Versand, direkt aus Deutschland und bestellst bei Coq au lo-res.

War das Tutorial nützlich für dich?

Dir hat das Tutorial gefallen, du konntest es für dich selbst umsetzen oder den entscheidenden Anstoß für dein Projekt mitnehmen? Das freut mich!

Wenn du magst, kannst du dich mit einem Kaffee erkenntlich zeigen.

Kennst du die schon?

48 Kommentare zu „Upgrade: MKS SGEN_L 32bit Mainboard & TMC2209 Treiber“

  1. Hallo, kann ich davon ausgehen, dass das stock Display des Sidewinders X1 und auch der USB/Micro SD Steckplatz des Sidewinders X1, auch weiterhin mit dem MKS SGEN L funktioniert? Wenn ja, muss dazu etwas in der Marlin Firmware eingetragen werden?

    1. Hallo Walter,

      das kann ich pauschal nicht sagen, weil ich das Display vom Sidewinder nicht kenne. Aber wenn es mehr oder weniger so aufgebaut ist, wie andere Standard-Displays, dann sollte es gehen. Ggf. muss der SD-Card Support aktiviert und/oder in Marlin ausgewählt werden, welcher Slot zu verwenden ist. Ich konnte es sowohl mit dem RepRap Discount Full Graphic Smart Controller, als auch mit dem BTT TFT35 E3 V3 erfolgreich zum Laufen bringen.

  2. Danke für deine schnelle Antwort.
    Mh, dann lass ich das lieber. Mache eh alles bequem über Octopi.

    Jetzt hab ich doch noch ein Problem. Mein axialer Noctualüfter der Parallel zu den 2 Radial Sunon gelötet ist läuft nun bei Marlin 2 erst ab M106 S250. Davor (Marlin 1.1.9) hat alles auch unterhalb funktioniert. Vorallem bei 86% waren alle dadurch total leise. Woanders ranklemmen möchte ich ihn eigentlich nicht.
    Finde irgendwie nicht raus, warum die nun die Radiallüfter wie immer super laufen und nur der Axiale erst bei 98% startet.

    Jemand ne Idee?

  3. Hi,
    danke für die letzte Antwort. Irgendwie funktioniert die direkte Antwortfunktion nicht. Öffnet sich nix nach klicken.

    Heute endlich Zeit gefunden und läuft super. sGen L V2 mit TMC2209 V2, UART, BLTouch, Marlin 2.0.7.2 und dem reprap discount display. Zudem natürlich Octopi dran hängend.

    Wie sieht es eigentlich aus mit dem MKS TS35 und so. Funktioniert das nun auch parallel mit Octopi am USB?
    Mein altes MKS Gen L V1 mit Octopi konnte sich nicht parallel mit dem TFT32 verbinden.
    Hat sich da was getan? Oder kann das prinzipiel nicht funzen?

    Grüße und danke!

    1. Hallo Tim,

      ich kann aus eigener Erfahrung nur für das BTT TFT35 E3 sprechen, das ich auch im Shop anbiete. Dort ist es in Verbindung mit dem MKS SGEN_L so, dass das Board eine zweite serielle Verbindung aufmachen kann. An einer hängt das Display und die andere ist die USB Verbindung zum Pi. Im Prinzip geht das, aber 100% stabil war die Verbindung bei mir nicht und es kam ab und an zu merkwürdigem Verhalten im Druck.

  4. Hi,
    bin gerade dabei für mein neues sGen L V2! Board (komme vom Gen L, davor Cr-10) das neuste Marlin zu configurieren. Ich hab mal nicht deine komplette Vorlage genommen, da dort (Marlin) noch nicht die V2 meines Boards integriert ist.
    Jetzt hab ich schon configuration.h angepasst und frage mich ob du in der adv.h Datei auch was angepasst hast. Bevor ich mich da reinstürze. Ich hoffe du sagst nein.

    1. Hallo Tim,

      doch, da musst du auch ran. Aber viel ist es nicht. Ich würde dir, falls du es nicht eh schon so machst, ein Tool empfehlen, dass zwei Dateien nebeneinander anzeigen und Unterschiede hervorheben kann. So sind die Anpassungen recht schnell von meiner Vorlage auf deine jungfräuliche configuration_adv.h übertragen. Ich nutzte zu dem Zweck bspw. Sublime Text.

    1. Hi Simon,

      du versuchst also Z ohne Endstopp, sensorlos zu homen? Das ist inzwischen zwar möglich aber rein experimentell und auch nicht wirklich zu empfehlen.
      Wenn du das mit der hier angebotenen Firmware ohne Änderungen probierst, geht es auf jeden Fall nicht, denn dort ist die Funktion nicht aktiv. Sensorless Homing ist bei mir nur auf X und Y aktiv.

  5. Ich hatte ähnliche Probleme mit Repetier Server. folgende Einstellungen haben Abhilfe gebracht

    …erster Port:
    #define SERIAL_PORT -1

    zweiter Port:
    #define SERIAL_PORT_2 0

    #define BAUDRATE 250000

  6. Hallo, klasse Beitrag! Und konnte ihn endlich umsetzen. Ich hatte bereits meinen CR-10 Mini mit dem Mks Gen l und Tmc2130 nach deinem Beitrag umgebaut. Jetzt liegt das SGEN schon ne Weile hier rum und nun kamen auch endlich die MKS TMC2209 V2.0. Marlin 2.0.6 hat ich bereits auf den CR-10 angepasst und dann gleich Karte rein und ersten Testdruck. Alles super und noch leiser als mit MKS GEN l und TMC2130. Sensorless Homing für x und y funktioniert mit den MKS TMC2209 V2.0.
    Aber nun steck ich fest. Ich wollte nun auch wieder Octoprint nutzen, aber das funkt jetzt gar nicht mehr. Geh ich in Octoprint auf Verbinden, wird für ca 5sec eine Verbindung aufgebaut („Bereit“ wird angezeigt) aber bringt mir dann eine Fehlermeldung. Offline(Error: SerialException: ‚device reports readiness to read but returned no data (device disconnected or multiple access on port?)‘ @ comm.py:_readline:2823) Will ich wieder verbinden ist der Port /dev/ttyACM0 in Serialport nicht mehr vorhanden. Hab jetzt auch bereits mit deiner Marlin Version ( angepasst auf CR-Mini) probiert und mit Octoprint 15.1 bis 17.0, USB Kabel gewechselt, immer das gleiche. Wenn ich nach der Fehlermeldung in Octoprint, „Octoprint neustarte“ oder „System neustarten“ auswähle, ist der Port dev/ttyACM0 immer noch weg. Die USB Ports am Raspberry durch probiert, auch ohne Webcam. USB Port am SGEN defekt?Vielleicht eine Idee? Gruß

    1. Hallo Dirk,

      das SGEN_L hat zwei Serielle Ports, die beide in der Firmware eingerichtet sein müssen. Evtl. liegt da das Problem, dass du keine Verbindung aufbauen kannst. Ich drucke mit meinem Tevo Tornado ausschließlich via OctoPrint und hatte da bisher keine Probleme mit der Verbindung seit dem Umbau auf das SGEN_L.
      Welches Display hast du denn dran? Vielleicht blockt das auch den seriellen Port oder versucht parallel drauf zuzugreifen.

  7. Christian Röckl

    Servus;

    Hab alles installiert und angeschlossen Programm geht auch nur der Extrudermotor geht nicht.

    Hab es schon mit einem anderen Kabel versucht mit nen anderen Motor nichts hat funktioniert der extruder rührt sich nicht. An was könnte das liegen?

    1. Mein erster Gedanke wäre die Hotend Temperatur. Marlin ist so konfiguriert, dass man nichts durch das kalte Hotend drücken kann. Macht in der Regel ja auch keinen Sinn. Erst ab 170°C am Hotend ist der Extruder Motor aktiv, vorher wird der blockiert, sofern man das nicht explizit deaktiviert.

    2. Vielleicht weit hergeholt aber „alles geht mit den 2209 außer Extruder‘ klingt nach meinem Problem mit dem skr 1.3…
      Hattest du mittlerweile ne Lösung gefunden? Ich bin mittlerweile nämlich total planlos

  8. Christian Röckl

    Komisch ich schreibe und wenn ich es abschicke ist es weg?

    Ich wollte nun doch ohne sensorless homing betreiben einfach nur

    Tevo Tornado TMC 2209 das neue 32 Bit Board ( ich hab den satz von cocolores) BL touch und UBL.

    Hast du da auch eine fertige Firmware?

    Was muss ich da Hardware technisch machen ?

    1. Hallo Christian,

      ich habe gerade nochmal nachgeschaut, die bereits verlinkte Firmware (https://www.3d-diy.de/download/tornado-marlin-2-0-4-4-fuer-32bit-mks-sgen_l-mit-tmc2209-stock-hotend-und-bltouch/) ist ohne Sensorless Homing. Die passt also genau auf das, was du vorhast und sollte 1:1 bei dir benutzt werden können.

      Wenn du weitere Fragen hast, kannst du mich auch gern per Mail oder über die Nachrichtenfunktion auf der Facebook Seite anschreiben, das geht meistens schneller auf diesem Weg Hilfe zu leisten.

      1. Christian Röckl

        Ok das mit der Firmware sagtest du passt, was muss ich am Board noch ändern?

        Z.B. muss ich auch den Anschluss für das Display rausziehen und drehen wie auf den MKS Gen L Board?

        Muss ich bei den Jumpern auf etwas genaues achten?

        Vielen Dank

        Christian Röckl

  9. Hallo, danke für den Beitrag aber ich komme da noch nicht ganz weiter. ich nutze die MKS TMC2209 mit dem MKS SGEN L 32 Bit. Sobald ich die Motoren aktiviere, gibt es ein lautes Pfeifen (ohne Bewegung) in den Motoren. Die Bewegungen sind auch nicht leise aber fahren ist kein Problem. Stecke ich die alten TMC2208 Treiber ein und ändere nur den Treiber Typ in der Config, ist sofort Ruhe. Ich habe sogar schon die TMC2209 gegen einen anderen Hersteller gleichen Typs getauscht aber auch damit das selbe Problem.

    1. Hallo David,

      das kenne ich so zumindest noch nicht. Ich nehme an, du betreibst die Treiber auch mit UART. Sind alle Jumper entsprechend gesetzt, sodass die Kommunikation ohne Probleme klappt?
      Wenn die Bewegungen sehr laut sind, klingt das ja erstmal, als wären die Treiber im SpreadCycle. Aber von allein sollten sie nicht in diesem Modus laufen, solange die UART Verbindung klappt.

      Im neueren Treiber-Layout (wie auch im Beitrag zu den Watterott Treibern beschrieben) gibt es ja einen SPREAD Pin, über den zwischen SpreadCycle und StealthChop gewählt werden kann. Die MKS Treiber hatten den eigentlich bislang nicht. Aber wenn es da inzwischen ein neues Layout gibt könnte der natürlich das Problem sein. In dem Fall müsstest du den entsprechenden Pin dann abknipsen, wie hier auch für die Watterott Treiber beschrieben wurde.

  10. Guten Tag,

    Ich möchte die neuen Treiber mit den Board nutzen, sensorles Homing ist mir nicht so wichtig aber bl Touch und Ubl geht das damit?
    Was benötige ich und welche Software.

    Vielen dank

    Christian

    1. Hi Christian,

      geht auf jeden Fall. Damit ich dir auch wirklich die passende Firmware empfehlen kann, brauche ich nochmal alle Infos zu deinem aktuellen Setup: TMC2130, BLTouch habe ich verstanden, sensorless wäre oprional, liebe klassische endstopps weiter nutzen. Welches Board hast du verbaut, das originale MKS Gen L?

      1. Christian Röckl

        Guten Tag,

        ich versuche nun schon zum 6. mal zu schreiben, ich nutze einen Tevo Tornado alte Generation mit Original Hotend und BL Touch. verbaut waren ein MKS Gen L board und 2130 Treibern mit UBL und sensorless homing.
        Da mein Board abgeraucht ist und sich die Platzverhältnisse zum Positiven verändert haben baue ich gerade die Säuerung etwas optimaler auf ich hasse es, wenn alles so eng aufeinandersitzt.
        Außerdem benötige ich eh ein neues board und Treiber.
        Deshalb kaufte ich das Board von cocolores mit den 2209 Treibern und noch 2 extra Treiber von Watterot. Vielleicht klappt das gelöte für sensorless Homing ja.
        Gibt es eine Firmware für das 32 Bit board mit sensorless Homing und UBL BlTouch und Standard Hotend?
        Frage deshalb bin nämlich ein sehr schlechter Programmierer. Gruß

        Christian Röckl

  11. Zitat: „Die einfachste Lösung ist daher, ein Stück Draht zu nehmen und die beiden vertikalen Pins der X und Y Treiberblöcke miteinander zu verlöten. So werden beide Anschlüsse mit den Endstopps verbunden“

    Kannst du davon vielleicht ein Foto oder Skizze machen? Habe ich das richtig verstanden, dass der Diag Pin (vom Watterott v2) über ein Kabel mit den Anschlüssen der Endstopps verbunden wird, so wie man es schon bei den 2130er gemacht hat?

    1. Hallo Manuel,

      du könntest den DIAG Pin der 2209er auch bei diesem Board wieder ganz klassisch per Kabel auf den Endstop bringen. Aber die Tatsache, dass man das nicht tun muss, ist ja gerade das schöne hier. Ich habe zufällig ein Foto, auf dem die Brücken zu sehen sind. Ist nicht das schönste, aber vielleicht hilft es dir.

      Zum Bild

  12. Hallo Kevin, vielen Dank für den Beitrag. Kannst du die TMC2209 Treiber mit Marlins Linear Advance nutzen? Ich hatte es mit den TMC2208 versucht aber die hängen sich auf. Nach einer Internetrecherche fand ich heraus, dass die TMC Treiber dafür wohl generell ungeeignet sind. Es wäre schön wenn es mit den „neuen“ TMC2209 funktioniert.

    1. Hallo Marcel,

      im Bezug auf die 2208 kann ich da leider nichts sagen, da ich die nie im Einsatz hatte. Ich habe aber in meiner Firmware grundsätzlich Linear Advance immer aktiv, nur meistens den K-Wert auf 0 gesetzt, weil ich bisher nicht dazu gekommen bin, die Werte zu kalibrieren. Derzeit drucke ich aber mit Werten zwischen 0.11 und 0.22 mit den 2209ern und habe keine Probleme beobachten können.

      Wie äußert es sich denn bei dir, wenn die Treiber hängen bleiben? Bleibt der Drucker dann stehen und wirft einen Fehler aus oder wird einfach nur das Druckbild schlechter?

  13. Hallo, super Eintrag. der Hat mir bereits stark geholfen. Vielen Dank.

    Ich habe das SGEN L mit 4 Watterott TMC2209 V2.

    X, Y und Z funktionier super. Leise und alles wie gewünscht.

    Der 4te Pin ist überall weggelassen und die Lötbrücke wurde geschlossen. Auf dem Board wurde der UART Jumper gesetzt und in Marlin entsprechend der TMC2209 Treiber eingestellt.

    Mein Extruder funktioniert aber so überhaupt nicht. Beim Versuch den zu bewegen (10mm Schritt) zuckt der nur etwas hin und her. Bei den 1mm Schritt bewegt er sich zumindest, wenn man ihn sehr langsam bewegt, aber auch recht laut. Bei schnellem Bewegen springt der nur immer hin und her, teilweise auch in die falsche Richtung. Ich habe einen Ender 3 Pro.

    Weißt du, woran das liegen könnte?

    1. Hallo Michel,

      freut mich, dass der Artikel dir geholfen hat!

      Wenn der Extruder solche Macken macht, fallen mir mehrere mögliche Ursachen bzw. Lösungen ein:

      1. Kabel richtig angeschlossen? Wenn der Stecker verkehrtherum sitzt oder ein Kabel defekt ist, kann es sein dass die Bewegungen nicht stimmen oder gar keine passieren.
      2. Korrekte E-Steps eingetragen?
      3. Treiber defekt? Einfach mal die Treiber zwischen zwei Achsen auswechseln. Besteht das Problem dann immernoch auf E oder auf der anderen Achse?
      1. Hi,

        also Kabel sind OK, Treiber auch. Der Extruder bewegt sich beim Druck und beim M600 normal. Das Problem tritt auf, wenn ich über das LCD-> Achsen Bewegen -> E versuche den Extruder zu bewegen. Dann zuckt der Extruder hin und her, genau wie hier beschrieben:

        https://reprap.org/forum/read.php?249,517637
        Tausche ich X und E, funktioniert der Motor normal. Also scheint irgendwas beim Bewegen über LCD nicht richtig zu funktionieren.

        1. Also hattest du versucht mit kaltem Hotend via Display den Extruder zu bewegen? Das wäre auch meine nächste Vermutung gewesen. Der läuft aber nur, wenn genug Temperatur da ist, glaube default ab 150°C

        2. Ich möchte meine Lösung hier mitteilen. Das Hotend war immer heiß. Daran lag es nicht. Das Problem lag an der heruntergeladenen Config. Hier war bei

          #define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60}

          beim Extruder eine 0 eingetragen. Mit einem vernünftigem Wert, bspw. 60, funktioniert es.

        3. Hallo Michael,

          danke fürs Teilen deiner Lösung. Hattest du die Config hier bei mir runtergeladen oder von einer anderen Quelle?

  14. Ich moechte bei meinem Eigenbaudrucker (urspruenglich basierend auf einem Tevo Tarantula) jetzt auch auf eine 32bit Hardware und bessere Treiber umsteigen um Lautstaerke/Vibration runter zu kriegen und auch features der neuen Marlin 2.x Firmware vernuenftig nutzten zu koennen. Ich habe mich auch fuer MKS SGEN L + TMC2209 Treiber wie hier beschrieben entschieden. Ich habe auch schon verschiedene Marlin Versionen mit Arduino und mittlerweile auch mit vscode + platformIO kompiliert.
    Ich kriege aber jetzt genau diese Kombi MKS SGEN L + TMC2209 mit vscode + platform IO nicht compiliert. Es gibt immer diesen Fehler (kann natuerlich auch den detailierteren Log zur Verfuegung stellen):

    drivers.h:
    missing binary operator before token „(“

    Ich habe jetzt schon alle moeglichen Settings getest und es geht immer nur dann schief wenn ich TMC2209 (ohne Standalone) auswaehle. Wenn ich z.B. einen Standard Treiber wie den A4988 auswaehle compiliert es ohne Fehler durch. Mit dem fertigen .bin hier auf der Seite funktioniert uebrigens die Ansteuerung auch auf der Hardware, in diesen files sind aber natuerlich nicht alle settings so wie ich es braeuchte. Ich habe uebrigens neben den sourcen von dieser Seite auch andere Versionen (auch die 2.0.3) von der marlinfw.org Seite versucht mit gleichem Ergebnis.

    Meine Hauptfrage waere jetzt, habe ich hier irgendwas grundlegendes uebersehen (Einstellung, setting, fix, …) in der Kombo MKS SGEN L + TMC2209 oder ist hier mit einem bug in der Firmware zu rechnen (auf der anderen Seite habt Ihr es ja auch schon in dieser Kombo kompiliert bekommen, oder?)

    Deshalb

    1. Den Fehler kenne ich so erstmal nicht und er sagt mir leider auch erstmal nichts. An sich sollte die Version, so wie du sie hier runterladen kannst, laufen, denn ich benutze sie selbst auf meinem Drucker. Bisher war die veröffentlichte Version noch auf Basis einer Beta von Marlin 2.x erstellt. Da dieser Zweig aber inzwischen final ist, habe ich gerade eine aktualisierte Version erstellt und hochgeladen: Marlin 2.0.3 MKS SGEN_L ,mit TMC2209, UBL, BLTouch-Support und NeoPixel Statusanzeige

      Schau doch mal, ob du die erstmal ohne Anpassungen kompilieren kannst. Das sollte in jeden Fall gehen, hat jedenfalls bei mir vor 10 Minuten in VScode mit pIO auf dem Mac ohne Probleme geklappt. Wenn das geht, dann machst du am besten deine nötigen Anpassungen in den config-Files. Falls dabei Probleme oder Fragen auftreten, gern bei mir melden. Ich versuche zu helfen, wo ich kann.

  15. Danke für den Beitrag. Ich suche ebenfalls ein neues Board für meinen FlyingBear Tornado 2 Pro, da das alte Board Marlin 2.0 nicht unterstützt.
    Hier ist zur Zeit noch das MKS Gen L V1.0 mit 2208 v2.0 verbaut, aber mit der Druckgenauigkeit in „Y“ und der Rundheit bin ich noch nicht zufrieden.
    ich bin mir aber noch nicht sicher ob ich den 2209 oder eventuell auch den 2130 verbauen werde.

    1. Hallo Hans,

      das MKS Gen L unterstützt durchaus Marlin 2.x. Das funktioniert sowohl auf 8bit, als auch auf 32bit Boards. Aber es ist natürlich so, dass die 2.x viele Neuerungen und Funktionen mitbringt, die man auf einem alten 8bit Board entweder nicht nutzen kann oder die diese Boards an die Grenzen ihrer Leistungsfähigkeit bringen.

      Der Flying Bear ist doch ein CoreXY Drucker, richtig? In dem Fall würdest du wegen der komplexeren Kinematik auf jeden Fall von 32bit profitieren. Für etwas mehr Power an den Steppern würde ich dir eher zu den 2209 raten, wenn du eh komplett umbaust.

  16. If you modify the feedrate and the acceleration you are able to increase sensitivity to 100 or more without any false positive.
    In configuration_adv.h
    #define HOMING_FEEDRATE_XY (30*60) (default was 50*60)

    In g28.cpp
    planner.settings.max_acceleration_mm_per_s2[X_AXIS] = 500; planner.settings.max_acceleration_mm_per_s2[Y_AXIS] = 500; (default 100)

  17. Just my experience after 3 days. Be careful in case you have smoother conencted, sensitivity values are changing significantly. Without smoothers I need to input 70, with smoothers 20.

  18. To make the firmware compatible with the latest Marlin 2.0 build:

    REPLACE:
    /**
    * Junction Deviation
    *
    * Use Junction Deviation instead of traditional Jerk Limiting
    *
    * See:
    * https://reprap.org/forum/read.php?1,739819
    * http://blog.kyneticcnc.com/2018/10/computing-junction-deviation-for-marlin.html
    */
    #define JUNCTION_DEVIATION
    #if ENABLED(JUNCTION_DEVIATION)
    #define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
    #endif

    /**
    * Default Jerk (mm/s)
    * Override with M205 X Y Z E
    *
    * „Jerk“ specifies the minimum speed change that requires acceleration.
    * When changing speed and direction, if the difference is less than the
    * value set here, it may happen instantaneously.
    */
    #if DISABLED(JUNCTION_DEVIATION)
    #define DEFAULT_XJERK 8.0
    #define DEFAULT_YJERK 6.0
    #define DEFAULT_ZJERK 0.4

    #endif

    #define DEFAULT_EJERK 5.0 // May be used by Linear Advance

    WITH:
    /**
    * Default Jerk limits (mm/s)
    * Override with M205 X Y Z E
    *
    * „Jerk“ specifies the minimum speed change that requires acceleration.
    * When changing speed and direction, if the difference is less than the
    * value set here, it may happen instantaneously.
    */
    //#define CLASSIC_JERK
    #if ENABLED(CLASSIC_JERK)
    #define DEFAULT_XJERK 10.0
    #define DEFAULT_YJERK 10.0
    #define DEFAULT_ZJERK 0.3

    //#define LIMITED_JERK_EDITING // Limit edit via M205 or LCD to DEFAULT_aJERK * 2
    #if ENABLED(LIMITED_JERK_EDITING)
    #define MAX_JERK_EDIT_VALUES { 20, 20, 0.6, 10 } // …or, set your own edit limits
    #endif
    #endif

    #define DEFAULT_EJERK 5.0 // May be used by Linear Advance

    /**
    * Junction Deviation Factor
    *
    * See:
    * https://reprap.org/forum/read.php?1,739819
    * http://blog.kyneticcnc.com/2018/10/computing-junction-deviation-for-marlin.html
    */
    #if DISABLED(CLASSIC_JERK)
    #define JUNCTION_DEVIATION_MM 0.013 // (mm) Distance from real junction edge
    #endif

  19. Hallo. Tolle Seite und super Erklärungen. Ich war auf der Suche nach den Spezifikationen für UBL gegenüber Bilinear und bin hierauf gestoßen.

    Leider sind in den Downloads die Marlin Sourcen nicht drin. Ich kann also Configuration.h und Configuration.adv.h in der Marlin 2.0 nicht auf meine Steppertreiber ändern.

    Ich finde in den Downloads nur die fertige Firmware.bin
    Lade ich hier eine falsche Zip-Datei herunter?

    1. Hi,

      du hast Recht, da ist offenbar was beim Erstellen der ZIP schiefgelaufen. Ich bin gerade auf der Arbeit. Wenn ich nachher wieder zuhause bin und Zugriff auf die Originaldateien habe, werde ich das Archiv nochmal neu hochladen.

      Danke für den Hinweis!

      1. Ui, vielen Dank für diese superschnelle Antwort. Da bin ich aber mal begeistert, mit wieviel Engagement das hier betrieben wird.
        Ganz großes Lob. Nicht nur für die Inhalte, sondern auch für den „gar nicht so selbstverständlichen“ Support.

        Vielen Dank dafür. Dann freue ich mich auf später. Bin sehr gespannt, wie mein Drucker sich mit UBL dann gibt. 🙂

        1. So, sorry, hat doch einen Tag länger gedauert. Gestern Abend hatte ich so viele Bestellungen für die Elegoo Mars Displayfolien, die mussten erstmal produziert und verpackt werden 😀

          Ich hab alle Dateien jetzt nochmal neu gepackt und dabei gleich noch ein paar überflüssige Sachen rausgeschmissen. Download ist aktualisiert. Lad gern mal runter und sag mir, ob das jetzt bei dir passt.

          Und danke für das Lob!

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.