diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index f19dc3db0..58d095529 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -144,10 +144,6 @@ // Play a little bit with small adjustments (0.5mm) and check the behaviour. // The M119 (endstops report) will start reporting the Z2 Endstop as well. - #define Z2_STEP_PIN E2_STEP_PIN // Stepper to be used to Z2 axis. - #define Z2_DIR_PIN E2_DIR_PIN - #define Z2_ENABLE_PIN E2_ENABLE_PIN - // #define Z_DUAL_ENDSTOPS #if ENABLED(Z_DUAL_ENDSTOPS) @@ -161,8 +157,10 @@ // Same again but for Y Axis. //#define Y_DUAL_STEPPER_DRIVERS -// Define if the two Y drives need to rotate in opposite directions -#define INVERT_Y2_VS_Y_DIR true +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Define if the two Y drives need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which diff --git a/Marlin/configurator/config/Configuration_adv.h b/Marlin/configurator/config/Configuration_adv.h index 7a12bec5b..8ef93375a 100644 --- a/Marlin/configurator/config/Configuration_adv.h +++ b/Marlin/configurator/config/Configuration_adv.h @@ -144,10 +144,6 @@ // Play a little bit with small adjustments (0.5mm) and check the behaviour. // The M119 (endstops report) will start reporting the Z2 Endstop as well. - #define Z2_STEP_PIN E2_STEP_PIN // Stepper to be used to Z2 axis. - #define Z2_DIR_PIN E2_DIR_PIN - #define Z2_ENABLE_PIN E2_ENABLE_PIN - // #define Z_DUAL_ENDSTOPS #if ENABLED(Z_DUAL_ENDSTOPS) @@ -161,8 +157,10 @@ // Same again but for Y Axis. //#define Y_DUAL_STEPPER_DRIVERS -// Define if the two Y drives need to rotate in opposite directions -#define INVERT_Y2_VS_Y_DIR true +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Define if the two Y drives need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which diff --git a/Marlin/example_configurations/Felix/Configuration_adv.h b/Marlin/example_configurations/Felix/Configuration_adv.h index 36064d3ce..06f909997 100644 --- a/Marlin/example_configurations/Felix/Configuration_adv.h +++ b/Marlin/example_configurations/Felix/Configuration_adv.h @@ -152,10 +152,6 @@ // Play a little bit with small adjustments (0.5mm) and check the behaviour. // The M119 (endstops report) will start reporting the Z2 Endstop as well. - #define Z2_STEP_PIN E2_STEP_PIN // Stepper to be used to Z2 axis. - #define Z2_DIR_PIN E2_DIR_PIN - #define Z2_ENABLE_PIN E2_ENABLE_PIN - // #define Z_DUAL_ENDSTOPS #if ENABLED(Z_DUAL_ENDSTOPS) @@ -169,8 +165,10 @@ // Same again but for Y Axis. //#define Y_DUAL_STEPPER_DRIVERS -// Define if the two Y drives need to rotate in opposite directions -#define INVERT_Y2_VS_Y_DIR true +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Define if the two Y drives need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which diff --git a/Marlin/example_configurations/Hephestos/Configuration_adv.h b/Marlin/example_configurations/Hephestos/Configuration_adv.h index 2fac324e9..dc21c0c38 100644 --- a/Marlin/example_configurations/Hephestos/Configuration_adv.h +++ b/Marlin/example_configurations/Hephestos/Configuration_adv.h @@ -152,10 +152,6 @@ // Play a little bit with small adjustments (0.5mm) and check the behaviour. // The M119 (endstops report) will start reporting the Z2 Endstop as well. - #define Z2_STEP_PIN E2_STEP_PIN // Stepper to be used to Z2 axis. - #define Z2_DIR_PIN E2_DIR_PIN - #define Z2_ENABLE_PIN E2_ENABLE_PIN - // #define Z_DUAL_ENDSTOPS #if ENABLED(Z_DUAL_ENDSTOPS) @@ -169,8 +165,10 @@ // Same again but for Y Axis. //#define Y_DUAL_STEPPER_DRIVERS -// Define if the two Y drives need to rotate in opposite directions -#define INVERT_Y2_VS_Y_DIR true +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Define if the two Y drives need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which diff --git a/Marlin/example_configurations/K8200/Configuration_adv.h b/Marlin/example_configurations/K8200/Configuration_adv.h index 2a034dc53..52b7466f6 100644 --- a/Marlin/example_configurations/K8200/Configuration_adv.h +++ b/Marlin/example_configurations/K8200/Configuration_adv.h @@ -152,10 +152,6 @@ // Play a little bit with small adjustments (0.5mm) and check the behaviour. // The M119 (endstops report) will start reporting the Z2 Endstop as well. - #define Z2_STEP_PIN E2_STEP_PIN // Stepper to be used to Z2 axis. - #define Z2_DIR_PIN E2_DIR_PIN - #define Z2_ENABLE_PIN E2_ENABLE_PIN - // #define Z_DUAL_ENDSTOPS #if ENABLED(Z_DUAL_ENDSTOPS) @@ -169,8 +165,10 @@ // Same again but for Y Axis. //#define Y_DUAL_STEPPER_DRIVERS -// Define if the two Y drives need to rotate in opposite directions -#define INVERT_Y2_VS_Y_DIR true +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Define if the two Y drives need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which diff --git a/Marlin/example_configurations/RigidBot/Configuration_adv.h b/Marlin/example_configurations/RigidBot/Configuration_adv.h index e68085ba7..7e3eda258 100644 --- a/Marlin/example_configurations/RigidBot/Configuration_adv.h +++ b/Marlin/example_configurations/RigidBot/Configuration_adv.h @@ -144,10 +144,6 @@ // Play a little bit with small adjustments (0.5mm) and check the behaviour. // The M119 (endstops report) will start reporting the Z2 Endstop as well. - #define Z2_STEP_PIN E2_STEP_PIN // Stepper to be used to Z2 axis. - #define Z2_DIR_PIN E2_DIR_PIN - #define Z2_ENABLE_PIN E2_ENABLE_PIN - // #define Z_DUAL_ENDSTOPS #if ENABLED(Z_DUAL_ENDSTOPS) @@ -161,8 +157,10 @@ // Same again but for Y Axis. //#define Y_DUAL_STEPPER_DRIVERS -// Define if the two Y drives need to rotate in opposite directions -#define INVERT_Y2_VS_Y_DIR true +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Define if the two Y drives need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which diff --git a/Marlin/example_configurations/SCARA/Configuration_adv.h b/Marlin/example_configurations/SCARA/Configuration_adv.h index e2c4571a2..cc80b88bb 100644 --- a/Marlin/example_configurations/SCARA/Configuration_adv.h +++ b/Marlin/example_configurations/SCARA/Configuration_adv.h @@ -152,10 +152,6 @@ // Play a little bit with small adjustments (0.5mm) and check the behaviour. // The M119 (endstops report) will start reporting the Z2 Endstop as well. - #define Z2_STEP_PIN E2_STEP_PIN // Stepper to be used to Z2 axis. - #define Z2_DIR_PIN E2_DIR_PIN - #define Z2_ENABLE_PIN E2_ENABLE_PIN - // #define Z_DUAL_ENDSTOPS #if ENABLED(Z_DUAL_ENDSTOPS) @@ -169,8 +165,10 @@ // Same again but for Y Axis. //#define Y_DUAL_STEPPER_DRIVERS -// Define if the two Y drives need to rotate in opposite directions -#define INVERT_Y2_VS_Y_DIR true +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Define if the two Y drives need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which diff --git a/Marlin/example_configurations/TAZ4/Configuration_adv.h b/Marlin/example_configurations/TAZ4/Configuration_adv.h index 400f44f34..e12918530 100644 --- a/Marlin/example_configurations/TAZ4/Configuration_adv.h +++ b/Marlin/example_configurations/TAZ4/Configuration_adv.h @@ -152,10 +152,6 @@ // Play a little bit with small adjustments (0.5mm) and check the behaviour. // The M119 (endstops report) will start reporting the Z2 Endstop as well. - #define Z2_STEP_PIN E2_STEP_PIN // Stepper to be used to Z2 axis. - #define Z2_DIR_PIN E2_DIR_PIN - #define Z2_ENABLE_PIN E2_ENABLE_PIN - // #define Z_DUAL_ENDSTOPS #if ENABLED(Z_DUAL_ENDSTOPS) @@ -169,8 +165,10 @@ // Same again but for Y Axis. //#define Y_DUAL_STEPPER_DRIVERS -// Define if the two Y drives need to rotate in opposite directions -#define INVERT_Y2_VS_Y_DIR true +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Define if the two Y drives need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which diff --git a/Marlin/example_configurations/WITBOX/Configuration_adv.h b/Marlin/example_configurations/WITBOX/Configuration_adv.h index d4a047343..71492d2de 100644 --- a/Marlin/example_configurations/WITBOX/Configuration_adv.h +++ b/Marlin/example_configurations/WITBOX/Configuration_adv.h @@ -152,10 +152,6 @@ // Play a little bit with small adjustments (0.5mm) and check the behaviour. // The M119 (endstops report) will start reporting the Z2 Endstop as well. - #define Z2_STEP_PIN E2_STEP_PIN // Stepper to be used to Z2 axis. - #define Z2_DIR_PIN E2_DIR_PIN - #define Z2_ENABLE_PIN E2_ENABLE_PIN - // #define Z_DUAL_ENDSTOPS #if ENABLED(Z_DUAL_ENDSTOPS) @@ -169,8 +165,10 @@ // Same again but for Y Axis. //#define Y_DUAL_STEPPER_DRIVERS -// Define if the two Y drives need to rotate in opposite directions -#define INVERT_Y2_VS_Y_DIR true +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Define if the two Y drives need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h b/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h index f53723952..f6d6afda7 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h @@ -152,10 +152,6 @@ // Play a little bit with small adjustments (0.5mm) and check the behaviour. // The M119 (endstops report) will start reporting the Z2 Endstop as well. - #define Z2_STEP_PIN E2_STEP_PIN // Stepper to be used to Z2 axis. - #define Z2_DIR_PIN E2_DIR_PIN - #define Z2_ENABLE_PIN E2_ENABLE_PIN - // #define Z_DUAL_ENDSTOPS #if ENABLED(Z_DUAL_ENDSTOPS) @@ -169,8 +165,10 @@ // Same again but for Y Axis. //#define Y_DUAL_STEPPER_DRIVERS -// Define if the two Y drives need to rotate in opposite directions -#define INVERT_Y2_VS_Y_DIR true +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Define if the two Y drives need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which diff --git a/Marlin/example_configurations/delta/generic/Configuration_adv.h b/Marlin/example_configurations/delta/generic/Configuration_adv.h index 923e10792..bc5f1c40a 100644 --- a/Marlin/example_configurations/delta/generic/Configuration_adv.h +++ b/Marlin/example_configurations/delta/generic/Configuration_adv.h @@ -152,10 +152,6 @@ // Play a little bit with small adjustments (0.5mm) and check the behaviour. // The M119 (endstops report) will start reporting the Z2 Endstop as well. - #define Z2_STEP_PIN E2_STEP_PIN // Stepper to be used to Z2 axis. - #define Z2_DIR_PIN E2_DIR_PIN - #define Z2_ENABLE_PIN E2_ENABLE_PIN - // #define Z_DUAL_ENDSTOPS #if ENABLED(Z_DUAL_ENDSTOPS) @@ -169,8 +165,10 @@ // Same again but for Y Axis. //#define Y_DUAL_STEPPER_DRIVERS -// Define if the two Y drives need to rotate in opposite directions -#define INVERT_Y2_VS_Y_DIR true +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Define if the two Y drives need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h index e2899efde..49f54146a 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h @@ -152,10 +152,6 @@ // Play a little bit with small adjustments (0.5mm) and check the behaviour. // The M119 (endstops report) will start reporting the Z2 Endstop as well. - #define Z2_STEP_PIN E2_STEP_PIN // Stepper to be used to Z2 axis. - #define Z2_DIR_PIN E2_DIR_PIN - #define Z2_ENABLE_PIN E2_ENABLE_PIN - // #define Z_DUAL_ENDSTOPS #if ENABLED(Z_DUAL_ENDSTOPS) @@ -169,8 +165,10 @@ // Same again but for Y Axis. //#define Y_DUAL_STEPPER_DRIVERS -// Define if the two Y drives need to rotate in opposite directions -#define INVERT_Y2_VS_Y_DIR true +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Define if the two Y drives need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h index a4250d36f..935eaca6a 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h @@ -40,15 +40,6 @@ #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius #endif -#if ENABLED(PIDTEMP) - // this adds an experimental additional term to the heating power, proportional to the extrusion speed. - // if Kc is chosen well, the additional required power due to increased melting should be compensated. - #define PID_ADD_EXTRUSION_RATE - #if ENABLED(PID_ADD_EXTRUSION_RATE) - #define DEFAULT_Kc (1) //heating power=Kc*(e_speed) - #endif -#endif - /** * Automatic Temperature: * The hotend target temperature is calculated by all the buffered lines of gcode. @@ -59,6 +50,23 @@ * Also, if the temperature is set to a value below mintemp, it will not be changed by autotemp. * On an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode */ +#if ENABLED(PIDTEMP) + // this adds an experimental additional term to the heating power, proportional to the extrusion speed. + // if Kc is chosen well, the additional required power due to increased melting should be compensated. + #define PID_ADD_EXTRUSION_RATE + #if ENABLED(PID_ADD_EXTRUSION_RATE) + #define DEFAULT_Kc (1) //heating power=Kc*(e_speed) + #endif +#endif + + +//automatic temperature: The hot end target temperature is calculated by all the buffered lines of gcode. +//The maximum buffered steps/sec of the extruder motor are called "se". +//You enter the autotemp mode by a M109 S B F +// the target temperature is set to mintemp+factor*se[steps/sec] and limited by mintemp and maxtemp +// you exit the value by any M109 without F* +// Also, if the temperature is set to a value Z2 (yes, it is.. think about it) and the Z adjust would be positive. + // Play a little bit with small adjustments (0.5mm) and check the behaviour. + // The M119 (endstops report) will start reporting the Z2 Endstop as well. + + // #define Z_DUAL_ENDSTOPS + + #if ENABLED(Z_DUAL_ENDSTOPS) + #define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36) + const bool Z2_MAX_ENDSTOP_INVERTING = false; + #define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis. + #endif + +#endif // Z_DUAL_STEPPER_DRIVERS // Same again but for Y Axis. //#define Y_DUAL_STEPPER_DRIVERS -// Define if the two Y drives need to rotate in opposite directions -#define INVERT_Y2_VS_Y_DIR true - #if ENABLED(Y_DUAL_STEPPER_DRIVERS) - #undef EXTRUDERS - #define EXTRUDERS 1 -#endif - -#if defined (Z_DUAL_STEPPER_DRIVERS) && defined (Y_DUAL_STEPPER_DRIVERS) - #error "You cannot have dual drivers for both Y and Z" + // Define if the two Y drives need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true #endif // Enable this for dual x-carriage printers. @@ -266,11 +236,6 @@ // @section machine -#if ENABLED(CONFIG_STEPPERS_TOSHIBA) -#define MAX_STEP_FREQUENCY 10000 // Max step frequency for Toshiba Stepper Controllers -#else -#define MAX_STEP_FREQUENCY 40000 // Max step frequency for Ultimaker (5000 pps / half step) -#endif //By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. #define INVERT_X_STEP_PIN false #define INVERT_Y_STEP_PIN false @@ -296,7 +261,6 @@ #define DEFAULT_MINSEGMENTTIME 20000 // If defined the movements slow down when the look ahead buffer is only half full -// (don't use SLOWDOWN with DELTA because DELTA generates hundreds of segments per second) //#define SLOWDOWN // Frequency limit @@ -309,13 +273,6 @@ // if unwanted behavior is observed on a user's machine when running at very slow speeds. #define MINIMUM_PLANNER_SPEED 0.05// (mm/sec) -// MS1 MS2 Stepper Driver Microstepping mode table -#define MICROSTEP1 LOW,LOW -#define MICROSTEP2 HIGH,LOW -#define MICROSTEP4 LOW,HIGH -#define MICROSTEP8 HIGH,HIGH -#define MICROSTEP16 HIGH,HIGH - // Microstep setting (Only functional when stepper driver microstep pins are connected to MCU. #define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16] @@ -333,6 +290,10 @@ //=============================Additional Features=========================== //=========================================================================== +#define ENCODER_RATE_MULTIPLIER // If defined, certain menu edit operations automatically multiply the steps when the encoder is moved quickly +#define ENCODER_10X_STEPS_PER_SEC 75 // If the encoder steps per sec exceeds this value, multiply steps moved x10 to quickly advance the value +#define ENCODER_100X_STEPS_PER_SEC 160 // If the encoder steps per sec exceeds this value, multiply steps moved x100 to really quickly advance the value + //#define CHDK 4 //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/ #define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again @@ -391,6 +352,7 @@ //#define USE_SMALL_INFOFONT #endif // DOGLCD + // @section more // The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation. @@ -413,18 +375,9 @@ #define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions #define BABYSTEP_INVERT_Z false //true for inverse movements in Z #define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements +#endif // @section extruder - #if ENABLED(COREXY) - #error BABYSTEPPING not implemented for COREXY yet. - #endif - - #if ENABLED(DELTA) - #if ENABLED(BABYSTEP_XY) - #error BABYSTEPPING only implemented for Z axis on deltabots. - #endif - #endif -#endif // extruder advance constant (s2/mm3) // @@ -437,14 +390,11 @@ #if ENABLED(ADVANCE) #define EXTRUDER_ADVANCE_K .0 - #define D_FILAMENT 2.85 #define STEPS_MM_E 836 - #define EXTRUSION_AREA (0.25 * D_FILAMENT * D_FILAMENT * 3.14159) - #define STEPS_PER_CUBIC_MM_E (axis_steps_per_unit[E_AXIS]/ EXTRUSION_AREA) +#endif // @section extras -#endif // ADVANCE // Arc interpretation settings: #define MM_PER_ARC_SEGMENT 1 @@ -452,25 +402,7 @@ const unsigned int dropsegments=5; //everything with less than this number of steps will be ignored as move and joined with the next movement -#if ENABLED(ULTIPANEL) - #undef SD_DETECT_INVERTED -#endif - -// Power Signal Control Definitions -// By default use ATX definition -#ifndef POWER_SUPPLY - #define POWER_SUPPLY 1 -#endif -// 1 = ATX -#if (POWER_SUPPLY == 1) - #define PS_ON_AWAKE LOW - #define PS_ON_ASLEEP HIGH -#endif -// 2 = X-Box 360 203W -#if (POWER_SUPPLY == 2) - #define PS_ON_AWAKE HIGH - #define PS_ON_ASLEEP LOW -#endif +// @section temperature // Control heater 0 and heater 1 in parallel. //#define HEATERS_PARALLEL @@ -483,10 +415,10 @@ const unsigned int dropsegments=5; //everything with less than this number of st // The number of linear motions that can be in the plan at any give time. // THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering. -#if defined SDSUPPORT +#if ENABLED(SDSUPPORT) #define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller #else - #define BLOCK_BUFFER_SIZE 64 // maximize block buffer + #define BLOCK_BUFFER_SIZE 16 // maximize block buffer #endif // @section more @@ -526,7 +458,7 @@ const unsigned int dropsegments=5; //everything with less than this number of st // Add support for experimental filament exchange support M600; requires display #if ENABLED(ULTIPANEL) - #define FILAMENTCHANGEENABLE + //#define FILAMENTCHANGEENABLE #if ENABLED(FILAMENTCHANGEENABLE) #define FILAMENTCHANGE_XPOS 3 #define FILAMENTCHANGE_YPOS 3 @@ -598,69 +530,79 @@ const unsigned int dropsegments=5; //everything with less than this number of st #endif -#if ENABLED(FILAMENTCHANGEENABLE) - #if ENABLED(EXTRUDER_RUNOUT_PREVENT) - #error EXTRUDER_RUNOUT_PREVENT currently incompatible with FILAMENTCHANGE - #endif -#endif +/******************************************************************************\ + * enable this section if you have L6470 motor drivers. + * you need to import the L6470 library into the arduino IDE for this + ******************************************************************************/ -//=========================================================================== -//============================= Define Defines ============================ -//=========================================================================== -#if EXTRUDERS > 1 && defined TEMP_SENSOR_1_AS_REDUNDANT - #error "You cannot use TEMP_SENSOR_1_AS_REDUNDANT if EXTRUDERS > 1" -#endif +// @section l6470 -#if EXTRUDERS > 1 && defined HEATERS_PARALLEL - #error "You cannot use HEATERS_PARALLEL if EXTRUDERS > 1" -#endif +//#define HAVE_L6470DRIVER +#if ENABLED(HAVE_L6470DRIVER) -#if TEMP_SENSOR_0 > 0 - #define THERMISTORHEATER_0 TEMP_SENSOR_0 - #define HEATER_0_USES_THERMISTOR -#endif -#if TEMP_SENSOR_1 > 0 - #define THERMISTORHEATER_1 TEMP_SENSOR_1 - #define HEATER_1_USES_THERMISTOR -#endif -#if TEMP_SENSOR_2 > 0 - #define THERMISTORHEATER_2 TEMP_SENSOR_2 - #define HEATER_2_USES_THERMISTOR -#endif -#if TEMP_SENSOR_BED > 0 - #define THERMISTORBED TEMP_SENSOR_BED - #define BED_USES_THERMISTOR -#endif -#if TEMP_SENSOR_0 == -1 - #define HEATER_0_USES_AD595 -#endif -#if TEMP_SENSOR_1 == -1 - #define HEATER_1_USES_AD595 -#endif -#if TEMP_SENSOR_2 == -1 - #define HEATER_2_USES_AD595 -#endif -#if TEMP_SENSOR_BED == -1 - #define BED_USES_AD595 -#endif -#if TEMP_SENSOR_0 == -2 - #define HEATER_0_USES_MAX6675 -#endif -#if TEMP_SENSOR_0 == 0 - #undef HEATER_0_MINTEMP - #undef HEATER_0_MAXTEMP -#endif -#if TEMP_SENSOR_1 == 0 - #undef HEATER_1_MINTEMP - #undef HEATER_1_MAXTEMP -#endif -#if TEMP_SENSOR_2 == 0 - #undef HEATER_2_MINTEMP - #undef HEATER_2_MAXTEMP -#endif -#if TEMP_SENSOR_BED == 0 - #undef BED_MINTEMP - #undef BED_MAXTEMP +// #define X_IS_L6470 + #define X_MICROSTEPS 16 //number of microsteps + #define X_K_VAL 50 // 0 - 255, Higher values, are higher power. Be carefull not to go too high + #define X_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off + #define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall + +// #define X2_IS_L6470 + #define X2_MICROSTEPS 16 //number of microsteps + #define X2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be carefull not to go too high + #define X2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off + #define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall + +// #define Y_IS_L6470 + #define Y_MICROSTEPS 16 //number of microsteps + #define Y_K_VAL 50 // 0 - 255, Higher values, are higher power. Be carefull not to go too high + #define Y_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off + #define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall + +// #define Y2_IS_L6470 + #define Y2_MICROSTEPS 16 //number of microsteps + #define Y2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be carefull not to go too high + #define Y2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off + #define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall + +// #define Z_IS_L6470 + #define Z_MICROSTEPS 16 //number of microsteps + #define Z_K_VAL 50 // 0 - 255, Higher values, are higher power. Be carefull not to go too high + #define Z_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off + #define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall + +// #define Z2_IS_L6470 + #define Z2_MICROSTEPS 16 //number of microsteps + #define Z2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be carefull not to go too high + #define Z2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off + #define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall + +// #define E0_IS_L6470 + #define E0_MICROSTEPS 16 //number of microsteps + #define E0_K_VAL 50 // 0 - 255, Higher values, are higher power. Be carefull not to go too high + #define E0_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off + #define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall + +// #define E1_IS_L6470 + #define E1_MICROSTEPS 16 //number of microsteps + #define E1_MICROSTEPS 16 //number of microsteps + #define E1_K_VAL 50 // 0 - 255, Higher values, are higher power. Be carefull not to go too high + #define E1_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off + #define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall + +// #define E2_IS_L6470 + #define E2_MICROSTEPS 16 //number of microsteps + #define E2_MICROSTEPS 16 //number of microsteps + #define E2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be carefull not to go too high + #define E2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off + #define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall + +// #define E3_IS_L6470 + #define E3_MICROSTEPS 16 //number of microsteps + #define E3_MICROSTEPS 16 //number of microsteps + #define E3_K_VAL 50 // 0 - 255, Higher values, are higher power. Be carefull not to go too high + #define E3_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off + #define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall + #endif #include "Conditionals.h" diff --git a/Marlin/example_configurations/makibox/Configuration_adv.h b/Marlin/example_configurations/makibox/Configuration_adv.h index e40f082bf..518aa906f 100644 --- a/Marlin/example_configurations/makibox/Configuration_adv.h +++ b/Marlin/example_configurations/makibox/Configuration_adv.h @@ -152,10 +152,6 @@ // Play a little bit with small adjustments (0.5mm) and check the behaviour. // The M119 (endstops report) will start reporting the Z2 Endstop as well. - #define Z2_STEP_PIN E2_STEP_PIN // Stepper to be used to Z2 axis. - #define Z2_DIR_PIN E2_DIR_PIN - #define Z2_ENABLE_PIN E2_ENABLE_PIN - // #define Z_DUAL_ENDSTOPS #if ENABLED(Z_DUAL_ENDSTOPS) @@ -169,8 +165,10 @@ // Same again but for Y Axis. //#define Y_DUAL_STEPPER_DRIVERS -// Define if the two Y drives need to rotate in opposite directions -#define INVERT_Y2_VS_Y_DIR true +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Define if the two Y drives need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h b/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h index 112bd9e9a..5218014c0 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h @@ -152,10 +152,6 @@ // Play a little bit with small adjustments (0.5mm) and check the behaviour. // The M119 (endstops report) will start reporting the Z2 Endstop as well. - #define Z2_STEP_PIN E2_STEP_PIN // Stepper to be used to Z2 axis. - #define Z2_DIR_PIN E2_DIR_PIN - #define Z2_ENABLE_PIN E2_ENABLE_PIN - // #define Z_DUAL_ENDSTOPS #if ENABLED(Z_DUAL_ENDSTOPS) @@ -169,8 +165,10 @@ // Same again but for Y Axis. //#define Y_DUAL_STEPPER_DRIVERS -// Define if the two Y drives need to rotate in opposite directions -#define INVERT_Y2_VS_Y_DIR true +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + // Define if the two Y drives need to rotate in opposite directions + #define INVERT_Y2_VS_Y_DIR true +#endif // Enable this for dual x-carriage printers. // A dual x-carriage design has the advantage that the inactive extruder can be parked which diff --git a/Marlin/pins.h b/Marlin/pins.h index de47c6a29..4c6768eec 100644 --- a/Marlin/pins.h +++ b/Marlin/pins.h @@ -143,6 +143,9 @@ #define _E3_PINS E3_STEP_PIN, E3_DIR_PIN, E3_ENABLE_PIN, HEATER_3_PIN, analogInputToDigitalPin(TEMP_3_PIN), #endif #endif +#elif ENABLED(Y_DUAL_STEPPER_DRIVERS) || ENABLED(Z_DUAL_STEPPER_DRIVERS) + #undef _E1_PINS + #define _E1_PINS E1_STEP_PIN, E1_DIR_PIN, E1_ENABLE_PIN, #endif #ifdef X_STOP_PIN @@ -227,6 +230,18 @@ #define Z_MIN_PIN -1 #endif +#ifndef Y2_STEP_PIN + #define Y2_STEP_PIN E1_STEP_PIN + #define Y2_DIR_PIN E1_DIR_PIN + #define Y2_ENABLE_PIN E1_ENABLE_PIN +#endif + +#ifndef Z2_STEP_PIN + #define Z2_STEP_PIN E1_STEP_PIN + #define Z2_DIR_PIN E1_DIR_PIN + #define Z2_ENABLE_PIN E1_ENABLE_PIN +#endif + #define SENSITIVE_PINS { 0, 1, \ X_STEP_PIN, X_DIR_PIN, X_ENABLE_PIN, X_MIN_PIN, X_MAX_PIN, \ Y_STEP_PIN, Y_DIR_PIN, Y_ENABLE_PIN, Y_MIN_PIN, Y_MAX_PIN, \ diff --git a/Marlin/pins_LEAPFROG.h b/Marlin/pins_LEAPFROG.h index b25b24455..e42260ffa 100644 --- a/Marlin/pins_LEAPFROG.h +++ b/Marlin/pins_LEAPFROG.h @@ -32,14 +32,6 @@ #define E1_DIR_PIN 40 //40 #define E1_ENABLE_PIN 36 //36 -#define Y2_STEP_PIN 37 -#define Y2_DIR_PIN 40 -#define Y2_ENABLE_PIN 36 - -#define Z2_STEP_PIN 37 -#define Z2_DIR_PIN 40 -#define Z2_ENABLE_PIN 36 - #define SDPOWER -1 #define SDSS 11 #define SD_DETECT_PIN -1 // 10 optional also used as mode pin diff --git a/Marlin/pins_RAMPS_13.h b/Marlin/pins_RAMPS_13.h index e6173e5bd..7f651f365 100644 --- a/Marlin/pins_RAMPS_13.h +++ b/Marlin/pins_RAMPS_13.h @@ -42,18 +42,6 @@ #define Z_MAX_PIN 19 #define Z_MIN_PROBE_PIN -1 -#define Y2_STEP_PIN 36 -#define Y2_DIR_PIN 34 -#define Y2_ENABLE_PIN 30 - -#undef Z2_STEP_PIN -#undef Z2_DIR_PIN -#undef Z2_ENABLE_PIN - -#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