Marlin Firmware - Dual Driver aktivieren

Normalerweise wird bei den meisten RepRap Druckern die beiden Z-Achsen Schrittmotoren über eine Y-Verkabelung durch einen Schrittmotor Treiber angesteuert. Wenn jedoch ein freier Treiber auf dem Board vorhanden ist, kann dieser als eigener Treiber für den zweiten Schrittmotor genutzt werden.

 

Warum denn die Z-Achsen Motoren getrennt ansteuern?

Normalerweise findet man den meisten Verdrahtungs Schemata für RepRap 3D Drucker, dass die beiden Z-Achsen Schrittmotoren mit demselben Treiberboard angesteuert werden. Dazu werden einfach beide Motoren parallel mit den Anschluß-Pins auf dem Controller-Board in einer Y-Schaltung verbunden.

Der Vorteil dieser Ansteuerung ist, dass beide Motore mit denselben Impulsen angesteuert werden und damit auf jeden Fall synchron laufen.

Der Nachteil jedoch ist, dass sich durch die Parallelschaltung der Strom pro Motor halbiert wird. Der Treiber liefert ja immer noch den selben maximalen Strom. Bei Schrittmotoren ist aber das Drehmoment und Haltemoment abhängig vom Spulenstrom. Dementsprechend liefert jeder der Schrittmotor nun ein geringeres Drehmoment.

 

Wie wird denn jetzt der Dualdriver aktiviert?

Anpassung der Verkabelung

Zuerst einmal muss die Verkabelung entsprechend angepasst werden. Dazu wird der zweite Z-Achsen Schrittmotor auf eine freien Treiber Ausgang gelegt. Im folgenden Bild am Beispiel eines RepRap RUMBA Boards ist dies der E2 (Extruder 3) Anschluss.


firmware-2nd-driver-1920

 

Anpassung in der Datei "configuration_adv.h"

Damit der Dual Driver Modus aktiviert wird, muss in der Datei "configuration_adv.h" die Zeile "#define Z_DUAL_STEPPER_DRIVERS" aktiviert werden, indem die beiden "//" gelöscht werden.

// A single Z stepper driver is usually used to drive 2 stepper motors.
// Uncomment this define to utilize a separate stepper driver for each Z axis motor.
// Only a few motherboards support this, like RAMPS, which have dual extruder support (the 2nd, often unused, extruder driver is used
// to control the 2nd Z axis stepper motor). The pins are currently only defined for a RAMPS motherboards.
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
#define Z_DUAL_STEPPER_DRIVERS
#ifdef Z_DUAL_STEPPER_DRIVERS
  #undef EXTRUDERS
  #define EXTRUDERS 1
#endif

 

Anpassung in der Datei "pins.h" für das RUMBA Board

Je nach eingesetztem Board und freiem Extruder Treiber muss in der "pins.h" die entsprechenden Ausgänge auf den 2ten Z-Achsen Treiber gelegt werden. Hier die Konfiguration für das RUMBA Board und obigen Abbildung verwendeten Treiber für E2, dazu erst den Anfang der Definition für das RUMBA Board suchen:

/****************************************************************************************
* RUMBA pin assignment
*
****************************************************************************************/
#if MOTHERBOARD == 80
#define KNOWN_BOARD 1

Dann die Zeilen der entsprechenden Extruder Definition kopieren und als zweiten Z-Treiber eintragen:

#define Z_STEP_PIN         57
#define Z_DIR_PIN          56
#define Z_ENABLE_PIN       62
#define Z_MIN_PIN          33
#define Z_MAX_PIN          32
//to use Z_DUAL_STEPPER_DRIVER in Marlin
#define Z2_STEP_PIN        29
#define Z2_DIR_PIN         28
#define Z2_ENABLE_PIN      39
#define E0_STEP_PIN        23
#define E0_DIR_PIN         22
#define E0_ENABLE_PIN      24
#define E1_STEP_PIN        26
#define E1_DIR_PIN         25
#define E1_ENABLE_PIN      27
#define E2_STEP_PIN        29
#define E2_DIR_PIN         28
#define E2_ENABLE_PIN      39

 

Anpassung in der Datei "pins.h" für das RAMPS 1.4 Board

Für das RAMPS 1.4 Board ist diese Konfiguration bereits in Marlin hinterlegt und muss daher nicht mehr gemacht werden.

#if MOTHERBOARD == 33 || MOTHERBOARD == 34 || MOTHERBOARD == 35 || MOTHERBOARD == 77 || MOTHERBOARD == 67 || MOTHERBOARD == 68

...

#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
#define E1_STEP_PIN        36
#define E1_DIR_PIN         34
#define E1_ENABLE_PIN      30

Die mit einem * markierten Felder sind Pflichtfelder.

  • Erklärungen

    Super gut und verständlich alle Bereiche erklärt.Weiter so!!