Browse Source

Add switch unused feeder(s) off

Having the non-active feeder motors powered on all the time is not
necessary. A feature to deactivate the unused feeder motors has been
implemented. The feature is enabled on default but can be switched off
in the configuration.
pull/1/head
Dim3nsioneer 11 years ago
parent
commit
29e7639933
  1. 1
      Marlin/Configuration.h
  2. 20
      Marlin/planner.cpp

1
Marlin/Configuration.h

@ -305,6 +305,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
#define DISABLE_Y false #define DISABLE_Y false
#define DISABLE_Z false #define DISABLE_Z false
#define DISABLE_E false // For all extruders #define DISABLE_E false // For all extruders
#define DISABLE_UNSELECTED_E true //disable only not selected extruders and keep selected extruder active
#define INVERT_X_DIR true // for Mendel set to false, for Orca set to true #define INVERT_X_DIR true // for Mendel set to false, for Orca set to true
#define INVERT_Y_DIR false // for Mendel set to true, for Orca set to false #define INVERT_Y_DIR false // for Mendel set to true, for Orca set to false

20
Marlin/planner.cpp

@ -657,12 +657,24 @@ block->steps_y = labs((target[X_AXIS]-position[X_AXIS]) - (target[Y_AXIS]-positi
if(block->steps_z != 0) enable_z(); if(block->steps_z != 0) enable_z();
#endif #endif
// Enable all // Enable extruder(s)
if(block->steps_e != 0) if(block->steps_e != 0)
{ {
enable_e0(); if (DISABLE_UNSELECTED_E) //enable only selected extruder
enable_e1(); {
enable_e2(); switch(extruder)
{
case 0: enable_e0(); disable_e1(); disable_e2(); break;
case 1: disable_e0(); enable_e1(); disable_e2(); break;
case 2: disable_e0(); disable_e1(); enable_e2(); break;
}
}
else //enable all
{
enable_e0();
enable_e1();
enable_e2();
}
} }
if (block->steps_e == 0) if (block->steps_e == 0)

Loading…
Cancel
Save