Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert sind; Die von diesem Forum gesetzten Cookies düfen nur auf dieser Website verwendet werden und stellen kein Sicherheitsrisiko dar. Cookies auf diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.
  • Willkommen zur 3D-Druck-Community, einer nichtkommerziellen,
  • werbefreien und privaten Plattform rund um das Thema 3D-Drucken
  • vorrangig im deutschsprachigen Raum. Von User für User.
Hallo, Gast! Anmelden Registrieren


Themabewertung:
  • 1 Bewertung(en) - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
[Tipp] Anycubic I3 Mega, TMC2130 Tutorial
#1
[Am 27.02.2018 um 15:10 Uhr aktualisiert]

Hallo allerseits,
 
da es scheinbar doch ein etwas größeres Interesse an den TMC Schrittmotortreibern für den Anycubic i3 Mega gibt, beschreibe ich hier einmal meine Vorgehensweise bei dem Einbau der TMC2130.
Diese "Anleitung" funktioniert nur bei den alten Anycubic i3 Mega Modellen mit dem 16 Bit Atmega 2560 Trigorilla Board.
 
Es gibt, wie bei vielen Dingen nicht nur eine Lösung, weshalb dieses Tutorial als ein optional anpassbarer Leitfaden gesehen werden kann. Da es sich hierbei um ein Forum handelt und somit der Austausch von Wissen eine Thema ist, freue ich mich natürlich über Meinungen, konstruktive Kritik oder eine Beschreibung, wie ihr den Einbau vielleicht realisiert habt. 
 
Bei den TMC2130 handelt es sich, im Vergleich z.B. zu den TMC2208, um Schrittmotortreiber, welche in beide Richtungen mit dem Mikrocontroller kommunizieren können. Die dafür nötige Variante, mit Anschluss an das SPI, wird hier beschrieben.
 
Die TMC2130 könnt ihr von diversen Anbietern beziehen. Unter anderen gearbest oder auch der Firma Watterott, von denen ich meine gekauft habe. Hierbei gibt es Varianten mit fertig gelöteten Stiftleisten und welche, bei denen diese noch nicht gelötet sind. Es empfiehlt sich hierbei die zweite Version zu kaufen, da die Stifte nicht alle in die gleiche Richtung zeigen dürfen. Solltet ihr dennoch die fertig gelöteten erwischt haben, könnt ihr diese natürlich auch nachträglich wieder entfernen. Da es selbst mit Entlötpumpe oder Entlötlitze schwierig ist alle 8 Pins komplett frei zu bekommen, kann man auch versuchen das schwarze Verbindungsstück vorsichtig von den Stiften zu ziehen. Damit können anschließend alle einzeln ausgelötet werden.
 
Ich verwende bei den nach oben gerichteten eine abgewinkelte Stiftleiste, womit es keine Probleme mit dem darüber befindlichen Lüfter gibt. Hierbei muss ich aber erwähnen, dass ich den Originallüfter gegen einen 60x60x15 mm ersetzt habe und somit etwas andere Platzbedingungen herrschen. 
Der Halter wurde hierbei durch folgenden ausgetauscht:
 
Nach unten zeigen die Pins:
GND, VIO, M1B, M1A, M2A, M2B, GND, VM 
Dir, Step, En
   
 
Nach oben gerichtet:
SDO, CS, SCK, SDI,   evt. Diag1 (optional)

Das Foto zeigt den E1 Treiber, bei dem aus Platzgründen jedoch gerade Stifte verwendet werden sollten. 
Diag1, welcher nicht separat beschriftet ist, wird benötigt, wenn man SENSORLESS_HOMING verwenden möchte. 
Darauf gehe ich später noch ein.
Wer es besonders kompakt haben möchte, kann auch komplett auf die Stiftleisten nach oben verzichten und die Drähte direkt auf die Treiberplatine löten. Man muss nur berücksichtigen, dass dann alle verbauten Treiber fest miteinander verbunden sind.
   
 
Jetzt sollte es in etwa so aussehen.
Vergesst nicht die Montage der Kühlkörper. Hierbei könnt ihr separat erhältliche Kühlkörper (z.B. die schwarzen) oder einfach die von euren alten Treibern verwenden. Mit einem ausreichend starken Lüfter direkt darüber sollten die ICs auch nicht überhitzen. Die Treiber laufen ja in der Regel weit unter ihrem maximal möglichen Strom und die TMC2130 verfügen zudem noch über eine Haltestromabsenkung, welche wiederum die Temperatur dieser und der Schrittmotoren reduziert.
   
 
Wie an den unter der Platine heraus schauenden Kabeln bereits zu erahnen, geht es weiter mit dem Anschluss der nach oben gelöteten Pins. Was die TMC2130 besonders von den TMC2208 unterscheidet, ist die Möglichkeit sie an das SPI anzuschließen. 
Hierbei werden die SDO, SCK und SDI Pins jeweils parallel geschaltet. Bei den CS Pins benötigt jeder eine eigene Leitung.
Die nachfolgenden zwei Bilder sind aus einem Video von Thomas Sanladerer entnommen und veranschaulichen die Verkabelung.
Verwendet man weniger Treiber oder noch den E1, kann dieser Schaltplan einfach erweitert oder reduziert werden. 
   
   
 
