TMC2130 Steppertreiber
Passende Kühlkörper
Dupont/Jumper Kabel female - female
Schrumpfschlauch
Als erstes sollten alle Stiftleisten am TMC2130 verlötet werden. Anders als bei den TMC2208 muss diesmal keine Lötbrücke geschlossen werden. Dies bezieht sich nur auf die TMC2130 von Watterott. Diese laufen von Haus aus im SPI Modus. Bei den China TMC2130 von FYSETC zb. müssen 2 Brücken geschlossen und eine geöffnet werden da sie im Autark Modus laufen und so über SPI nicht ansprechbar sind. Anleitung zu denen folgt bald.
Nun gehts am Ramps/MKS weiter. Dort benötigen wir je Treiber 4 Pins. 3 Pins davon werden unter allen TMC2130 geteilt. Das wäre der eigentliche SPI Port. Nur erhält jeder Treiber zusätzlich einen CS Pin. Beim Ramps sitzt der SPI Port am Display Adapter bzw an AUX-3.
SPI beim Ramps.
SPI Beim MKS Gen 1.4.
Hier mal noch eine kleine Schematic der SPI plus CS Pins Verkabelung am Ramps board. Die CS Pins sind wie hier gezeigt so Standard im Marlin Sketch. Dazu aber mehr später.
Leider hab ich kein Foto von der Verkabelung am Ramps board zur Hand aber eins als Beispiel von einem MKS. Dort sind die SPI sowie die CS und Endstops zu sehen. Das Board läuft mit Sensorless Homing.
Weiter gehts mit der Freischaltung in Marlin.
Also erstes Benötigt ihr die letzte Bugfix Marlin Version und die aktuelle Arduino IDE. Diese anpassen auf euren Drucker. Bitte keine alte Config nehmen sondern die alte mit der neuen Bugfix Config Comparen. Geht am einfachsten mit Meld oder Winmerge. Es muss nur noch die Bibliothek für die TMC 2130 installiert werden dazu einfach die IDE öffnen dann auf Sketch -> Bibliothek einbinden -> Bibliotheken verwalten.....
Im nun geöffneten Fenster einfach 2130 ins Suchfeld schreiben und die Bibliothek installieren. So gehts das mit fast jeder Bibliothek die man evtl noch benötig.
Jetzt muss noch einiges in der Configuration_adv.h geändert werden. Je nach Bugfix Version können die angegeben Zeilennummern nicht stimmen. Da dort oft Features hinzukommen oder verschoben werden. Also bitte nicht wundern. In der IDE gibt es aber eine super Suchfunktion.
Als erstes muss in Zeile 1056 der TMC2130 aktiviert werden. Dazu einfach die // entfernen.
#define HAVE_TMC2130
Nun ab Zeile 1058 freischalten auf welchen Achsen die TMC2130 sind. In meinem Fall hab ich sie auf X und Y freigeschaltet.
#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
Ab Zeile 1102 sollte nun der RMS Strom für die Treiber eingestellt werden. Hier findet ihr die Rechnenformel. Die Microsteps Einstellung könnt ihr auf 16 lassen. 16 entspricht 1/16 an den A4899/DRV8825 Treibern wenn alle 3 Jumper am Ramps/MKS gesteckt sind. Wenn ihr diese doch ändert bedenkt das die Stepps per mm dann angepasst werden müssen. Mit dem Befehl M906 lässt sich der Strom einstellen ohne das man neu Flashen muss. M906 X1000 stellt den Strom auf 1000ma auf der X Achse.
#define X_CURRENT 1000 // rms current in mA. Multiply by 1.41 for peak current.
#define X_MICROSTEPS 16 // 0..256
Wenn ihr die TMC nun im super leisen Stealthshop Modus laufen lassen wollt aktiviert Zeile 1149. Solltet ihr das Sensorless Homing nutzen wollen muss diese Zeile aktiviert werden.
#define STEALTHCHOP
Um wichtige Warnungen vom Treiber zu erhalten oder die Strom Einstellungen über Terminal zu ändern muss Zeile 1162 und 1214 freigeschaltet werden. Dadurch könnt ihr mit
M906 den Strom verstellen M906 X800 stellt den X Treiber auf 800 milliampere
M122 gibts einige Informationen nützliche Infos aus.
#define MONITOR_DRIVER_STATUS
#define TMC_DEBUG
Jetzt schalten wir noch die automatische Geschwindigkeitseinstellung ein. Marlin kann so eingestellt werden das der Treiber ab einer gewissen Geschwindigkeit in den Spreadcycle Modus geschaltet wird. Dadurch hat er mehr Kraft aber wird auch etwas lauter. Das ist zb bei schnellen verfahren interessant, im Stealthshop kann es nämlich passieren das schritte verloren gehen. Dazu Zeile 1176 Aktivieren und ab Zeile 1178 den Speed einstellen ab wann der Spreadcycle Modus zuschaltet.
#define HYBRID_THRESHOLD
#define X_HYBRID_THRESHOLD 120 // [mm/s]
#define X2_HYBRID_THRESHOLD 100
#define Y_HYBRID_THRESHOLD 120
#define Y2_HYBRID_THRESHOLD 100
#define Z_HYBRID_THRESHOLD 30
#define Z2_HYBRID_THRESHOLD 30
#define E0_HYBRID_THRESHOLD 20
#define E1_HYBRID_THRESHOLD 30
#define E2_HYBRID_THRESHOLD 30
#define E3_HYBRID_THRESHOLD 30
#define E4_HYBRID_THRESHOLD 30
Jetzt fehlt nur noch das Sensorless Homing. Dank dieser Funktion benötigt man keine Endschalter mehr. Interessant vor allem bei Drucker Neubau. Dazu in Zeile 1202 Die Funktion freischalten.
#define SENSORLESS_HOMING // TMC2130 only
Damit ist es aber nicht getan. In Zeile 370 und 371 muss der Bump auf 0 gesetzt werden.
#define X_HOME_BUMP_MM 0
#define Y_HOME_BUMP_MM 0
Auch müssen die Endstops in der Configuration.h Zeile 538 und 539 invertiert werden. Vergisst man das denkt Marlin das die Endstops ausgelöst sind und verfährt die Achsen nicht ins Negative.
#define X_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
Die Homing Sensitivity solltet ihr vorerst niedrig lassen. Das kann man später über den M914 Befehl einstellen. M914 X10 setzt den Wert für X zb. auf 10. Danach ein M500 zum Speichern. Sensorless Homing macht natürlich nur auf X und Y wirklich sinn. Für Z wurde die Funktion zwar auch mittlerweile eingebaut aber damit habe ich mich derzeit noch nicht beschäftigt.
#define X_HOMING_SENSITIVITY 11
#define Y_HOMING_SENSITIVITY 9
Jetzt fehlt nur noch eins und das wäre das anpassen der Pins für CS. Das Ramps und MKS board nutzen beide dafür die Pins_RAMPS.h. Die Pins für X, Y, Z und Extruder sind fest vorgegeben. Sollten diese aber schon anderweitig belegt sein kann man einfach leere Pins nutzen und dort eintragen. Hier nur ein Beispiel für die X Achse.
#define X_STEP_PIN 54
#define X_DIR_PIN 55
#define X_ENABLE_PIN 38
#ifndef X_CS_PIN
#define X_CS_PIN 53
#endif
Anhand der Bilder kann man freie Pins einfach rausfinden und im Sketch eintragen.
Sollte man ein RepRapDiscount Full Graphic Smart Controller nutzen muss entweder der CS Pin für Y geändert werden oder einfach die Automatische SD Karten Erkennung in Zeile 545 abschalten. Über das Menü lässt sich die SD Karte dann aber problemlos einhängen und von Drucken.
//#define SD_DETECT_INVERTED
Nun sollte alles soweit funktionieren. Bei fragen oder Anregungen bitte hinterlasst einfach einen Kommentar.
#define X_STEP_PIN 54
#define X_DIR_PIN 55
#define X_ENABLE_PIN 38
#ifndef X_CS_PIN
#define X_CS_PIN 53
#endif
Anhand der Bilder kann man freie Pins einfach rausfinden und im Sketch eintragen.
Sollte man ein RepRapDiscount Full Graphic Smart Controller nutzen muss entweder der CS Pin für Y geändert werden oder einfach die Automatische SD Karten Erkennung in Zeile 545 abschalten. Über das Menü lässt sich die SD Karte dann aber problemlos einhängen und von Drucken.
//#define SD_DETECT_INVERTED
Nun sollte alles soweit funktionieren. Bei fragen oder Anregungen bitte hinterlasst einfach einen Kommentar.
Keine Kommentare:
Kommentar veröffentlichen
Neuer Kommentar im Blog