https://www.arduino.cc/en/main/software
Als Marlin Grundlage verwende ich eine bereits für den Anycubic I3 Mega angepasste Version.
https://github.com/derhopp/Marlin-with-Anycubic-i3-Mega-TFT
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.
Vielen Dank für die Erlaubnis an „Feal“ dieses Tutorial auf 3DFans.de veröffentlichen zu dürfen. Solltet Ihr Fragen diesbezüglich haben, könnt Ihr Euch gerne in der „3D-Druck-Community.de“ anmelden und diese dort stellen.