3D-DIY.de

TMC2130 Upgrade für Tevo Tornado

Letztes Update: 03.01.2019

Disclaimer

Die in diesem Dokument enthaltenen Empfehlungen wurden nach bestem Wissen und Gewissen, sowie anhand eigener Erfahrungen zusammengestellt und entsprechen dem Stand der Technik zum Zeitpunkt der Veröffentlichung. Ich kann daher keine Garantie für ihre Richtigkeit geben oder für ggf. entstandene Schäden haftbar gemacht werden. Wenn du dich entscheidest, deinen Drucker umzubauen, geschieht dies auf dein eigenes Risiko!

Materialliste

Da das von Tevo im Tornado verwendete Mainboard fest verlötete Treiber verwendet, ist für einen Umbau auf TMC2130 oder andere Treiber ein neues Mainboard erforderlich. Die gängigste Wahl sind hier entweder Mainboards von Makerbase (MKS Gen) oder die klassische Kombination aus Arduino Mega und Ramps 1.4. Die Boards von Makerbase gibt es derzeit in zwei Varianten: MKS Gen 1.4 und MKS Gen L 1.0. In dieser Anleitung gehen wir davon aus, dass das Gen L 1.0 verwendet wird, da es einen etwas kleineren, dem originalen Board relativ ähnlichen Formfaktor hat. Die meisten Punkte, egal ob Hardware- oder Software-seitig sind aber allgemeingültig.

Das zweitwichtigste Bauteil sind die Stepper-Treiber selbst. Hier gibt es eine Vielzahl an Modellen und Varianten. Wir wollen uns aber auf die Trinamic TMC2130 Treiber konzentrieren, da diese derzeit den größten Leistungsumfang bieten (z.B. leiser Betrieb im StealthChop und StallGuard für sensorloses Homing der X- und Y-Achse). Die TMC2130 Treiber werden als fertig konfigurierte Boards angeboten, die auf dem Mainboard aufgesteckt werden müssen. Ich empfehle die Module bei Watterott zu beziehen, um garantiert echte Treiber zu bekommen. Zudem bezieht sich sowohl diese Anleitung als auch die Standardeinstellungen der Firmware auf die Watterott Module. Chinesische Treiber (erkennbar am weißen Board und meist blauen Kühlkörpern) benötigen z.T. andere Werte in der Firmware oder zusätzliche Lötbrücken um den vollen Funktionsumfang zu unterstützen.

Daneben wird einiges an Kleinteilen und Werkzeugen benötigt.

Hardware

Werkzeuge

Alternativ bzw. optional

Vorüberlegungen zum Umbau

Das MKS Gen L Mainboard hat einen sehr ähnlichen, aber nicht exakt den gleichen Formfaktor, wie das Tevo Mainboard. Entscheidende Unterschiede gibt es bei der Position der Löcher für die Befestigung und bei der Position der USB-Buchse. Daher kann das Board nicht direkt an die Stelle des alten montiert werden. Nach einigen Überlegungen habe ich mich entschieden es um 90° gedreht einzubauen und die USB-Buchse zu versetzen. So wird die Gefahr von Kurzschlüssen durch die alten Verschraubungen ausgeschlossen und zusätzlich liegen die neuen Treiber genau im Luftstrom der Gehäuselüfter, was ihrer Kühlung sehr zuträglich ist.

Um das zu erreichen, habe ich eine Adapterplatte erstellt, die auf die alten Befestigungen gesetzt wird. Das neue Board kann mit M3 Schrauben direkt mit der Adapterplatte verschraubt werden, die Löcher sind entsprechend etwas kleiner, sodass die Schrauben sich beim ersten Eindrehen ein Gewinde schneiden.

Der USB Port kann an seiner ursprünglichen Position nicht wieder verbaut werden, da die Einbaubuchse hier nicht genügend Platz hat. Stattdessen habe ich die Buchse auf die Rückseite verlegt, was ich eh viel praktischer finde. Hier kann einfach das Kabel durch das große Loch nach außen geführt werden oder es wird eine neue Öffnung für die Buchse geschnitten.

Treiber vorbereiten

Watterott bietet die Silent StepStick TMC2130 Treiber in zwei Varianten an: Ohne Stiftleisten oder bereits komplett verlötet. Wer die letztere Variante gekauft hat, kann diesen Schritt überspringen. Bei den unverlöteten Treibern befinden sich zwei Stiftleisten mit je 8 Pins im Beutel mit den Treibern. Die eine Leiste wird komplett auf der Motorseite (Links vom Watterott Logo, bzw. oben, wenn “Silent StepStick lesbar ist) eingelötet. Bitte dabei darauf achten das der Treiberchip selbst nach unten weisen muss, ebenso wie die 8 Pins. Die andere Leiste wird mittels Seitenschneider geteilt in einmal 4 Pins, einmal zwei Pins und zweimal je ein Pin. Zwei Pins werden rechts unten an Dir und Step verlötet, ein einzelner auf der unteren linken Seite an En. Diese drei weisen ebenfalls nach unten. Die übrigen 5 Pins werden nun nach oben weisend verlötet, die vier zusammenhängenden an SDO, SDI, CS und SCK und der letzte, einzelne auf den obersten der dreieckig angeordneten Anschlüsse. (Siehe Zeichnung im nächsten Abschnitt)

Damit sind die Treiber bereits fertig für den Einbau und können auf dem Mainboard aufgesteckt werden. Welcher Treiber in welche Achse gesteckt wird spielt erstmal keine Rolle. Die Anschlüsse für die Achsen sind auf dem Board beschriftet: Mit den Treibern nach oben sind es von links nach rechts: X, Y, Z, E0 und E1. Die Motorseite der Treiber zeigt beim Einstecken nach oben, Richtung Anschlüsse, kommt also in die schwarze Leiste. Die nach oben stehenden Pins befinden sich auf der gegenüberliegenden Seite und diese Treiberseite wird entsprechend in die grüne Leiste eingesteckt. Unter den Anschlüssen befinden sich jeweils drei Jumper, die zur Konfiguration der Microsteps dienen. Die Jumper belassen wir alle dort, wo sie sind.

Als nächstes gilt es, alle benötigten Kabel zu konfektionieren, damit die Treiber und das Mainboard miteinander kommunizieren und somit ihr volles Potential entfalten können.

Verkabelung

Treiber und Mainboard kommunizieren über den SPI Bus miteinander, so können Statusinformationen der Treiber an die Firmware gesendet und Anpassungen an den Treibern vorgenommen werden, z.B. das Einstellen der Referenzspannung. Außerdem wird der Diagnose-Pin der Treiber an die Stecker der Endstops für X und Y auf dem Mainboard angeschlossen, damit das Sensorless Homing funktioniert.

Für eine möglichst saubere und übersichtliche Verkabelung habe ich verschiedene Kabelfarben in den benötigten Längen abgeschnitten und an den Enden mit DuPont Steckern versehen (bzw. JST für die Endstops) benötigt werden je Treiber 5 Leitungen:

SDI, SDO, SCK, CS und Diag. Die drei Leitungen SDO (Data out), SDI (Data in) und SCK (Clock) bilden den SPI Bus und haben nur jeweils einen Pin auf dem mainboard an den sie angeschlossen werden, die einzelnen Treiber werden parallel dort angehangen. Es gibt also nur eine Datenleitung auf der kommuniziert wird. Damit der jeweils richtige Treiber angesprochen werden kann, gibt es die CS (Chip Select) Leitung. Diese sind individuell für jede Achse. Die Diag Pins müssen im Prinzip nur an der X und Y Achse an die Endstops angeschlossen werden, da nur diese Achsen Sensorless Homing nutzen werden. Der Endstop der Z Achse wird in meinem Fall von einem BLTouch bedient. Das folgende Schema zeigt die Verkabelung der Treiber.

Achte beim Verkabeln darauf, dass alle Pins richtig miteinander verbunden sind und es keine Kurzschlüsse gibt. Wenn du hier etwas falsch machst, kann das im schlimmsten Fall das Mainboard oder die Treiber zerstören.

Bevor wir den Umbau der Hardware beenden können, müssen noch die Anschlüsse für Hotend, Thermistoren, Lüfter, Strom und das Display wieder verbunden werden. Die Anschlüsse sind jeweils deutlich markiert. Am besten machst du dir Fotos vom alten Board und kontrollierst die Kabel beim Anschluss am neuen. Auch ein kleines Label an jedem Kabel kann nicht schaden. Drei kleine Stolpersteine gilt es jetzt noch zu beachten:

  1. Der Bauteillüfter wird nicht wie beim originalen Mainboard mit einem Schraubverbinder angeschlossen, sondern hat einen JST Header auf dem Board. Du solltest das Kabel also mit einem passenden Stecker versehen (DuPont funktioniert auch, verrutscht aber leicht und dann bleibt der Lüfter aus)
  2. Die Belegung der EXP1 und EXP2 Header für den Anschluss des LCDs auf dem Gen L sind um 180° verdreht im Gegensatz zum Tornado Mainboard. Damit das Display funktioniert, ziehe einfach die Plastikrahmen mit einer Zange vorsichtig vom Board, drehe sie um 180° und stecke sie wieder auf, dann gehen die Stecker in der richtigen Orientierung hinein.
  3. Achte bei den Anschlüssen für Strom, Heatbed, Hotend und Lüfter auf die aufgedruckte Polarität, der 12/24 Anschluss für das Netzteil hat den – Pol links und + rechts. Bei den übrigen Anschlüssen ist es genau andersrum. Immer schwarz auf – und rot auf + legen!

Die alten Kabel der Endstops kannst du komplett aus deinem Kabelbaum entfernen, da die Endstops für die X und  Achse künftig direkt durch unsere neuen Treiber bedient werden. Auf der Z Achse gibt es kein Sensorless Homing. Da wir in dieser Anleitung davon ausgehen, dass bspw. ein BLTouch Sensor verwendet wird, um den Nullpunkt auf Z zu setzen, wird dieser wieder wie gewohnt an Z- angeschlossen. Hast du keinen solchen Sensor, bleibt der originale Endstopschalter an dieser Achse bestehen und wird auch wieder in die Z- Buchse eingesteckt.

Firmware

