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