From f52e1a957111e6bcf33f8ac375bfeb9ba261d5a0 Mon Sep 17 00:00:00 2001 From: Bernhard Kubicek Date: Sat, 19 Nov 2011 17:07:44 +0100 Subject: [PATCH 1/2] autotemp working, default=disabled. --- Marlin/Configuration.h | 7 +++---- Marlin/planner.cpp | 20 +++++++++++++++----- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 800bb9b32f..f9a1367024 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -297,11 +297,10 @@ const bool ENDSTOPS_INVERTING = true; // set to true to invert the logic of the //automatic temperature: just for testing, this is very dangerous, keep disabled! // not working yet. -//Erik: the settings currently depend dramatically on skeinforge39 or 41. //#define AUTOTEMP -#define AUTOTEMP_MIN 190 -#define AUTOTEMP_MAX 260 -#define AUTOTEMP_FACTOR 1000. //current target temperature= min+largest buffered espeeds)*FACTOR +#ifdef AUTOTEMP + #define AUTOTEMP_OLDWEIGHT 0.98 +#endif const int dropsegments=5; //everything with less than this number of steps will be ignored as move and joined with the next movement diff --git a/Marlin/planner.cpp b/Marlin/planner.cpp index 0a226c66f7..b7f98b6d1d 100644 --- a/Marlin/planner.cpp +++ b/Marlin/planner.cpp @@ -382,6 +382,7 @@ block_t *plan_get_current_block() { #ifdef AUTOTEMP void getHighESpeed() { + static float oldt=0; if(!autotemp_enabled) return; if(degTargetHotend0()+2autotemp_max) + t=autotemp_max; + if(oldt>t) + { + t=AUTOTEMP_OLDWEIGHT*oldt+(1-AUTOTEMP_OLDWEIGHT)*t; + } + oldt=t; setTargetHotend0(t); - SERIAL_ECHO_START; - SERIAL_ECHOPAIR("highe",high); - SERIAL_ECHOPAIR(" t",t); - SERIAL_ECHOLN(""); +// SERIAL_ECHO_START; +// SERIAL_ECHOPAIR("highe",high); +// SERIAL_ECHOPAIR(" t",t); +// SERIAL_ECHOLN(""); } #endif From 2a6afee83292e5b741cb99ca4b7b30b7acfe7529 Mon Sep 17 00:00:00 2001 From: Bernhard Kubicek Date: Sat, 19 Nov 2011 17:09:33 +0100 Subject: [PATCH 2/2] make it compile without autotemp --- Marlin/Marlin.pde | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Marlin/Marlin.pde b/Marlin/Marlin.pde index c0fc8675c1..f619854da3 100644 --- a/Marlin/Marlin.pde +++ b/Marlin/Marlin.pde @@ -694,8 +694,10 @@ inline void process_commands() break; case 109: {// M109 - Wait for extruder heater to reach target. - LCD_MESSAGEPGM("Heating..."); - autotemp_enabled=false; + LCD_MESSAGEPGM("Heating..."); + #ifdef AUTOTEMP + autotemp_enabled=false; + #endif if (code_seen('S')) setTargetHotend0(code_value()); #ifdef AUTOTEMP if (code_seen('S')) autotemp_min=code_value();