Damit unser Drucker mit der neuen Hardware funktioniert, sind einige Anpassungen in der Firmware nötig. Ich empfehle dazu eine relativ aktuelle Version der Marlin Firmware zu verwenden (auf der auch die originale Firmware des Tornados beruht). Ältere Versionen haben noch keine Unterstützung für die TMC2130 Treiber, da diese erst kürzlich implementiert wurde. Eine fertige Firmware auf Basis von Marlin 1.1.8 1.1.9 findest du im Firmware-Downloadbereich Folgende Features sind enthalten:

  • Volle Unterstützung für TMC2130 mit SPI Bus
  • HybridMode (StealthChop bis 100mm/s, SpreadCycle >100mm/s, bzw. 30mm/s für E)
  • Driver Health Monitoring (Schutz vor Überhitzung der Treiber)
  • Microstepping Interpolation auf 256 Microsteps
  • Sensorless Homing auf X und Y
  • TMC Debugging per Gcode M122
  • BLTouch Sensor mit Unified Bed Leveling (UBL)
  • Custom Bootscreen
  • Statusabhängige RGBW-Beleuchtung (erfordert weitere Verkabelung)

Für Tornados ohne BLTouch gibt es dort auch eine angepasste Version der Firmware, die die gleichen Features enthält, außer BLTouch und UBL.

Damit du verstehst, wie Marlin zu konfigurieren ist und du deine eigenen Anpassungen machen kannst, bzw. künftige Updates selbst erstellen kannst, zeige ich hier die wichtigsten Änderungen. Als Basis dient entweder eine bereits für den Tornado angepasste Firmware oder die aktuelle Standardversion von http://marlinfw.org/meta/download/.

Zum Öffnen und bearbeiten, lade dir die aktuelle Arduino IDE herunter. Beim Download der Firmware von der Marlin Website erhältst du eine ZIP Datei, die du zunächst entpacken musst. Darin findest du den Ordner Marlin, indem wiederum die Datei Marlin.ino liegt. Öffne diese Datei mit der Arduino Software. Du wirst sehen, es öffnen sich viele Tabs, in denen alle Files enthalten sind, die die Marlin Firmware bilden. Wir werden in drei dieser Dateien arbeiten:

  • Configuration.h
  • Configuration_adv.h
  • pins_RAMPS.h

Beginnst du mit der Standardversion sind einige zusätzliche Änderungen nötig, damit die Firmware mit dem Tornado arbeiten kann. Darauf werde ich jedoch nicht weiter im Detail eingehen. Meine Empfehlung, um eine funktionierende Version zu erhalten ist mit einer Software wie WinMerge eine funktionierende Tornado Firmware mit dem jungfräulichen Marlin zu vergleichen. Es genügt dabei, sich auf die drei oben genannten Dateien zu beschränken. WinMerge zeigt Unterschiede in den jeweiligen Dateien an und kann diese automatisch von einer Seite zur anderen übernehmen. So erhältst du z.B. die Konfiguration für die richtige Bed-Größe und vieles mehr.

Auf dieser Basis passen wir nun alle nötigen Punkte an, damit die Firmware auf dem MKS Gen L Mainboard mit TMC2130 Treibern läuft. Ich gehe dabei Dateiweise vor und zeige jeweils nur die relevanten Abschnitte. Bitte also selbst die entsprechenden Passagen suchen und anpassen. An den meisten Stellen ist dabei nur eine auskommentierte Zeile zu aktivieren, indem das vorangestellte “//” gelöscht wird. (Die gezeigten Anpassungen basieren auf Marlin Version 1.1.8, für neuere Versionen kann es vereinzelte Unterschiede geben. Die wesentlichen Parameter sind aber gleich)

Configuration.h

[...]

// The following define selects which electronics board you have.
// Please choose the name from boards.h that matches your setup
#ifndef MOTHERBOARD
 #define MOTHERBOARD BOARD_MKS_GEN_L
#endif

[...]

//===========================================================================
//============================== Endstop Settings ===========================
//===========================================================================

// @section homing

// Specify here all the endstop connectors that are connected to any endstop or probe.
// Almost all printers will be using one per axis. Probes will use one or more of the
// extra connectors. Leave undefined any used for non-endstop and non-probe purposes.
#define USE_XMIN_PLUG
#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
//#define USE_XMAX_PLUG
//#define USE_YMAX_PLUG
//#define USE_ZMAX_PLUG

[...]

// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
#define X_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MIN_PROBE_ENDSTOP_INVERTING false // set to true to invert the logic of the probe.

[...]

// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
#define INVERT_X_DIR true
#define INVERT_Y_DIR true
#define INVERT_Z_DIR false

// Enable this option for Toshiba stepper drivers
//#define CONFIG_STEPPERS_TOSHIBA

// @section extruder

// For direct drive extruder v9 set to true, for geared extruder set to false.
#define INVERT_E0_DIR false
#define INVERT_E1_DIR false
#define INVERT_E2_DIR false
#define INVERT_E3_DIR false
#define INVERT_E4_DIR false

Configuration_adv.h

// @section TMC2130, TMC2208

/**
* Enable this for SilentStepStick Trinamic TMC2130 SPI-configurable stepper drivers.
*
* You'll also need the TMC2130Stepper Arduino library
* (https://github.com/teemuatlut/TMC2130Stepper).
*
* To use TMC2130 stepper drivers in SPI mode connect your SPI2130 pins to
* the hardware SPI interface on your board and define the required CS pins
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
*/
#define HAVE_TMC2130

[...]

#if ENABLED(HAVE_TMC2130) || ENABLED(HAVE_TMC2208)

 // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
 #define X_IS_TMC2130
 //#define X2_IS_TMC2130
 #define Y_IS_TMC2130
 //#define Y2_IS_TMC2130
 #define Z_IS_TMC2130
 //#define Z2_IS_TMC2130
 #define E0_IS_TMC2130
 //#define E1_IS_TMC2130
 //#define E2_IS_TMC2130
 //#define E3_IS_TMC2130
 //#define E4_IS_TMC2130

[...]

 /**
  * Use Trinamic's ultra quiet stepping mode.
  * When disabled, Marlin will use spreadCycle stepping mode.
  */
 #define STEALTHCHOP

 /**
  * Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
  * like overtemperature and short to ground. TMC2208 requires hardware serial.
  * In the case of overtemperature Marlin can decrease the driver current until error condition clears.
  * Other detected conditions can be used to stop the current print.
  * Relevant g-codes:
  * M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given.
  * M911 - Report stepper driver overtemperature pre-warn condition.
  * M912 - Clear stepper driver overtemperature pre-warn condition flag.
  * M122 S0/1 - Report driver parameters (Requires TMC_DEBUG)
  */
 #define MONITOR_DRIVER_STATUS

 #if ENABLED(MONITOR_DRIVER_STATUS)
   #define CURRENT_STEP_DOWN     50 // [mA]
   #define REPORT_CURRENT_CHANGE
   #define STOP_ON_ERROR
 #endif

 /**
  * The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
  * This mode allows for faster movements at the expense of higher noise levels.
  * STEALTHCHOP needs to be enabled.
  * M913 X/Y/Z/E to live tune the setting
  */
 #define HYBRID_THRESHOLD

 #define X_HYBRID_THRESHOLD     100 // [mm/s]
 #define X2_HYBRID_THRESHOLD    100
 #define Y_HYBRID_THRESHOLD     100
 #define Y2_HYBRID_THRESHOLD    100
 #define Z_HYBRID_THRESHOLD       4
 #define Z2_HYBRID_THRESHOLD      4
 #define E0_HYBRID_THRESHOLD     30
 #define E1_HYBRID_THRESHOLD     30
 #define E2_HYBRID_THRESHOLD     30
 #define E3_HYBRID_THRESHOLD     30
 #define E4_HYBRID_THRESHOLD     30

 /**
  * Use stallGuard2 to sense an obstacle and trigger an endstop.
  * You need to place a wire from the driver's DIAG1 pin to the X/Y endstop pin.
  * X and Y homing will always be done in spreadCycle mode.
  *
  * X/Y_HOMING_SENSITIVITY is used for tuning the trigger sensitivity.
  * Higher values make the system LESS sensitive.
  * Lower value make the system MORE sensitive.
  * Too low values can lead to false positives, while too high values will collide the axis without triggering.
  * It is advised to set X/Y_HOME_BUMP_MM to 0.
  * M914 X/Y to live tune the setting
  */
 #define SENSORLESS_HOMING // TMC2130 only

 #if ENABLED(SENSORLESS_HOMING)
   #define X_HOMING_SENSITIVITY  6
   #define Y_HOMING_SENSITIVITY  8
 #endif

 /**
  * Enable M122 debugging command for TMC stepper drivers.
  * M122 S0/1 will enable continous reporting.
  */
 #define TMC_DEBUG

[...]

#endif // TMC2130 || TMC2208

pins_RAMPS.h

[...]

//
// Steppers
//
#define X_STEP_PIN         54
#define X_DIR_PIN          55
#define X_ENABLE_PIN       38
#define X_CS_PIN           59

#define Y_STEP_PIN         60
#define Y_DIR_PIN          61
#define Y_ENABLE_PIN       56
#define Y_CS_PIN           63

#define Z_STEP_PIN         46
#define Z_DIR_PIN          48
#define Z_ENABLE_PIN       62
#define Z_CS_PIN           40

#define E0_STEP_PIN        26
#define E0_DIR_PIN         28
#define E0_ENABLE_PIN      24
#define E0_CS_PIN          42

[...]

Falls du die Arduino IDE das erste Mal dazu benutzt, um Firmware für den Tornado zu erstellen, musst du noch die U8glib Library einbinden, damit das Display ordnungsgemäß funktioniert. Außerdem wird für unseren Fall die TMC2130 Library benötigt. Beides findest du unter Sketch > Bibliothek einbinden > Bibliothek verwalten. Über die Suche findest du die jeweiligen Bibliotheken und kannst diese einfach mit einem Klick auf Installieren herunterladen.

Außerdem musst du der IDE noch mitteilen, für welchen Arduino die Firmware erstellt werden soll und wo er angeschlossen ist. Öffne dazu das Werkzeuge Menü. Unter Board wählst du “Arduino/Genuino Mega or Mega 2560”, als Prozessor  ATmega 2560 (Mega 2560) und unter Port den USB Port, an dem dein Board angeschlossen ist (z.B. COM3). Wenn du nicht weißt, welchen Port du wählen musst, schaue im Windows Geräte-Manager nach. Unter Anschlüsse COM & LPT sind dort wahrscheinlich zwei Geräte gelistet: Ein Kommunikationsanschluss COM1 und ein weiteres das z.B. COM2 oder COM3 verwendet – das ist unser benötigter Port.

