From 01001b89d200111f95be0d7ce87aa16e91ddf998 Mon Sep 17 00:00:00 2001 From: Bernhard Date: Sun, 11 Dec 2011 15:42:56 +0100 Subject: [PATCH] repaired nozzle runout prevention to not collide with automatic stepper disabeling. --- Marlin/Configuration.h | 3 +-- Marlin/Marlin.pde | 12 +++++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index e2fe8403e..dc8c799f5 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -157,9 +157,8 @@ //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 diff --git a/Marlin/Marlin.pde b/Marlin/Marlin.pde index 538920da2..0a8a80c4c 100644 --- a/Marlin/Marlin.pde +++ b/Marlin/Marlin.pde @@ -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();