//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
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;
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();
}
}
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];
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();