Der Anycubic i3 Mega hat hierbei jedoch den Nachteil, dass diese Pins vom Trigorila-Board bereits für das Display verwendet werden, weshalb wir hier etwas löten müssen. Bei den CS-Pins ist man relativ frei, da man nur einen ungenutzten Pin des Atmega benötigt, welcher anschließend in der FW als CS Pin definiert wird.
In meinem Fall habe ich alle Pins an die Unterseite, direkt unter der Aufsteckplatine, gelötet. Die SDO, SCK und SDI Pins könnte man aber auch einfach an die Oberseite dieser Platine löten. Eben wie es einem besser gefällt.
Da sie bei mir steckbar bleiben sollen, habe ich Buchsenleisten an die entsprechenden Pins gelötet.
   
   
 
Der ganze Spaß wird dann noch nach dem oben gezeigten Schaltplan verkabelt.
   
   
 
Hier sieht man auch nochmal den Grund, warum bei dem E0 Treiber keine gewinkelten Stiftleisten Anwendung finden.
   
 
Der Lüfter passt natürlich auch noch dazwischen.
   
 
Falls jemand für die X-Achse SENSORLESS_HOMING verwenden möchte, muss er noch die Diag1 Pins des entsprechenden Treibers anschließen. Ein einfacher und sehr schneller Weg ist hierbei direkt auf der Aufsteckplatine. 
Ich verwende diese Funktion aktuell bei der X-Achse. Der Standard-Endschalter ist hierfür X_min. Vergesst nicht den bisherigen Endschalter ab zu klemmen, da dieser eine invertierte Logik besitzt. Ansonsten bewegt sich die X-Achse nur in eine Richtung. Zu den nötigen Marlin Einstellungen später mehr.
   
 
Wenn ihr den Drucker eh schon offen habt, könnt ihr beim Zusammenbauen auch gleich die Grundplatte umdrehen. Die fehlenden Aussparungen bei dem Trigorilla-Board-Lüfter sind nicht gerade förderlich für die Kühlung.
   
 
 
Auf gehts zur Programmierung.
 
Benötigt werden eine Programmieroberfläche, wobei sich Arduino IDE als ein einfacher Einstieg anbietet. Wer sich mehr mit dem Programmieren befassen möchte, dem kann ich auch Atmel Studio mit der Arduino Erweiterung empfehlen. Dort ist es wesentlich leichter zwischen verschiedenen Programmdateien zu wechseln, wenn man z.B. in den Code einer verwendeten Funktion schauen oder alle Aufrufe einer solchen finden möchte.
 
 
Als Marlin Grundlage verwende ich eine bereits für den Anycubic I3 Mega angepasste Version.
 
 
Ihr benötigt hierbei den kompletten Marlin Ordner.
Nach der Installation der Arduino IDE öffnet ihr die enthaltene Marlin.ino, mit der alle anderen Dateien geöffnet werden.
Für uns sind die drei Dateien configuration.h, configuration_adv.h und pins_TRIGORILLA.h interessant.
 
Die von mir folgenden Codeänderungen gelten für die Verwendung von fünf TMC2130, wobei die X-Achse ohne Endschalter auskommt.
Bei anderen Konfigurationen ist einfach der entsprechende Code nicht einzufügen bzw. die Auskommentierung nicht aufzuheben.
 
Um zu erkennen, in welcher Weiße sich der Code geändert hat, zeige ich immer den ursprünglichen Code (bisher) gefolgt von den Anpassungen (jetzt).
 
Änderungen in der configuration.h
 
Zeile 500
bisher
#define X_MIN_ENDSTOP_INVERTING true
jetzt
#define X_MIN_ENDSTOP_INVERTING false
 
Zeile 552
bisher
#define DEFAULT_MAX_ACCELERATION {3000, 3000, 60, 10000}
jetzt
#define DEFAULT_MAX_ACCELERATION {2000, 1500, 60, 10000}

