6. März 2018

TMC2208 Steppertreiber in Marlin integrieren





Heute möchte ich euch erklären wie ihr die TMC2208 Steppertreiber per UART direkt in Marlin integrieren und einstellen könnt. Diese Anleitung bezieht sich auf die Integration ins Ramps/MKS Gen1.4 Board. Andere Boards sind natürlich auch möglich. Es müssen nur die Pins angepasst werden. Pro TMC2208 Treiber werden 2 freie Pins benötigt. Vorteil wäre das man die Vref nicht mehr per Poti einstellen muss und Marlin den Motor automatisch vom Stealthshop in den Spreadcycle Modus schalten kann, je nach benötigter Geschwindigkeit. Ihr solltest löten können oder jemanden kennen der das für euch erledigen kann. Als erstes Benötigt ihr folgende Dinge:


TMC2208 Steppertreiber
passende Kühlkörper
1 KOhm Widerstand
Dupont/Jumper Kabel female - female
Schrumpfschlauch


Als erstes muss an den TMC Treibern eine Lötbrücke geschlossen werden. Macht man das nicht ist der PDN PIN leider nicht mit dem Chip selbst verbunden. Deswegen auch die Treiber kaufen an denen die Pinleisten noch nicht verlötet sind. So lässt sich die Lötbrücke einfacher schließen.





Meine TMC2208 hatten an der Rot eingekreisten Stelle 3 Lötstellen. Die können aber problemlos alle 3 Miteinander verbunden werden.





Nun geht es an verlöten der Stiftleisten. Wichtig ist das die Stiftleisten alle auf die Seite kommen wo der Chip ist. Auf die unbestückte Seite die mit TOP beschriftet wurde kommt der Kühlkörper. Da wurde kein Fehler gemacht. Dort sind durchkontaktierungen direkt zum Chip die die Wärme besser wegleiten als das Gehäuse vom Chip selbst.






Den PDN PIN nach oben legen und den unbeschrifteten leer lassen.




Damit wäre der Treiber fertig für den einbau. Lässt man jetzt alle Jumper im Ramps/MKS würde der Treiber Autark auf 1/16 Steps im Stealthshop Modus laufen.
Nun gehts an das UART Verbindungskabel. Der Aufbau ist recht einfach. TX und RX gehen auf PDN. In die TX Leitung kommt ein 1kOhm widerstand. Man kann die Kabel auch fest ans Board/Treiber löten und sich so die Jumperwire sparen. Kabel bitte immer so kurz wie möglich machen.









Den Treiber nun aufs Board stecken und mit dem  Y Kabel Treiber und Board verbinden. (Das Schwarze was zum Treiber geht ist nur der Schatten vom Roten kabel. Nicht Irritieren lassen davon^^.)





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 Winmerge. Es muss nur noch die Bibliothek für die TMC 2208 installiert werden dazu einfach die IDE öffnen dann auf  Sketch -> Bibliothek einbinden -> Bibliotheken verwalten.....




Im nun geöffneten Fenster einfach 2208 ins Suchfeld schreiben und die Bibliothek installieren. So gehts das mit fast jeder Bibliothek die man evtl noch benötig.





Jetzt nur noch folgendes in der Configuration_adv.h ändern.
Als erstes muss in Zeile 1019 der TMC2208 aktiviert werden. Dazu einfach die // entfernen.

#define HAVE_TMC2208

Nun ab Zeile 11036 freischalten auf welchen Achsen die TMC2208 sind. In meinem Fall hab ich ihn auf E0 freigeschaltet.

//#define X_IS_TMC2208
//#define X2_IS_TMC2208
//#define Y_IS_TMC2208
//#define Y2_IS_TMC2208
//#define Z_IS_TMC2208
//#define Z2_IS_TMC2208
#define E0_IS_TMC2208
//#define E1_IS_TMC2208
//#define E2_IS_TMC2208
//#define E3_IS_TMC2208
//#define E4_IS_TMC2208

Ab Zeile 1052 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. 

#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 superleisen Stealthshop Modus laufen lassen wollt aktiviert Zeile 1103.


#define STEALTHCHOP

Um wichtige Warnungen vom Treiber zu erhalten oder die Strom Einstellungen über Terminal zu ändern muss Zeile 1116 und 1190 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


Nun noch die letzte interessante Funktion. 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 1130 Aktivieren und ab Zeile 1132 den Speed einstellen ab wann der Spreadcycle Modus zuschaltet. Bei mir springt der Extruder immer beim Retract in den Spreadcycle.

#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 eins und das wäre das anpassen der Pins für TX und RX. 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. Sollte man mehr brauchen einfach leere Pins nutzen und dort eintragen. Alle vorgegeben Pins sind am Aux 2 Anschluss zu finden. Da Ramps und MKS Pingleich sind ist am MKS auch der Aux 2 mit identischen Pins vorhanden.

#define X_SERIAL_TX_PIN    59
#define X_SERIAL_RX_PIN    63
#define Y_SERIAL_TX_PIN    64
#define Y_SERIAL_RX_PIN    40
#define Z_SERIAL_TX_PIN    44
#define Z_SERIAL_RX_PIN    42
#define E0_SERIAL_TX_PIN   66
#define E0_SERIAL_RX_PIN   65



Nun sollte alles soweit funktionieren. Bei fragen oder Anregungen bitte hinterlasst einfach einen Kommentar.

3 Kommentare:

  1. Ich muss dir echt ein Lob aussprechen: Im ganzen Netz konnte ich keine so hilfreiche und detailgenaue Anleitung finden.
    Ohne deine Hilfe, hätte ich jetzt keinen flüsterleisen CR-10 :)
    Dickes Danke, mach bitte weiter so!

    AntwortenLöschen
  2. Hey super Anleitung alles klasse beschrieben. Großes Lob.

    Hab leider des Problem das obwohl alle Jumper gesteckt sind ich nur 1/8 Steps habe obwohl ja eigentlich 1/16 sein sollten ne Idee wovon das kommt?

    Gruß Dennis

    AntwortenLöschen
  3. Hallo, müssen die jumper gesteckt bleiben oder raus?

    AntwortenLöschen

Neuer Kommentar im Blog