Anycubic I3 Mega, TMC2130 Tutorial - Die Programmierung

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.


Zitat

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.


Alle angegebenen Firmen- und Markennamen, sowie deren Warenzeichen sind Eigentum Ihrer Inhaber und dienen lediglich zur Identifikation und Beschreibung der Produkte.

    Kommentare

    Bavaria
    ANZEIGE
    BFI3D
    ANZEIGE
    Bavaria
    ANZEIGE