chiark / gitweb /
repaired nozzle runout prevention to not collide with automatic stepper disabeling.
authorBernhard <bkubicek@x201.(none)>
Sun, 11 Dec 2011 14:42:56 +0000 (15:42 +0100)
committerBernhard <bkubicek@x201.(none)>
Sun, 11 Dec 2011 14:42:56 +0000 (15:42 +0100)
Marlin/Configuration.h
Marlin/Marlin.pde

index e2fe8403e7a42c042ba56a1d76882c419180f758..dc8c799f5bd589814f6d33ad1235052f61953ab1 100644 (file)
 //if the machine is idle, and the temperature over MINTEMP, every couple of SECONDS some filament is extruded
 //#define EXTRUDER_RUNOUT_PREVENT  
 #define EXTRUDER_RUNOUT_MINTEMP 190  
-#define EXTRUDER_RUNOUT_SECONDS 60.
+#define EXTRUDER_RUNOUT_SECONDS 30.
 #define EXTRUDER_RUNOUT_ESTEPS 14. //mm filament
-#define EXTRUDER_RUNOUT_EXTRUDE 50. //mm filament
 #define EXTRUDER_RUNOUT_SPEED 1500.  //extrusion speed
 
 
index 538920da2ffbc6243dff9f017dd66a7e0cbd9680..0a8a80c4cec8dbeab3f9cbf7a36c496feecea173 100644 (file)
@@ -235,7 +235,9 @@ void setup()
   SERIAL_PROTOCOLLNPGM("start");
   SERIAL_ECHO_START;
   SERIAL_ECHOPGM("Free Memory:");
-  SERIAL_ECHOLN(freeMemory());
+  SERIAL_ECHO(freeMemory());
+  SERIAL_ECHOPGM(" PlannerBufferBytes:");
+  SERIAL_ECHOLN((int)sizeof(block_t)*BLOCK_BUFFER_SIZE);
   for(int8_t i = 0; i < BUFSIZE; i++)
   {
     fromsd[i] = false;
@@ -1207,7 +1209,8 @@ void manage_inactivity(byte debug)
       last_stepperdisabled_time=previous_millis_cmd;
     else
     {
-      enquecommand(DEFAULT_STEPPER_DEACTIVE_COMMAND); 
+      if(  (X_ENABLE_ON && (READ(X_ENABLE_PIN)!=0))  ||  (!X_ENABLE_ON && READ(X_ENABLE_PIN)==0)  )
+        enquecommand(DEFAULT_STEPPER_DEACTIVE_COMMAND); 
       last_stepperdisabled_time=millis();
     }
   }
@@ -1215,6 +1218,7 @@ void manage_inactivity(byte debug)
     if( (millis()-previous_millis_cmd) >  EXTRUDER_RUNOUT_SECONDS*1000 ) 
     if(degHotend(active_extruder)>EXTRUDER_RUNOUT_MINTEMP)
     {
+     bool oldstatus=READ(E_ENABLE_PIN);
      enable_e();
      float oldepos=current_position[E_AXIS];
      float oldedes=destination[E_AXIS];
@@ -1225,7 +1229,9 @@ void manage_inactivity(byte debug)
      destination[E_AXIS]=oldedes;
      plan_set_e_position(oldepos);
      previous_millis_cmd=millis();
-     enquecommand(DEFAULT_STEPPER_DEACTIVE_COMMAND);
+     //enquecommand(DEFAULT_STEPPER_DEACTIVE_COMMAND);
+     st_synchronize();
+     WRITE(E_ENABLE_PIN,oldstatus);
     }
   #endif
   check_axes_activity();