Zeile 562 ff
bisher
#define DEFAULT_ACCELERATION                 3000
#define DEFAULT_RETRACT_ACCELERATION  3000
#define DEFAULT_TRAVEL_ACCELERATION   3000
jetzt
#define DEFAULT_ACCELERATION                 2000
#define DEFAULT_RETRACT_ACCELERATION  1500
#define DEFAULT_TRAVEL_ACCELERATION   2000
Mit den Beschleunigungswerten kann man noch etwas spielen. Je höher der Treiberstrom, desto größer kann auch dieser Wert sein. 
Bei 900 mA bei der X-Achse hat auch 3000 funktioniert, war aber an der Grenze. Am besten mal selbst probieren. Mein Dual-Hotend dürfte etwas schwerer sein, als das Original, damit muss ich den Wert sowieso niedriger wählen.
Y-Achse hat selbst mit 900 mA Steps verloren. Das merkt ihr daran, wenn beim Drucken Schichten verschoben sind.

Zeile 756 ff
bisher
#define INVERT_X_DIR true
#define INVERT_Y_DIR false
#define INVERT_Z_DIR false
jetzt
#define INVERT_X_DIR false
#define INVERT_Y_DIR true
#define INVERT_Z_DIR true
 
Zeile 767
bisher
#define INVERT_E0_DIR false
jetzt
#define INVERT_E0_DIR true
 
 
Änderungen in der configuration_adv.h
 
Zeile 987
bisher
//#define HAVE_TMC2130
jetzt
#define HAVE_TMC2130
 
Zeile 1004 ff
bisher
//#define X_IS_TMC2130
//#define Y_IS_TMC2130
//#define Z_IS_TMC2130
//#define Z2_IS_TMC2130
//#define E0_IS_TMC2130
jetzt
#define X_IS_TMC2130
#define Y_IS_TMC2130
#define Z_IS_TMC2130
#define Z2_IS_TMC2130
#define E0_IS_TMC2130
 
Ab Zeile 1032 sind die Einstellungen für den Betrieb der TMC2130. Die Werte sind ein grober Richtwert. Sollte der Schrittmotor Steps überspringen, ist entweder der entsprechende Strom oder der HOLD_MULTIPLIERER zu erhöhen.
An sich kann für den Anfang alles gelassen werden.
Höchstens den HOLD_MULTIPLIER würde ich etwas anpassen.
 
Zeile 1033
bisher
#define HOLD_MULTIPLIER  0.5
jetzt
#define HOLD_MULTIPLIER  0.3
 
Zeile 1086 ff
bisher
 //#define MONITOR_DRIVER_STATUS

 #if ENABLED(MONITOR_DRIVER_STATUS)
   #define CURRENT_STEP_DOWN     50  // [mA]
   #define REPORT_CURRENT_CHANGE
   #define STOP_ON_ERROR
 #endif
jetzt
 #define MONITOR_DRIVER_STATUS
 
 #if ENABLED(MONITOR_DRIVER_STATUS)
   #define CURRENT_STEP_DOWN     50  // [mA]
   #define AUTO_ADJUST_MAX     1300  // [mA]
   #define REPORT_CURRENT_CHANGE
   #define STOP_ON_ERROR
 #endif
 
Zeile 1128 ff
bisher
 //#define SENSORLESS_HOMING 
 
 #if ENABLED(SENSORLESS_HOMING)
   #define X_HOMING_SENSITIVITY  8
   #define Y_HOMING_SENSITIVITY  8
 #endif
jetzt
 #define SENSORLESS_HOMING 
 
 #if ENABLED(SENSORLESS_HOMING)
   #define X_HOMING_SENSITIVITY  8
   #define Y_HOMING_SENSITIVITY  8
   #define X_HOME_BUMP_MM  0
   #define Y_HOME_BUMP_MM  0
 #endif
 
Änderungen in der pins_TRIGORILLA.h
 
Zeile 23 ff
#define X_STEP_PIN         54
#define X_DIR_PIN          55
#define X_ENABLE_PIN       38

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

#define Y2_STEP_PIN        36
#define Y2_DIR_PIN         34
#define Y2_ENABLE_PIN      30

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

#define Z2_STEP_PIN        36
#define Z2_DIR_PIN         34
#define Z2_ENABLE_PIN      30

#define E0_STEP_PIN        26
#define E0_DIR_PIN         28
#define E0_ENABLE_PIN      24
 