Wenn alle Anpassungen vorgenommen sind, solltest du die Firmware zunächst überprüfen. Klicke dazu am oberen Bildschirmrand auf das Häkchen

Die Prüfung dauert eine Weile und sollte keine Fehler ausgeben.

Hat alles geklappt, kann die neue Firmware auf das Board übertragen werden. Klicke dazu auf das Pfeil-Icon. Die Firmware wird erneut kompiliert und auch dieses Mal sollte es ohne Fehler laufen, danach wird sie auf das Board hochgeladen, das sich nach einer Weile neu starten sollte. Ziehe den USB Stecker erst ab, wenn du die Meldung erhältst, dass der Sketch erfolgreich hochgeladen wurde.

Geschafft!

Glückwunsch, dein neuer, smarter Tevo Tornado ist jetzt bereit für seine ersten Drucke.

Bevor es richtig losgeht, solltest du alles auf Funktion prüfen, bewege die einzelnen Achsen über das Display Menü oder z.B. OctoPrint, prüfe ob die Temperaturanzeigen plausibel sind, heize Bett und Nozzle auf und beobachte ob die Temperaturen auf der Anzeige korrekt steigen und home alle Achsen. Vermutlich wirst du den Drucker auch neu kalibrieren müssen – wenigstens den Extruder.

Dir hat dieser Guide geholfen? Dann freue ich mich, wenn du ihn an andere weitergibst, damit möglichst vielen geholfen wird. Wer sich erkenntlich zeigen möchte, darf mir gern einen Kaffee spendieren oder ein kleines Trinkgeld per PayPal senden.

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?

