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.

Lese auch:  3D Druck Anfängertipps

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

Lese auch:  RGB(W) Beleuchtung als Statusanzeige mit Marlin

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.

83 Gedanken zu “TMC2130 Upgrade für Tevo Tornado”

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  15. 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)

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

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

  18. 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?

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

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

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

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

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

Schreibe einen Kommentar

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.