jetzt
#define X_STEP_PIN         54
#define X_DIR_PIN          55
#define X_ENABLE_PIN       38
#define X_CS_PIN           29
#define Y_STEP_PIN         60
#define Y_DIR_PIN          61
#define Y_ENABLE_PIN       56
#define Y_CS_PIN           25
#define Y2_STEP_PIN        36
#define Y2_DIR_PIN         34
#define Y2_ENABLE_PIN      30

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

#define Z2_STEP_PIN        36
#define Z2_DIR_PIN         34
#define Z2_ENABLE_PIN      30
#define Z2_CS_PIN          37
#define E0_STEP_PIN        26
#define E0_DIR_PIN         28
#define E0_ENABLE_PIN      24
#define E0_CS_PIN          35

Das war es schon mit den Änderungen.
Jetzt nur noch auf den Drucker überspielen. Dazu diesen per USB an den PC anschließen.
Achtet darauf, dass keine anderen Programme, wie z.B. Cura geöffnet sind, da diese teilweise einen COM-Port zum Drucker öffnen, welcher dann blockiert ist und nicht mehr für das Programmieren zur Verfügung steht.
 
In der Arduino IDE müsst ihr folgendes auswählen:
Unter dem Menüpunkt: Werkzeuge
Board: "Arduino/Genuino Mega or Mega 2560"
Prozessor: "ATmega2560 (Mega 2560)"
Port: der, an dem der Drucker angeschlossen ist (gegebenenfalls im Gerätemanager nachschauen)
Anschließend könnt ihr mit dem Haken-Symbol das Programm kompilieren. Damit seht ihr, ob euch ein Programmierfehler, z.B. verschrieben, unterlaufen ist. 
Wenn kein Fehler gefunden wird kommt die Meldung: "Kompilieren abgeschlossen".
Dann kann mit dem "Pfeil nach rechts" Symbol das Programm auf den Drucker überspielt werden. 
Wartet, bis der Text "Hochladen abgeschlossen" erscheint.
 
Bevor ihr mit dem ersten Druck startet, solltet ihr jede Achse sowie den Extruder überprüfen, ob die Laufrichtung stimmt.
Hierzu kann man das Touch-Screen verwenden oder eine Software wie Repetier-Host. Diese hat noch den Vorteil, dass man die Achsen einzeln in die Home-Position bringen kann. Zudem gibt es einen Notstopp-Knopf, falls ungewollte Kontakte mit dem Druckbett oder ein nicht funktionierender Endschalter auftreten.
 
Sollten bei dem Kompilieren des Programm Fehler auftreten, diese bitte mit der angezeigten Fehlermeldung hier posten. Mein Drucker hat mittlerweile nicht mehr die oben beschriebene Software 1:1 aufgespielt, wodurch ich nicht 100% sicher bin, dass ich nicht ein oder zwei Zeilen vergessen habe zu erwähnen. 
 
Ich hoffe, dass dieses kleine Tutorial dem einen oder anderen bei der Installation der TMC2130 weiter hilft und freue mich über Rückmeldungen.
 
Beste Grüße und ein erfolgreiches Drucken
Feal
 
 
to top
#2
Hey, vielen dank für dieses Ausführliche tutorial! Das hat mir echt weiter geholfen. Ein kleines problem habe ich trotzdem:
Ich will das Sensorless homing auch bei der Y Achse verwenden, verstehe jedoch nichtmal was ich für X anschließen soll... Könntest du mir da vielleicht helfen?
Ansonsten, klasse Tutorial!
 
to top
#3
Hallo plankins,
freut mich, wenn das Tutorial eine Hilfe ist.

Hier hast du die nötigen Pins der Schrittmotortreiber:
   

Für X verbindest du dann den DIAG1 Pin für X-Homing mit dem markierten Pin.
   

Für Y-Homing müssteste mal messen, wo der Endschalter hin läuft. Ist theoretisch vom Atmega der digitale Pin 42.
Komme erst Freitag Abend heim. Kann somit gerade nicht nachschauen.

Versuchs vielleicht bis dahin einmal mit X-Homing.
Oder einfach ein Multimeter schnappen Wink

Gruß
Feal
 
to top
#4
Okay, habe jetzt erstmal Y verbunden, habe aber inzwischen größere probleme. Ich mach mal einen Thread auf...
 
to top
#5
Sehr interessant. WAS genau verändert die Aktion am i3 Mega? Wir haben ein Modell von Februar, wäre das geeignet? Dessy
Den Spaß am 3D-Druck sollte man sich auch durch gelegentliche Querschĺäger nicht vermiesen lassen.
 
to top
#6
Hallo Dessy,