121 Kommentare zu „TMC2130 Upgrade für Tevo Tornado“

  1. Hi Kevin!
    Momentan könnte ich etwas Hilfe gebrauchen.
    Habe einen Tornado 2018 MKS Gen L V1.0 auf tmc2130
    umbebaut / umgelötet.
    wie du beschrieben hast.
    Soweit so gut.
    Die abgeänderte Firmware Marlin 1.1.8 lässt sich Kompilieren aber nicht uploaden.
    Habe 2 Platinen und bei keiner gehts.
    Folgende Fehlermeldung wird ausgegeben:

    avrdude: stk500v2_setparm(): failed to set parameter 0x9e
    avrdude: stk500v2_command(): unknown status 0xc8
    avrdude: initialization failed, rc=-1
    Double check connections and try again, or use -F to override
    this check.
    avrdude: stk500v2_command(): unknown status 0x01
    avrdude: stk500v2_disable(): failed to leave programming mode
    Beim Hochladen des Sketches ist ein Fehler aufgetreten

    1. Hi Stefan,

      das klingt auf jeden Fall noch Problemen mit der Datenverbindung zum MKS Mainboard. Da du das Problem mit beiden Boards hast, würde ich einen Fehler dort erstmal ausschließen. Folgendes könntest du noch testen:
      Anderer USB Port am Rechner, anderes USB Kabel, sicherstellen, dass keine andere Anwendung offen ist, die auch auf den Port zugreift.

      1. Hallo Kevin.
        Es Lag am Verbindungskabel PC und Arduino und an 2 TMC2130. Die waren defekt. Vielleicht war ich das…
        Habe mir nun 4x TMC2130 V2 geholt, verlötet und eingebaut.
        Alle Achsen verfahren. Aber wie geht das mit dem Homecoming?
        Danke.

        1. Hi Stefan,

          wenn du die passende Firmware aufgespielt hast, sollte das sensorless Homing bereits aktiv sein. Wenn du X und Y homen kannst, ohne dass die Endstopps angeschlossen sind, dann läuft alles. Möglicherweise musst du aber noch die Empfindlichkeit anpassen, wenn die jeweilige Achse in den Nullpunkt fährt und dann nicht stoppt. Gib mir gern mal ein paar Details, wo du aktuell feststeckst, dann kann ich dir konkret dabei helfen.

  2. Beitrag von:
    Steffen
    26. November 2019 um 12:31
    Habe auch ein JGaurora A5 mit einigen Updates, wollte eben auf ein MKS Gen L V2.0 die Treiber TMC2130 installieren.
    Igendwie gelingt mir das Umprogrammieren nicht. Software habe ich die 1.1.9c von Samuel Pinches.
    Vieleicht kann mir der Steffen weitere helfen.

    1. Hallo Jörg,

      scheint ja so, als hätten die da den Rotstift angesetzt und Anschlüsse reduziert. Wäre natürlich doof. Eine geeignete Alternative wäre das MKS SGEN_L. Da sind alle nötigen Anschlüsse schon so aufgebaut, dass du keine zusätzlichen Kabel legen musst. Hab das hier hier schon für die TMC2209 beschrieben. Aber das geht auch prinzipiell genauso mit TMC2130.

  3. Hallo Kevin.

    Vielen vielen Dank für diese tolle Anleitung.
    Ich habe einen Jgaurora A5 und bin mitten drin umzubauen.
    Da der A5 das selbe Board hat kann ich diese Anleitung auch nutzen.
    Config.h und config_adv.h sind in der 1.1.9 ja etwas unterschiedlich zur 1.1.8.
    Dort muss man sich Zeit nehmen und alles überprüfen und die Werte entsprechend verändern.
    Vielleicht könntest du dazu noch einige Bilder hinzufügen um es Usern ohne Vorkenntnisse einfacher zu machen.
    Zb musste ich die Pins für sdi, sdo und sck in der pins_ramps.h ändern. Dazu gibt es bei dir keinen Hinweis. Oder ist das nicht nötig?
    Der gcode M122 ist ja auch nur dann verfügbar wenn der spi Mode aktiviert ist.
    Wichtig ist auch der Befehl M502 gefolgt von M500.
    Wenn es Probleme mit dem Eprom gibt hilft der Befehl M501 gefolgt von M500 um das Eprom zu flashen.
    End stops bei mir waren zb auch 5 und nicht 4. Dadurch hat Marlin alle Motoren gesperrt da endstop zmax getriggert war. Da bltouch nicht aktiviert ist muss man endstop zmax auch deaktivieren.
    Die endstops und deren Zustand kann man sich mit M119 anzeigen lassen.
    Auch in der 1.1.9 musste ich alle Motoren umpolen. Sprich die direction umkehren.
    Vielleicht hilft das anderen Usern die umbauen wollen. Alles sehr komplex für jemanden wie mir der damit noch nie etwas zu tun hatte.
    Nochmals danke für deinen tollen Bericht.

    Viele Grüße
    Steffen

    1. Hi Steffen,

      danke für dein Feedback! Als ich das Tutorial geschrieben habe, war 1.1.8 die aktuell Version. Aktuellere Firmware gibt es ja auch in allen erdenklichen Konfigurationen in den Firmware-Downloads, da sollte eigentlich für fast jeden was dabei sein und vor allem Code-technisch nicht so versierte können einfach eine fertige Version nutzen.

      Kleinere Updates pflege ich hier auch mal in den Artikel ein, allerdings habe ich die Konfigurations-Beispiele für Marlin bisher bewusst nicht aktualisiert. Die sind eher als Beispiele gedacht, für Leute die sich damit tiefer beschäftigen wollen.

      Mechanische Unterschiede von Drucker zu Drucker sind natürlich zu beachten. Da ich den Tevo Tornado habe und daran alles selbst durchprobiert habe, bezieht sich hier alles auch darauf. Es kann dann natürlich sein, dass für Drucker anderer Hersteller noch Anpassungen nötig sind, bspw. wie du schreibst an den Endstopps oder in der Drehrichtung der Motoren.

  4. Hallo Kevin

    mein Bauteilelüfter geht nicht an. Muss ich da in Marlin noch was einstellen?
    Ich habe ihn da dran wo du in deiner Anleitung geschrieben hast.
    VG Nicole

    1. Hi Nicole,

      also an den „Fan“ Anschluss in der Ecke des Boards? Das sollte eigentlich gehen. Wenn die Marlin Version zum Board passt, dann müsste der Lüfter laufen. Drei Dinge könntest du auf jeden Fall checken: Hat der Lüfter schon einmal funktioniert oder ist der vielleicht defekt? Kabel evtl. falsch herum angeschlossen? Wie sehen die entsprechenden Einstellungen im Slicer aus?

  5. Hallo,

    ich habe momentan noch das alte MKS Base 1.4 verbaut und würde demnächt gerne upgraden. Sollte man sich mittlerweile im Hinblick auf Marlin 2.0 lieber das MKS SGen L anstatt des 8-bit Gen L holen?

    1. Hallo Tommy,

      das ist eine sehr gute Frage, den just in diesen Tagen habe ich das SGEN_L bei mir auf dem Tisch bzw. im Drucker eingebaut und teste es auf Herz und Nieren. Ein Beitrag dazu wird hoffentlich bald kommen.

      Im Grunde genommen ist ein 32bit Board in einem einfachen „Bettschubser“ wie dem Tornado eigentlich Overkill. Aber ich verspreche mir zumindest einen kleinen Gewinn in Qualität und evtl. auch möglicher Druckgeschwindigkeit.

      Wenn du das SGEN_L mit 2130 Treibern betreiben willst, ist das eine ziemlich bequeme Sache, weil keine extra Kabel für Sensorless Homing oder den SPI Bus gezogen werden müssen, das ist alles schon an Bord. Im Vergleich zum 8bit Gen L hat das neue Board aber etwas weniger I/O. Für die meisten Fälle reicht es aus, aber RGB LEDs ansteuern wird z.B. nicht mehr möglich sein (außer mit WS2812B LEDs, die nur einen Datenpin brauchen).

      Ich teste das Board gerade mit den neuen TMC2209 Treibern, die etwas mehr Power, als die 2130 mitbringen. Die sollen laut Makerbase auch mit dem Board laufen und es gibt sogar eigene MKS Treibermodule, die im Kit mit dem Board verkauft werden. Das klappt aber noch nicht so ganz. Mehr dazu dann aber in meinem kommenden Beitrag.

    1. Gute Frage, nächste Frage 😀

      Hab Cura jetzt schon eine Weile nicht mehr benutzt. In letzter Zeit hab ich eigentlich nur noch Simplify3D verwendet und wollte demnächst mal den Prusa Slicer 2.0 austesten. Aktuell bin ich aber bei einem erneuten Tausch von Mainboard und Treibern, sodass der Drucker grad nicht in Betrieb ist.

      Ich denke aber, dass das mitgelieferte Profil ein guter Anfang ist, von dem aus du dann weiter optimieren kannst, wenn Bedarf besteht.

      Danke für den Kaffee! Ich schreib dir gleich noch eine Mail diesbezüglich.

  6. Ne wirklich … sensationelle Arbeit die Du hier machst. Top!

    Extruder falsche Richtig – sicherlich in der firmware, aber fgeht das auch anders?

    1. Ich hab deine letzten Kommentare mal zusammengefasst 😉

      Hast du den standard Titan Extruder oder was anderes? Also in der Firmware könntest du E0 natürlich invertieren oder aber du vertauschst einfach die Adernpaare am Stecker, dann läuft der Extruder-Stepper auch in die andere Richtung. Also die beiden Linken Drähte und die beiden rechten, das ist jeweils ein Paar.

    1. Hallo Joerg,

      danke für’s Lob!

      Hab ja auch gesagt, dass die Chinatreiber generell gehen. Ist halt fummeliger, wegen der Löterei. Da sind die Treiber von Watterott im Gegensatz halt einfach Plug&Play.

      Aber mal sehen, wie lange noch. Ich experimentiere gerade mit den neuen 2209 Treibern und da hat Watterott inzwischen auch ein Layout mit Lötbrücken. Die sind schon echt winzig. Ich hab sie zwar überbrückt bekommen, aber dabei auf einem Treiber gleich noch einen benachbarten SMD Kondensator vom Board geholt. Der ist so klein, dass ich den dann auch nicht mehr gefunden hab. Zum Glück hab ich Ersatz von Watterott bekommen und gestern erfolgreich wieder angelötet.

  7. Dass währe der ganze bericht:
    Arduino: 1.8.9 (Windows 10), Board: „Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)“

    HardwareSerial0.cpp.o (symbol from plugin): In function `Serial‘:

    (.text+0x0): multiple definition of `__vector_25′

    sketch\MarlinSerial.cpp.o (symbol from plugin):(.text+0x0): first defined here

    c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/bin/ld.exe: Disabling relaxation: it will not work with multiple definitions

    collect2.exe: error: ld returned 1 exit status

    Mehrere Bibliotheken wurden für „U8glib.h“ gefunden
    Benutzt: C:\Users\chris\OneDrive\Dokumente\Arduino\libraries\U8glib
    Nicht benutzt: C:\Users\chris\OneDrive\Dokumente\Arduino\libraries\arduino_526689
    exit status 1
    Fehler beim Kompilieren für das Board Arduino/Genuino Mega or Mega 2560.

    Dieser Bericht wäre detaillierter, wenn die Option
    „Ausführliche Ausgabe während der Kompilierung“
    in Datei -> Voreinstellungen aktiviert wäre.

    1. Ist daraus noch relativ schwer zu sagen, woran es am Ende genau liegt.

      Hast du denn nur eine 2130 Bibliothek gefunden? Ich hab das grad nochmal bei mir gecheckt und es müsste die „TMC2130Stepper“ sein.

      Hast du die Bibliothek nur über die Verwaltung runtergeladen und installiert oder auch eingebunden? Letzteres wäre nämlich nicht nötig.

        1. Ich vermute, dass es dann daran liegt. Einbinden heißt ja, dass in der aktuell geöffneten Datei eine „#include …“ Zeile eingebunden wird. Das ist aber nicht nötig, weil die in der Firmware schon vorhanden sind. Deine Arduino Software muss lediglich die dazugehörige Bibliothek verfügbar haben. Lässt sich natürlich im Nachgang schwer sagen, wo das jetzt eingefügt wurde. Ich würde dir daher empfehlen, die Firmware nochmal neu runterzuladen und ggf. nochmal die Anpassung für die SD Card zu machen. Mit den Bibliotheken musst du nichts weiter machen, die hast du ja installiert. Dann sollte es aber gehen.

        2. Jetzt hats geklappt, ist super leise danke sehr.
          Vieleicht baue ich mir auch so einen Petsfang.

          Warum hast du eigentlich einen E3D V6 Hotend verbaut?

        3. Ist von der Qualität einfach hochwertiger und hält auch höhere Temperaturen aus, weil der PTFE Schlauch nicht bis vor die Nozzle geht, sondern im kalten Bereich endet und danach ist alles komplett aus Metall. Außerdem bietet E3D sehr gute Nozzles aus gehärtetem Stahl an, mit denen man auch abrasive Filamente drucken kann, wie z.B. welche mit Carbonfasern.

  8. Habe es Probiert mit der TMC 2130 Libary jetzt kommt der Fehler beim Überprüfen?

    Nicht benutzt: C:\Users\chris\OneDrive\Dokumente\Arduino\libraries\arduino_526689
    exit status 1
    Fehler beim Kompilieren für das Board Arduino/Genuino Mega or Mega 2560.

  9. Ah so, hoffentlich gibt es da nur eine. Sonst weis ich nämlich nicht welche ich nehmen soll.

    Hoffe dass meine Löterei funktioniert.
    Ach übrigens die Treiber von Watterot würde ich nur noch die noch nicht verlöteten nehmen. Denn bei den verlöteten sind alle Pins unten. Man muss also alles wieder entlöten und dann wieder richtig neu verlöten.

    Die alte Firmware 1.1.7 mit UBL hat auch funktioniert. Es war scheibnbar das alte Bett zu uneben. Ausserdem hat das offset, wenn ich mit USB druckte gepasst aber mit der Sim nicht. Komisch. Habe jetzt ein neues Bett gebaut dann hats funktioniert.

  10. Servus hab umgebaut.

    aber wenn ich die firmware laden will sagt er mir Error:

    2130Stepper.h: No such file or directory

    was mach ich da falsch?

    Hab die Firmware von die TMC2130 1.1,9 und Bltouch

    1. Da hast du vermutlich vergessen, die TMC2130 Library in Arduino zu installieren, wie oben beschrieben:

      Falls du die Arduino IDE das erste Mal dazu benutzt, um Firmware für den Tornado zu erstellen, musst du noch die U8glib Library einbinden, damit das Display ordnungsgemäß funktioniert. Außerdem wird für unseren Fall die TMC2130 Library benötigt. Beides findest du unter Sketch > Bibliothek einbinden > Bibliothek verwalten. Über die Suche findest du die jeweiligen Bibliotheken und kannst diese einfach mit einem Klick auf Installieren herunterladen.

  11. Servus,

    müssen die Treiber unbeding verkabelt werden, auch wenn man kein Sensorless Homing möchte?

    Ich habe Fertig verlötete Treiber von Watterott da mir das selst Löten zu schwierig ist. Nur fehlen da die 4 Pins auf der Oberseite. Ich habe ausserdem noch welche von Amazon, da sind die Pins drann und sogar Kabel dabei. Du meintest aber dass die nicht so gut sind oder?

    Und noch was was ist eigentlich ein Petersfang?

    1. Hallo Christian,

      ich war im Urlaub und kann dir daher erst jetzt antworten. Ich versuche mal gesammelt auf alle deine Fragen einzugehen:

      müssen die Treiber unbeding verkabelt werden, auch wenn man kein Sensorless Homing möchte?

      Wenn du Sensorless Homing nicht nutzen möchtest, dann könntest du, theoretisch, die TMC2130 auch im Standalonone Modus betreiben, da ist keine weitere Verkabelung nötig. Damit gehen aber auch die anderen Funktionen der Treiber flöten (Überwachung der Temperatur, Anpassung des Motorstroms, Wechsel zwischen leisem und kraftvollem Modus je nach Bewegungsgeschwindigkeit, …). Du hättest dann im Prinzip auch direkt ein paar Euros sparen und TMC2100 kaufen können. Aber machbar ist es auf jeden Fall. Eine passende Firmware dazu hätte ich: https://www.3d-diy.de/download/tornado-marlin-1-1-9-fuer-mks-gen-l-mit-standalone-tmc2130/

      Du meintest aber dass die nicht so gut sind oder?

      Kommt natürlich drauf an, welche genau du hast, aber ich vermute es werden entweder die Bigtreetech oder Fysetc, bzw. ein anders gebrandeter Abklatsch davon sein. Die gibt es dann jeweils noch in verschiedenen Versionen. Pauschal lässt sich also nicht sagen, dass die alle Mist sind. Aber es gibt viele davon, die bspw. sehr filigrane Lötbrücken benötigen, um richtig zu funktionieren. Wenn du also schon das Löten der Pins scheust, dann ist das definitiv nichts für dich. Auch liest man in den diversen Gruppen immer wieder von Problemen, mit den chinesischen Treibern. Ich würde daher, wenn möglich, immer die von Watterott bevorzugen.

      Und noch was was ist eigentlich ein Petersfang?

      Petsfang nennt sich das Teil. Das ist ein alternativer Bauteilkühler, der sehr populär ist, weil er modular gestaltet wurde und daher mit vielen Druckern und Hotends, sowie diversem Zubehör verwendet werden kann. Außerdem ist er strömungsoptimiert, sodass ein sehr starker Luftstrom selbst bei niedrigen Läuferdrehzahlen erreicht wird. Wenn du darüber mehr wissen möchtest, findest du das Ding auf Thingiverse: https://www.thingiverse.com/thing:2759439
      Ich habe ihn im Einsatz, weil ich ein anderes Hotend verbaut habe und dafür eh eine Halterung brauchte. Es gibt aber auch Module, die mit der originalen Tevo Hardware funktionieren.

      Funktioniert dann das drucken über die SD Karte oder muss ich da in der Firmware auch was ändern.

      Wenn du die Treiber im Standalone verwendest, müsste das Drucken über SD Karte funktionieren. Wobei das in der Firmware, die ich dir oben verlinkt habe, vermutlich noch deaktiviert ist. Lässt sich aber leicht wieder aktivieren: Einfach in der configuration.h die Zeile
      //#define SDSUPPORT
      suchen und die beiden // am Anfang entfernen.

  12. Hi Kevin,
    so, der Fehler lag an den wirklich miesen JST-Kabeln.

    Wollt nur Feedback geben, und würde im allgemeinen von den JST-Klump abraten. Bin schon auf die ersten Testdrucke gespannt.

    schönes Wochenende

  13. Hi Kevin,

    nein an der Konfig hab ich nichts geändert.
    Hab die „Tornado Marlin 1.1.9 für MKS Gen L mit TLC2130“ 1:1 übernommen
    und den Thermistortable für den Mosquito Thermistor angelegt.
    Die Jumper hab ich so belassen, hmm um ehrlich zu sein muss ich
    doch glatt mal unter den Z-Treiber schaun ob da von Haus aus die Jumper anders gesetzt wurden, auf das hab ich gar nicht geachtet, und natürlich vor dem Einbau „kein“ Foto vom leeren Board gemacht. (grrrr)

  14. Hallo Kevin,

    nachdem alle Teile eingetrudelt sind habe ich alles zusammengebaut, und es scheint alles außer der Z-Achse zu funktionieren. Selbst den Slice Engineering HT-Thermistor scheine ich richtig eingebunden zu haben. Nur wie gesagt bei der Z-Achse tut sich gar nichts. Ich Habe an der Firmware lediglich den Thermistor geändert und die Bump Sensitivity an X/Y eingestellt.
    Ich hofffe das man über den folgenden Treiberstatus etwas ableiten kann.

    Send: M122
    Recv: X Y Z E0
    Recv: Enabled false false false false
    Recv: Set current 800 800 800 800
    Recv: RMS current 795 795 1436 795
    Recv: MAX current 1121 1121 2025 1121
    Recv: Run current 25/31 25/31 25/31 25/31
    Recv: Hold current 12/31 12/31 12/31 12/31
    Recv: CS actual 12/31 12/31 0/31 12/31
    Recv: PWM scale 21 21 0 21
    Recv: vsense 1=.18 1=.18 0=.325 1=.18
    Recv: stealthChop true true false trueR
    ecv: msteps 16 16 256 16
    Recv: tstep 1048575 1048575 0 1048575
    Recv: pwm
    Recv: threshold 99 142 495 62
    Recv: [mm/s] 100.12 69.80 64.00 30.00
    Recv: OT prewarn false false false false
    Recv: OT prewarn has
    Recv: been triggered false false false false
    Recv: off time 5 5 0 5
    Recv: blank time 24 24 16 24
    Recv: hysteresis
    Recv: -end 2 2 -3 2
    Recv: -start 3 3 1 3
    Recv: Stallguard thrs 4 4 0 0
    Recv: DRVSTATUS X Y Z E0
    Recv: stallguard X X
    Recv: sg_result 0 0 0 0
    Recv: fsactive
    Recv: stst X X X
    Recv: olb
    Recv: ola
    Recv: s2gb
    Recv: s2ga
    Recv: otpw
    Recv: ot
    Recv: Driver registers: X = 0x81:0C:00:00
    Recv: Y = 0x81:0C:00:00
    Recv: Z = 0x00:00:00:00
    Recv: E0 = 0x80:0C:00:00
    Recv:
    Recv:
    Recv: ok

    fällt Dir was ins Auge?

    mfG
    Martin

    1. Hi Martin,

      also was mir ins Auge fällt ist die folgende Zeile:
      ecv: msteps 16 16 256 16
      Demnach sind alle Achsen mit 16 Microsteps unterwegs, außer Z, da sind es 265. Das würde bedeuten, dass du an Z 16x so viele Microsteps machen musst, wie an den anderen Achsen, oder anders gesagt dien Steps/mm 16x höher sein müssen. Vermutlich wird sich deine Z-Achse also bewegen. Allerdings sooooooo langsam und minimal, dass es nicht auffällt. Hast du da irgendwas an der Konfiguration geändert oder die Jumper unter den Treibern auf dem Mainboard anders gesetzt?

  15. Servus,
    hätte eine Frage dazu

    „Die Belegung der EXP1 und EXP2 Header für den Anschluss des LCDs auf dem Gen L sind um 180° verdreht im Gegensatz zum Tornado Mainboard. Damit das Display funktioniert, ziehe einfach die Plastikrahmen mit einer Zange vorsichtig vom Board, drehe sie um 180° und stecke sie wieder auf, dann gehen die Stecker in der richtigen Orientierung hinein.“

    Solllich da irgendwelche Buchsen runter ziehen? könntets du auf einen Bild zeigen wie das gemeint ist?
    Wird das Board davon nicht kaputt?

    1. Hi Christian,

      leider habe ich gerade kein konkretes Bild davon zur Hand. Aber gemeint ist tatsächlich nur der Kunststoff-Teil der Anschlüsse. Die kannst du in der Regel mit einer Zange greifen und vorsichtig abziehen. Du solltest nicht zu fest und vor allem gerade nach oben ziehen. Dann passiert dem Anschluss selbst nichts. Wenn dir das zu heikel ist, kannst du natürlich auch einfach auf der anderen Seite vom Anschluss noch eine zusätzliche Kerbe einfeilen. Oder du feilst die Nase am Stecker weg. In beiden Fällen solltest du dir dann aber genau merken oder markieren, wie rum der einzustecken ist.

  16. Hallo,

    erstmal danke für deine tolle Anleitung.
    Ich wollte 2208 Treiber verwenden und lese im Inet immer, das man diese mit einem Voltmeter einstellen muss. In deiner Anleitung kann ich nichts dazu finden. Überlese ich da irgendetwas oder ist das bei deinen Treibern nicht nötig ?

    1. Hallo Holger,

      eigentlich muss man weder bei den hier beschriebenen TMC2130, noch den TMC2208 mit dem Multimeter die Vref Einstellung prüfen und anpassen, da beide in der Lage sind, dies ausschließlich per Software zu setzen. Voraussetzung dafür ist natürlich, dass eine entsprechende Kommunikationsmöglichkeit zwischen Firmware und Treiber vorhanden ist. Bei den 2130 ist das der SPI-Bus, die 2208 nutzen UART und beide müssen entsprechen angeschlossen werden. Dafür entfällt wie gesagt das Messen und Fummeln an winzigen Potentiometern.

      Ich hoffe das hilft dir weiter.

  17. Hallo Kevin,

    Das ist so nicht richtig. Der SD-Kartenleser funktioniert auf jeden Fall.

    Das liegt daran, dass du in deiner Konfig für die TMC Treiber die Software SPI aktiviert und auf die Hardware SPI Pins konfiguriert hast. Die Software SPI ist eigentlich dafür da, alternative Pins für die SPI Schnittstelle zu verwenden.

    1. Danke für den Hinweis! Das werde ich mir mal ansehen.

      Ich bin da nur den Vorgaben gefolgt, die damals so dazu zu finden waren. Ich werde dem aber mal nachgehen. Wird sicher einigen helfen, wenn das gelöst wird und SD Support wieder möglich ist.

      1. Ja, es waren teilweise komische Infos bzgl. SPI und TMC im Netz unterwegs.
        Es sollte reichen, wenn du die Soft-SPI bei denTMC-Treibern deaktivierst. Die pins_RAMPS.h sollte dann auch wieder auf Standard gesetzt werden:

        /**
        * Default pins for TMC software SPI
        */
        #if ENABLED(TMC_USE_SW_SPI)
        #ifndef TMC_SW_MOSI
        #define TMC_SW_MOSI 66
        #endif
        #ifndef TMC_SW_MISO
        #define TMC_SW_MISO 44
        #endif
        #ifndef TMC_SW_SCK
        #define TMC_SW_SCK 64
        #endif
        #endif

        Der Fehler liegt darin, dass der SD-Leser die HW-SPI Schnittstelle verwendet und die aktivierte Soft-SPI auf die selben Pins zugreift wie die HW-Spi.

        Gruß,
        Martin

  18. Hallo Kevin,
    ich habe auf die Firmware 1.19 mit BLTOUCH und SP2130 upgedatet. Es funktioniert auch (fast) alles. Ich bin erstaunt wie leise mein Tornado arbeiten kann! Danke für deine Arbeit. Leider funktioniert nach dem Update der SD-Kartenleser nicht mehr. Gibt es hier eine Lösung?
    Vielen Dank im Voraus
    Gerhard

    1. Hallo Gerhard,

      das ist leider korrekt. Es scheint als würden der SPI-Bus für die Treiber und der SD-Reader zum Teil gleiche Pins auf dem Board ansprechen wollen oder irgendwelche Konflikte im Protokoll zu haben. Daher ist der SD-Support in allen TMC2130 Versionen deaktiviert. Bisherige Versuche, den einfach zu aktivieren sind nicht erfolgreich gewesen.

      Da ich und die meisten, die die Firmware bislang runtergeladen haben über OctoPrint drucken, war das bislang kein größeres Problem. Es wurde aber zumindest schon 1-2 Mal vor dir danach gefragt. Wenn ich mit meinen derzeitigen Projekten durch bin, werde ich mir das mal genauer ansehen.

  19. Hi,
    Ich habe dir schon einmal geschrieben weil ich damals den homing Bug hatte.
    Seit dem habe ich erst mal das Projekt 2130 auf Eis gelegt und mit den A4988 weiter gemacht.
    Jetzt wollte ich es wieder in Angriff nehmen und habe die Anleitung von dir Schritt für Schritt befolgt.
    Als Software jabe ich deine 1.1.9 Version genutzt.
    Jedoch kommt direkt nach dem einschalten die Fehlermeldung das alle Treiber überhitzen würden und werden bis in den minus Bereich herabgesetzt was ja an sich schon komisch ist.
    Theoretisch können Sie noch überhitzen da ich mir ein neues Case gebaut habe in der ein 80mm Lüfter die Luft ansaugt und ein weiterer direkt auf die Treiber pustet.
    Und trotzdem habe ich das Problem.

    P.s. diesen Fehler habe ich durch den ausgeschalteten stop on error command mit Pronterface herausgefunden, sie haben sich auch nicht darüber bewegen lassen.

    1. Hi Yannic,

      also wenn nicht gerade irgendwo was kurzgeschlossen ist, wäre es schon sehr unwahrscheinlich, dass die Treiber direkt nach dem Einschalten überhitzen. Vor allem auch, da du den Fehler offenbar von allen vier Treibern bekommst. Ich würde unter diesen Umständen eher davon ausgehen, dass es ein Problem mit dem SPI-Bus gibt. Wenn da die Kommunikation nicht klappt, dann könnte es zu solchen Falschmeldungen kommen. An deiner Stelle würde ich also da zunächst mal alle Kabel gründlich überprüfen und die Stecker auf korrekten Sitz und Anschluss prüfen.

  20. Hey Kevin, tolle Anleitung habe wirklich das gefühl dass ich alles habe, was es braucht um das board mit den treibern erfolgreich einzubauen! Ich habe einen Anet A8 in den ich aber schon sehr viel reingesteckt habe. Er druckt sehr gut und zuverlässig, jedoch etwas zu langsam und zu laut.
    Meine erste Frage ist: Der anet hat ja 2 Z Motoren, also werden insg. 5 Stepper benötigt. Wie sieht es da mit der Verkabelung aus? Einfach an den gleichen Pin wie der Z1 motor ?
    Außerdem wollte ich fragen ob du denkst dass ich mir wirklich tmc2130 stepper leisten sollte, da ich garnicht so geil auf das endstoplose homen bin. Mir geht es nur darum, dass ich schneller und deutlich leiser drucken kann, und die spannung wenn möglich nicht manuell einstellen muss sondern wie beim 2130 firmwaremäßig! Alles andere ist mir nicht so wichtig… hast du da eine Empfehlung für einen anderen driver oder sind die 2130 doch die beste wahl ? Freue mich auf deine Antwort.
    Danke schonmal, Gruß 😀

    1. Hallo Semie,

      danke für dein Lob!

      Deine Frage zum zweiten Motor kann ich dir gar nicht so genau beantworten. Da gibt es im Grunde zwei Varianten: Entweder beide Stepper hängen auf dem gleichen Treiber oder aber es wird ein zusätzlicher Treiber benutzt und die Firmware so angepasst, dass der auch zur Z-Achse gehört. Wie das bei deinem Anet A8 aktuell gelöst ist, müsstest du mal prüfen. Im Zweifel würde ich es dann wieder genau so umsetzen.

      Zur zweiten Frage: Wirklich schneller wirst du vermutlich mit den TMC Treibern auch nicht. Vor allem durch den leisen StealthChop Modus, haben die teils etwas weniger Drehmoment, als andere Treiber und das kann bei schneller Beschleunigung schon problematisch werden. Ich hab im Laufe der Zeit auch gelernt, dass es nicht immer schnell sein muss und mich dran gewöhnt. Drucke in der Regel mit 60mm/s. Aber leiser sind die definitiv! 🙂 Wenns dir nur auf die beiden Eigenschaften ankommt, könntest du dir mal die TMC2100 ansehen. Die haben keine firmwareseitige Steuerung und sind daher Plug&Play, ohne zusätzliche Kabel. Allerdings fällt dann eben das Einstellen von VRef per Firmware weg. Alternativ, wenn du darauf nicht verzichten willst, die 2208. Aber am Ende sind die Preisunterschiede auch nicht so groß, insofern könntest du auch mit den 2130 gehen und hast erstmal alles zur Hand. Was du davon nutzt, kannst du ja dann entscheiden.

      Hoffe ich habe dir geholfen. Schön, dass inzwischen auch Nutzer anderer Drucker meine Seite für sich entdecken.

    1. Hallo Christian,

      das MKS Gen L Mainboard kann mit 12V oder 24V betrieben werden. Das werkseitige 24V Netzteil kann also weiter benutzt werden, bzw. sollte es auch. Wenn tauschen, dann maximal gegen ein anderes 24V, denn im Gegensatz zum Board gibt es andere Komponenten, denen die Spannung nicht egal ist, in erster Linie die Heizpatrone des Hotends. Die 220V fürs Heizbett werden ja über ein Solid-State-Relais (SSR) gesteuert, also ist auch da kein Umbau oder ähnliches erforderlich.

      Die hier beschriebenen Schritte decken alles ab, was du tun und kaufen musst, um Board und Treiber umzurüsten. Den Rest musst du dafür nicht anfassen.

      1. Hi, vielen Dank für die schnelle Antwort.
        Habe soweit alles zusammen, muss nur noch meine e3dv6 Halterung fertigkonstruieren und ausdrucken.
        Und ja, da war der Christian zu Faul mal etwas aufzuschrauben 😉
        Tolle Arbeit von dir. Danke.
        Christian

  21. Maximilian Aichhorn

    Hallo,
    tolle Anleitung ich habe TMC2208Driver und funktioniert super allerdings beim homen funktioniert die Z-Achse nicht die Prob fährt nicht aus und das Hotend stückweise nach oben bitte um Vorschläge

    1. Hallo Maximilian,

      das klingt für mich erstmal nach einem Problem mit deiner Probe. Ich nehme mal an, du hast einen BLTouch, wenn du sagst, er sollte ausfahren? Original oder Clone?
      Das Hochfahren gehört beim Homing mit dem BLTouch dazu, sollte aber nur 1cm oder so sein. Dann wir der Stift ausgefahren und die Achse senkt sich wieder.

      Ich könnte mir vorstellen, dass dein BLTouch entweder eine Macke hat oder falsch angeschlossen ist. Denke weil eben der Stift nicht nach unten fällt, geht die Firmware davon aus, dass er nicht ausgefahren werden kann, weil er zu dicht am Bed ist und fährt deswegen weiter hoch.

      Prüfe am besten nochmal alle Kabel. Wie leuchtet der denn, blau rot oder beides? Und klappt der Selbsttest, beim Anschalten des Druckers?

  22. Hi Kevin, danke für deine Anleitung. Hat mir sehr geholfen. Zwei Punkte als Anregung:
    1) Falls möglich, sollte man vlt. doch die Treiber mit gelöteten Pins holen. Wenn man wie ich 1x einen Pin verschoben lötet, dann kann es auch mit der Verkabelung nicht funktionieren. Saß einen Abend daran, bis ich gemerkt habe, dass ich beim Löten des letzten Treibers „verrutscht“ bin und daher immer die Treiberfehler erhalten habe.
    2) Bezüglich Sensorless Homing hat es mit der Firmware 1.1.9 leider nicht ganz geklappt. Wenn ich über OctoPi (oder über das DIsplay & Controller) die X- & Y- Achse gelevelt habe, hat es ab und zu nicht funktioniert und beim Leveln hat das Heatbett gegen den Y-Motor quasi gedrückt (und ein lautes Geräusch von sich gegeben). Habe Y_HOMING_SENSITIVITY auf 5 gesetzt und jetzt läuft es flüssig.

    Besten Gruß

    1. Hi,

      danke für dein Lob und die Spende!

      Zu 1: Steht so nicht in der Materialliste, aber bei der Anleitung hatte ich erwähnt, dass es die auch fertig gibt. Hab das nochmal etwas mehr hervorgehoben.
      Zu 2:Das habe ich jetzt schon öfter gehört. Die nötige Sensitivity scheint recht individuell zu sein. Hängt vielleicht auch mit der generellen Leichtgängigkeit des Beds, der Riemenspannung usw. zusammen. Die voreingestellen Werte laufen bei mir sehr gut. 5 habe ich inzwischen aber ebenfalls oft als guten Wert gehört. Andere musst auch schon noch weiter runter.

  23. hi kevin,

    danke für die tolle Anleitung. Ich habe alles befolgt wie von dir beschrieben nur bekomme ich sofort beim start einen „Driver error PRINTER HALTED“

    printerface spuckt folgendes aus. hast du hier vl. eine idee wo das problem liegen könnte?

    start
    echo:Marlin 1.1.9
    echo: Last Updated: 2018-08-01 | Author: BRUTO
    echo:Compiled: Jan 9 2019
    echo: Free Memory: 2120 PlannerBufferBytes: 1664
    echo:EEPROM version mismatch (EEPROM=? Marlin=V55)
    echo:Hardcoded Default Settings Loaded
    X driver error detected:
    overtemperature
    short to ground (coil A)
    short to ground (coil B)
    X Y Z E0
    Enabled false false false false
    Set current 800 800 800 800
    RMS current 795 795 795 795
    MAX current 1121 1121 1121 1121
    Run current 25/31 25/31 25/31 25/31
    Hold current 12/31 12/31 12/31 12/31
    CS actual 31/31 31/31 31/31 31/31
    PWM scale 255 255 255 255
    vsense 1=.18 1=.18 1=.18 1=.18
    stealthChop true true true true
    msteps 0 0 0 0
    tstep 4294967295 4294967295 4294967295 4294967295
    pwm
    threshold 99 141 495 62
    [mm/s] 0.00 0.00 0.00 0.00
    OT prewarn true true true true
    OT prewarn has
    been triggered false false false false
    off time 15 15 15 15
    blank time 54 54 54 54
    hysteresis
    -end 12 12 12 12
    -start 8 8 8 8
    Stallguard thrs 6 8 0 0
    DRVSTATUS X Y Z E0
    stallguard X X X X
    sg_result 1023 1023 1023 1023
    fsactive X X X X
    stst X X X X
    olb X X X X
    ola X X X X
    s2gb X X X X
    s2ga X X X X
    otpw X X X X
    ot X X X X
    Driver registers: X = 0xFF:FF:FF:FF
    Y = 0xFF:FF:FF:FF
    Z = 0xFF:FF:FF:FF
    E0 = 0xFF:FF:FF:FF
    Error:Printer halted. kill() called!
    [ERROR] Error:Printer halted. kill() called!

    1. Hallo Jakob,

      prüfe doch nochmal, ob du alle Pins richtig verlötet und alle Kabel korrekt angeschlossen hast, insbesondere beim Treiber für die X-Achse. Es sieht so aus, als gäbe es da ein Problem, denn deine Ausgabe sagt:
      X driver error detected:
      overtemperature
      short to ground (coil A)
      short to ground (coil B)

      Vielleicht hast du beim Löten versehentlich zwei Pins überbrückt oder ein Kabel ist lose oder falsch angeschlossen.

      1. Genau den Fehler hatte ich auch und konnte ihn gestern lösen.

        Fazit: Beim Verlöten der Pins bin ich eine Stelle verrutscht und habe die falsche PIN verlötet (und anschließend verkabelt).

        War bei mir aber ohne Probleme zu beheben (einfach weitere Pin angelötet und die richtige Pin verkabelt.

  24. Hallo,
    Schöne Anleitung.
    Eine Frage hätte ich aber.
    Wieso werden die Anpassungen für die pins in der pin_RAMPS.h gemacht und nicht in der
    pins_MKS_GEN_L.h.
    Ich hätte gemeint du benutzt doch ein MKS GEN L und kein RAMPS

    1. Hallo Mo,

      danke für dein Lob!
      Dass die pins_RAMPS.h verwendet wird und nicht die pins_MKS_GEN_L.h hat einen einfachen Grund: Das MKS Gen L basiert von der Architektur her auf einem RAMPS, ist quasi eine All-in-One Version des RAPS + Arduino. Entsprechend werden in Marlin in der Konfigurationsdatei auch nur ein paar kleine Anpassungen gemacht, für den Rest wird auf die pins_RAMPS.h verwiesen und dort finden sich auch die Pins, die wir brauchen. (Siehe hier: https://github.com/MarlinFirmware/Marlin/blob/1.1.x/Marlin/pins_MKS_GEN_L.h)

  25. After printing on the TMC2130 for weeks i noticed that i might not have it set correctly.
    When sending a M122 It mentioned Enabled as False and Driver registers: X = 0x00:00:00:00 which can’t be correct.
    I would expect it to be enabled True and a unique register code for each axis.

    My log:
    X Y Z
    Enabled false false false
    Set current 800 800 800
    RMS current 1436 1436 1436
    MAX current 2025 2025 2025
    Run current 25/31 25/31 25/31
    Hold current 12/31 12/31 12/31
    CS actual 0/31 0/31 0/31
    PWM scale 0 0 0
    vsense 0=.325 0=.325 0=.325
    stealthChop false false false
    msteps 256 256 256
    tstep 0 0 0
    pwm
    threshold 99 141 495
    [mm/s] 1601.93 1124.76 64.00
    OT prewarn false false false
    OT prewarn has
    been triggered false false false
    off time 0 0 0
    blank time 16 16 16
    hysteresis
    -end -3 -3 -3
    -start 1 1 1
    Stallguard thrs 6 8 0
    DRVSTATUS X Y Z
    stallguard
    sg_result 0 0 0
    fsactive
    stst
    olb
    ola
    s2gb
    s2ga
    otpw
    ot
    Driver registers: X = 0x00:00:00:00
    Y = 0x00:00:00:00
    Z = 0x00:00:00:00

    1. Hi Cor,

      that’s totally fine. Enabled=false only means, that your steppers aren’t currently active e.g. under load. If you move any axis and repeat M122 you will notice that the recently moved axis is now enabled.

  26. TMC2130 Upgrade for Tevo Tornado

    Hi Kevin

    I found you through the video you made for this. Now I cannot find the link to the video.

    Will you send me the link please?

    Thank you.

  27. Hallo,
    eine Frage noch zu dem wirklich tollen Manual.
    Ist es richtig, dass die 3 Jumper unter den Steppern gesteckt bleiben? Ich habe in anderen Foren gelesen, dass diese runter sollen.
    Viele Grüße

    1. Hallo Andreas,

      ich hatte dazu auch recherchiert und mein Ergebnis war, dass sie so bleiben können, bzw. sollten. Die Jumper regeln ja normalerweise das Microstepping. Die 2130 Treiber regeln aber auch das eigentlich wieder Firmware-seitig und sind so konfiguriert, dass sie die normalen 1/16 Microsteps auf 1/256 interpolieren. So wie ich das verstanden habe, sind die Jumper damit eigentlich sogar egal. Ergo würde ich einfach alles so lassen, wie es kam. Hat bislang nicht geschadet.

  28. Hallo Kevin
    Ich habe einen Tevo Black Widow mit einen MKS Gen V1.4, würde deine
    Firmware Merlin 1.19 auch mit diesen Board gehen.Were echt super,da ich mir auch die TMC2130 mit SPI gekauft habe und ich kann die Treiber nicht
    aktivieren. Danke schon mal in vorraus.

    1. Hi Ewald,

      an sich kannst du die Marlin Versionen aus meinen Downloads auch auf der Black Widow verwenden. Aber nicht ohne ein paar Anpassungen, denn der Druckbereich ist ja kleiner, als beim Tornado. Das muss entsprechend eingestellt werden. Falls du einen BLTouch verwendest muss in der entsprechenden Version auch noch der Punkt für die Z-Messung angepasst werden (in der Regel genau die Mitte von X und Y). Falls du aber keinen Sensor hast, reicht die Anpassung des Bauraums aus, findest du recht weit oben in der configuration.h

  29. Hallo,
    vielen Dank für deine Anleitung.
    Wie hast du die Kabel für SDO, SDI sowie SCK parallel angeschlossen? Kann man darunter im Zusammenhang mit DuPont-Steckern leider nichts vorstellen.
    Vielen Dank im Voraus!

    1. Hi,

      ich hab es ganz pragmatisch gelöst, habe von jedem Treiber ein Kabel weggeführt und die dann am anderen Ende alle vier miteinander verdrillt und zusammengelötet. Ein fünftes Kabel dran, das dann aufs Board geht und fertig.

  30. Hi,
    ich habe bei meinem Tornado 2018 (der goldene) für X und Y wie in der Anleitung mit TMC2130 erweitert. Allerdings habe ich in der Y-Achse extreme Layershifts. Ich habe die Vref auf 800 stehen (1000 haben leider auch nicht gebracht). Habt ihr einen Tipp wie ich den Fehler beheben kann?
    Motoren als auch Driver bleiben relativ kühl und ich bekomme auch keine „Overtemp“ Meldungen von den TMCs. Sensorless Homing etc. funktioniert problemlos.

    1. Hallo Maxi,

      die Layershifts hatte ich Anfangs auf Y auch noch. Da lag es allerdings daran, dass ich Vref hochgedreht hatte. 800 ist das Maximum was Watterott bei den Treibern empfiehlt. Bei mehr werden sie schnell zu warm und haben verlieren dann Steps. Kühlkörper hast du anständige drauf und auch n vernünftigen Lüfter, der idealerweise über die Treiber bläst? Kann halt schon sein, dass die etwas zu warm sind. Das ist leider die Achillesferse der 2130. Wenn es das nicht ist, kann es natürlich auch evtl. noch daran liegen das Jerk und/oder Acceleration auf Y zu hoch sind. Grad wenn du mit Cura arbeitest nützt es dir auch nix, die in der Firmware niedrig zu setzen, da Cura in Standardprofilen die Werte mit eigenen überschreibt, die auch ziemlich hoch sind. Es gibt ein Häkchen oder besser gesagt zwei die man rausnehmen muss, damit Cura die beiden Werte nicht beeinflusst. Dann läuft es besser. Kann dir aber grad aus dem Kopf nicht sagen, wie die heißen.

  31. Abend,
    Ich hab das Problem das beim Hochladen der Firmware folgende Fehlermeldung kommt: Arduino: 1.8.7 (Windows 10), Board: „Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)“

    Der Sketch verwendet 152794 Bytes (60%) des Programmspeicherplatzes. Das Maximum sind 253952 Bytes.
    Globale Variablen verwenden 5617 Bytes (68%) des dynamischen Speichers, 2575 Bytes für lokale Variablen verbleiben. Das Maximum sind 8192 Bytes.
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_getsync(): timeout communicating with programmer
    Beim Hochladen des Sketches ist ein Fehler aufgetreten

    Dieser Bericht wäre detaillierter, wenn die Option
    „Ausführliche Ausgabe während der Kompilierung“
    in Datei -> Voreinstellungen aktiviert wäre.

    Gibts da irgendeine Lösung? M.f.G

    1. Hi,

      das kann viele Ursachen haben. Möglich wäre z.B. ein Problem mit dem USB Kabel (schlechte Qualität, zu lang, Störungen von außerhalb…). Würde als erstes mal ein anderes Kabel verwenden. Wenn das nicht hilft, nochmal alle Einstellungen in der IDE checken. Hoffe das hilft dir schon weiter.

        1. Firmware habe ich drauf bekommen die neuste ohne bl touch. jetzt habe ich das Problem das Z sich nicht Homen lässt bzw nur Manuell nach oben gefahren werden kann. x und e0 sind komischerweiße auch vertauscht. e0 reagiert manuell auch nicht. Irgendeine idee was falsch sein könnte? M.f.G

        2. Puh, da läuft aber ganz schön viel verkehrt. Einiges kann ich dir erklären, bei den anderen muss ich raten. Also wenn Z sich nicht homen lässt, dann ist es ein Sicherheitsfeature in Marlin, dass du die Achse nur nach oben fahren kannst, bis der Nullpunkt gesetzt ist, damit man nicht die Nozzle ins Bett rammen kann. Wenn du die homen kannst, kannst du sie auch in beide Richtungen verfahren. Warum aber das Homen nicht geht, kann ich dir so spontan nicht sagen. Wie ist das mit dem Extruder? Hast du den manuell probiert, als das Hotend kalt war? Dann lässt der sich nicht bewegen. Wieder ein Sicherheitsfeature. Wird erst aktiv, wenn eine gewisse Temperatur am Hotend vorliegt (kenn grad den Schwellenwert nicht).

          So und jetzt noch dazu, warum die Achsen vertauscht sein könnten: Muss ich raten. Evtl. beim Verkabeln des SPI-Bus ein Kabel verwechselt?

  32. Hallo,
    super Anleitung – hat alles auf Anhieb hingehauen.
    Habe jetzt die Firmware aktualisiert. Mein Problem ist, ich habe keinen BLTouch angeschlossen. Wie kann ich in der Firmware die BLTouch-Unterstützung dektivieren damit alles läuft.

    Gruß
    Torsten

    1. Hallo Torsten,

      schön, dass das so gut geklappt hat. Danke für dein Feedback!

      Wenn du keinen BLTouch hast, findest du bei meinen Downloads eine Marlin 1.1.8 für Drucker ohne den Sensor. Die 1.1.9 habe ich auch in einer Version ohne vorbereitet. Da hatte ich aber noch ein Problem beim Kompilieren, das ich beheben muss, bevor ich die Version veröffentlichen kann. Spricht aber erstmal nichts gegen die 1.1.8, die wurde von verschiedenen Leuten getestet und läuft gut. Wenn du in ein paar Tagen nochmal reinschaust, ist auch die 1.1.9 online.

  33. Hallo, erstmal vorab……super Anleitung.
    Hat auch alles prima geklappt,selbst für den nicht Profi.
    Jetzt habe ich nur ein Problem: Meine Thermistoren zeigen beide -14 Grad an. Ich verstehe es nicht.
    Hast Du vielleicht eine Lösung?

    Gruß Rainer

    1. Wenn -14° angezeigt werden, ist der Thermistor nicht verbunden. Prüfe mal ob alle Kabel richtig sitzen und ob sie auf die korrekten Anschlüsse gesteckt sind. Wenn beide falsche Werte anzeigen ist das am wahrscheinlichsten. Ansonsten wäre es auch möglich, das Kabel gebrochen oder abgerissen sind, aber es scheint mit unwahrscheinlich, dass das bei Bed und Hotend gleichzeitig passiert.
      Auf gar keinen Fall solltest du den Drucker aber aufheizen, bis das Problem behoben ist. Da keine Temperaturen gemessen werden könnte er theoretisch heizen bis was schmilzt. Die Firmware wird das verhindern, aber drauf anlegen würde ich es trotzdem nicht.

      1. Hallo Kevin,
        hattest natürlich Recht mit der Verbindung zum Thermistor.
        Die zeigen mir jetzt die Raumtemperatur an, das Heizbett funktioniert einwandfrei aber der Extruder nicht. Auf dem Bord leuchtet die entsprechende Diode zum heizen. Der Extruderlüfter läuft auch, aber heizen macht er nicht. Fällt dann logischerweise aus. Vorhin hatte ich das Phänomen dass der extruder geheizt hätte bis ins bodenlose, denke fast dass das mks einen Schlag hat.

        Gruß
        Rainer

      2. Hallo Kevin,
        hattest natürlich Recht mit der Verbindung zum Thermistor.
        Die zeigen mir jetzt die Raumtemperatur an, das Heizbett funktioniert einwandfrei aber der Extruder nicht. Auf dem Bord leuchtet die entsprechende Diode zum heizen. Der Extruderlüfter läuft auch, aber heizen macht er nicht. Fällt dann logischerweise aus. Vorhin hatte ich das Phänomen dass der extruder geheizt hätte bis ins bodenlose, denke fast dass das mks einen Schlag hat.

        Gruß
        Rainer

  34. Hi!
    Vielen Dank für die super Anleitung. Allerdings verstehe ich einen Teil nicht. Wo wird konfiguriert an welchen Pins die CS-Leitungen angeschlossen werden? In der pins_RAMPS.h? Wenn ich den E1 nutzen will mit einem zweten Extruder an einem Cyclops Hotend, wo müsste dann der E1_CS angeschlossen werden?
    Gruß
    Frank

    1. Hallo Frank,

      ja, die CS Pins werden in der pins_RAMPS.h eingestellt. Der betreffende Teil ist auch im Beitrag zu sehen. Für den zusätzlichen CS Pin könntest du dann einen der übrigen freien Pins auf AUX-2 benutzen, also D42, D44, D64, D65 oder D66. Jendefalls solange du sie nicht für etwas anderes brauchst.

      1. Hallo Jens Kevin,
        danke für die Hilfe. Leider funktioniert es bisher noch nicht. Ich habe den E1 CS an D64 angeschlossen. Wenn ich den Extruder nun ansteuere, hört man vom Stepper auch dass etwas passiert, aber leider scheint mit den Ansteuerung etwas nicht zu stimmen. Marlin geht dann auch auf „Driver error“ ,“PRINTER HALTED“.
        Kurz zu dem, was ich eingestellt habe:
        Configuration.h
        #define EXTRUDERS 2
        #define SINGLENOZZLE
        Configuration_adv.h
        #define E1_IS_TMC2130
        pins_RAMPS.h
        #define E1_STEP_PIN 36
        #define E1_DIR_PIN 34
        #define E1_ENABLE_PIN 30
        #define E1_CS_PIN 64
        Ich habe auch D65 probiert – mit dem gleichen Ergebnis.
        Was ich aktuell noch nicht verstehe, ist das Einstellen von E1_STEP_PIN, E1_DIR_PIN und E1_ENABLE_PIN. Ich habe hier die Voreinstellung gelassen.
        Ich nehme an E1_SERIAL_TX_PIN und E1_SERIAL_RX_PIN sind für die TMC2130 nicht relevant oder?
        Danke und Gruß
        Frank

        1. Driver Error kommen dann mit ehr hoher Wahrscheinlichkeit davon, dass der CS-Pin nicht funktioniert. Denn der SPI-Bus funktioniert ja so, dass alle Treiber sich eine Datenleitung teilen und über CS der Treiber aktiviert wird, der grad Daten senden oder empfangen darf. Ich hab in meinem Beispiel, das ich dir gegeben hatte ja nur einige freie eigentlich Pins aufgezählt. Es ist aber durchaus möglich, dass die irgendwo in der Config noch für andere Aufgaben ausgewählt sind und da läge dann der Konflikt.
          Kannst eigentlich nur noch probieren, ob einer der anderen genannten geht oder einfach mal alle Config Files nach den Pin-Nummern durchsuchen, wenn du eine Nummer nirgends findest, sind die Chancen gut, dass der klappt.

        2. Okay, bin nun auf D66 gewechselt. D66 habe ich nirgends gefunden. Die anderen Pins habe ich bei Spindle/Laser Control gefunden – obwohl ich denke das dies nicht aktiviert ist. Mit dem gleichen Ergebnis E1 brummt nur und Marlin geht au Fehler. Dann habe ich mal was ausprobiert… ich habe E0 und E1 getauscht. Ist nun also:
          #define E1_STEP_PIN 26
          #define E1_DIR_PIN 28
          #define E1_ENABLE_PIN 24
          #define E1_CS_PIN 42

          #define E0_STEP_PIN 36
          #define E0_DIR_PIN 34
          #define E0_ENABLE_PIN 30
          #define E0_CS_PIN 66
          Resultat: E0 funktioniert weiterhin und Extruder 2 dreht sich. E1 funktioniert weiterhin nicht und Extruder 1 macht nur brumm Geräusche.
          An der Pin Konfiguration liegt es wohl nicht. Irgendetwas muss noch falsch sein. Was mich auch wundert ist, dass in Marlin „Extruder“, „Extruder 1“ und „Extruder 2“ vorhanden sind.

  35. Hi,
    Erst einmal wollte ich mich für die gute Anleitung bedanken.
    Jedoch funktioniert mein Tornado nocht so wie er sollte. Zu Beginn des Homings funktioniert alles tadellos. Wenn jedoch die z Achse in der Mitte des Bettes fährt um die Achse du Messen, rattert die x Achse und die y Achse. Auf dem Display werden dann die richtigen Koordinaten angezeigt.
    Hättest du eine Idee wie ich mein Problem lösen kann?

    Vielen Dank im voraus.
    Mit freundlichen Grüßen

    Yannic

  36. Hi,

    Die weitere Verkabelung der RGBW Beleuchtung wäre Interessant 😀
    kannst du die hier auch noch mit rein geben? Wäre MEGA 😉

    Anleitung ist einfach KLASSE !

    Grüße Michi

    1. Hi Michi,

      ich bin da ganz bei dir und der Plan steht schon lange. Leider fehlt mir momentan die Zeit dafür. Ich habe auf auf jeden Fall schon einige Themen in der Pipeline und RGBW ist eines davon. Schau einfach regelmäßig wieder vorbei oder folge mir am besten bei Facebook, falls du es nicht schon tust.

      Wenn du es nicht abwarten kannst, schreib mir auch gern eine Nachricht über die 3D-DIY Facebook Page. Evtl. kann ich dir per PN schon ein paar erste grobe Tipps geben.

    1. Hey Luiz,

      sorry for the delay. I’m kind of busy at the moment.

      First of all: What kind of setup do you use? G29 is only for when you have auto bed leveling deployed, so like a BLTouch or something like it. Elso you just have to use G28, so basically the stock starr Gcode from your slicer.

      If you have a BLTouch and use UBL (as described in another post right here, then you use G28 followed by G29. Here’s my start Gcode:
      G28 ; home all axes
      G29 L0
      G1 Y-2.0 F2000.0 ; move out of print volume
      G1 X210.0 Z0.24 E9 F2000.0 ; start purge line
      G1 X260.0 E12.5 F750.0 ; finish purge line
      G92 E0
      G1 E-6.2000 F3600
      G1 Z0.368 F1002

        1. G29 J is not neccessary. You can use ist, the printer will then probe 3 points of the bed before each print. But G29 L0 does the job too, once you have configured a proper Mesh.

    1. I’m not sure, Luiz. I’ve not yet had an MKS TFT. I think it requires a slight change in the firmware. So my one might not work out of the box with it.

  37. Hallo,
    kannst du eine Version für die TMC2208 Treiber veröffentlichen?
    Oder alternativ einen Überblick geben was alles geändert werden muss.

    Vielen Dank

    1. Hallo Andre,

      da ich kein Board mit 2208er Treibern zum Testen zur Verfügung habe, würde ich ungern die Anpassungen zum Download anbieten. Die hier hochgeladenen Varianten nutze ich selbst und weiß daher, dass sie funktionieren.

      Die Anpassung ist aber theoretisch nicht so schwer, du musst in die conifiguration_adv.h gehen und den 2130/2208 Abschnitt suchen. Dort hast du ja den folgenden Teil:

      #if ENABLED(HAVE_TMC2130) || ENABLED(HAVE_TMC2208)

       // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
       #define X_IS_TMC2130

      die 2130 Zeilen musst du dort mit // auskommentieren und die entsprechenden Zeilen für den 2208 aktivieren, indem du die // entfernst. Außerdem müssten noch die spezifischen Funktionen, wie StallGuard auskommentiert werden. Dann müsste es schon gehen.
       

  38. Wie genau hast Du den BLtouch am Board angeschlossen? Ein Foto wäre echt super. Ich finde da leider keine genauen Infos.

    1. Hi Henry,

      der BLTouch kommt auf den Servos1 Anschluss und zwar in die erste Reihe, die den Thermistor-Anschlüssen am nächsten ist. Das orangene Kabel kommt beim MKS Gen L auf D11 (linker Pin, wenn das Board so vor dir liegt, dass du die Schrift lesen kannst), dann kommt rot für 5V und ganz rechts braun für GND.

      Ich hab zwar ein Foto, wo man das in etwa erkennen kann, aber besonders gut ist das leider nicht geworden. Wenn du magst, schreib mir aber gern bei Facebook, dann kann ich es dir schicken.

      Ansonsten werde ich das Thema auch nochmal in die Planung aufnehmen und da mal ein kleines Tutorial zu verfassen. Im Moment hab ich aber privat viel zu tun und wenig Zeit für neue Artikel.

      1. Besten Dank für die schnelle Antwort. Der Umbau ist mittlerweile schon fertig. Der Lautstärke-Unterschied ist ja enorm. Da kann man jetzt mit ruhigem Gewissen, auch über Nacht, im hellhörigen Mehrfamilienhaus einen Druck laufen lassen.

    1. Hi Sven,

      in der Firmware sind spezielle Funktionen für die TMC2130 aktiviert und den X, Y, Z und E Achsen zugewiesen. Daher wird sie so nicht mit den Allegro Treibern funktionieren. Du könntest sie entsprechend anpassen, indem du die 2130-spezifischen Änderungen, die auch hier beschrieben sind, in der configuration_adv.h wieder auskommentierst. Dann funktioniert es auch mit nicht-Trinamic Treibern

  39. Vielen dank für die sehr gute Anleitung, dass du dir so viel mühe gegeben hast und sogar einen Test mit deiner Anleitung durchgeführt hast.

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.