größte Unterschied, den man merken dürfte, sind die sehr leisen Schrittmotoren. Vorausgesetzt, man verwendet den stealthChop Mode.
Die Treiber lassen sich über ein Terminal oder die Marlin-Firmware steuern. Erleichtert ein Optimieren der Einstellungen, wenn man öfters am Drucker bastelt.
Der Treiberstrom passt sich in gewissen Bereichen an die Belastung der Motoren an. Stichworte: Haltestromabsenkung und Spitzenströme. Hast somit eine geringere Wärmeentwicklung im Motor / Treiber und zugleich bei Bedarf dennoch genügend Leistung.

Das Februar-Modell könnte schon das neue 32-Bit Board eingebaut haben. Die Anleitung beruht auf dem alten 8-Bit Board mit dem Atmega 2560.
In diesem Thread:
http://www.3d-druck-community.de/thread-20649-page-14.html?highlight=anycubic+i3+mega
wurde auch schon über das Thema diskutiert. Ein oder zwei sind da auch auf das alte Board umgestiegen.
 
to top
#7
Vielen Dank für die leicht verständliche Information. Als Anfänger hat man die Terminologien noch nicht so richtig drauf, ich bin deshalb vom DvD schon verwarnt worden und rechne mit dem baldigen "Rausschmiss". Es gibt aber auch wirklich nette Leute hier, die mit einem bald 80-jährigen Verständnis haben, wenn der sich noch ans 3D-Drucken traut. Dessy
Den Spaß am 3D-Druck sollte man sich auch durch gelegentliche Querschĺäger nicht vermiesen lassen.
 
to top
#8
Und wenn das Seitengeschiesse jetzt nicht bald aufhört, Du Dich nicht am Riemen reisst und wenigstens sichtlich ein wenig bemühst, wird das tatsächlich so passieren. Da kannst Du auch 100 sein.
AchtungOffizielle 3DDC T-Shirts - Elektrolyte... Einstellfahrplan
1. Das Bundesministerium für Wissenschaft hat bestätigt -  lesen gefährdet die Dummheit!
2. Kaum macht man es richtig, funktioniert es. Aber nur weil etwas funktioniert, hat man es nicht zwingend richtig gemacht ...
3. Wenn man die Natur einer Sache durchschaut hat, werden Dinge berechenbar.
4. Es sind die unscheinbaren kleinen Handgriffe die beim 3D Druck zum  Erfolg führen, schludern rächt sich überall, auch wenn man nicht mehr daran denkt.
 
to top
#9
Thumbs Up 
Hallo Feal, vielen Dank für das ausführliche Tutorial
Bin Neueinsteiger (heiße Marcel, bin 43) im Thema 3D Druck und durch Dragonhart über das Rockcrawler Modellbauforum zum i3 Mega und auch zu 3ddc gekommen. Mir ist soweit alles klar denke ich, nur noch eine Frage zum sensorless Homing. Welchen Vorteil bringt das und welcher Abschnitt in deinem Tut bezieht sich da drauf bzw was müsste ich weg lassen, wenn ich das nicht nutzen möchte?
Gruß Marcel Smile
 
to top
#10
Beim sensorless homing verwendet man statt endschaltern an den einzelnen achsen eine diagnosefunktion des motortreibers.
Diese speziellen motortreiber könen auf dem DIAG anschluss einen impuls ausgeben wenn der motor einen schritt verliert.
Wenn man also hart gegen einen anschlag fährt bis der motor einmal überspringt dann gibts ein signal am diag anschluss. Dann ist man wahrscheinlich am nullpunkt angekommen.

Vorteil man spart sich halt schalter und leitungen.
Nachteil ist, das bei problemen mit der mechnanik (und schrittverlusten dadurch) der endstop an beliebigen anderen stellen ausgelöst werden kann und dann das koordinatensystem vom drucker völlig falsch ist.
Ein Leben ohne 3D-Druck ist möglich, aber sinnlos.
 
to top
  


Möglicherweise verwandte Themen...
Thread Verfasser Replies Views Last Post
  Laserschnitt mit Anycubic I3 Mega Bahni 5 411 20.03.2023, 17:07
Last Post: Bahni
  Anycubic I3 Mega - Druckervorstellung und bekannte Probleme Roman 337 237.561 27.12.2022, 12:38
Last Post: gafu
  Anycubic i3 Mega Divefrog 1 586 15.06.2022, 11:16
Last Post: Speedy
  Anycubic i3 MEGA Ultrabase Gubba 14 9.842 07.04.2022, 11:13
Last Post: xtratom
  Anycubic I3 Mega S PETG Z-Naht und Marken auf der Aussenwand Smee 4 1.075 29.12.2021, 01:42
Last Post: gafu



Browsing: 1 Gast/Gäste