diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h
index 8c12b0f85d6c2bdea56d793c6a3b42bb9d96d41a..1c3faf5fc60cd3ff1525223982b0d529181b9f2a 100644
--- a/Marlin/Configuration.h
+++ b/Marlin/Configuration.h
@@ -215,7 +215,7 @@ Here are some standard links for getting your machine calibrated:
 // If your configuration is significantly different than this and you don't understand the issues involved, you probably
 // shouldn't use bed PID until someone else verifies your hardware works.
 // If this is enabled, find your own PID constants below.
-//#define PIDTEMPBED
+#define PIDTEMPBED
 //
 //#define BED_LIMIT_SWITCHING
 
@@ -226,17 +226,10 @@ Here are some standard links for getting your machine calibrated:
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
 
 #ifdef PIDTEMPBED
-//120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
-//from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)
-    #define  DEFAULT_bedKp 10.00
-    #define  DEFAULT_bedKi .023
-    #define  DEFAULT_bedKd 305.4
-
-//120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
-//from pidautotune
-//    #define  DEFAULT_bedKp 97.1
-//    #define  DEFAULT_bedKi 1.41
-//    #define  DEFAULT_bedKd 1675.16
+// Felix Foil Heater
+   #define DEFAULT_bedKp 103.37
+   #define DEFAULT_bedKi 2.79
+   #define DEFAULT_bedKd 956.94
 
 // FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles.
 #endif // PIDTEMPBED
@@ -280,15 +273,15 @@ your extruder heater takes 2 minutes to hit the target on heating.
 // uncomment the 2 defines below:
 
 // Parameters for all extruder heaters
-//#define THERMAL_RUNAWAY_PROTECTION_PERIOD 40 //in seconds
-//#define THERMAL_RUNAWAY_PROTECTION_HYSTERESIS 4 // in degree Celsius
+#define THERMAL_RUNAWAY_PROTECTION_PERIOD 60 //in seconds
+#define THERMAL_RUNAWAY_PROTECTION_HYSTERESIS 5 // in degree Celsius
 
 // If you want to enable this feature for your bed heater,
 // uncomment the 2 defines below:
 
 // Parameters for the bed heater
-//#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds
-//#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius
+#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 30 //in seconds
+#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 5// in degree Celsius
 
 
 //===========================================================================
diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp
index d50c4265b03108fe8defd86cea2cda7ec31e19c6..3e14056e217e440a4f11fe35b9d768013480ae53 100644
--- a/Marlin/temperature.cpp
+++ b/Marlin/temperature.cpp
@@ -1,19 +1,19 @@
 /*
   temperature.c - temperature control
   Part of Marlin
-  
+
  Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
- 
+
  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.
- 
+
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.
- 
+
  You should have received a copy of the GNU General Public License
  along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
@@ -22,8 +22,8 @@
  This firmware is a mashup between Sprinter and grbl.
   (https://github.com/kliment/Sprinter)
   (https://github.com/simen/grbl/tree)
- 
- It has preliminary support for Matthew Roberts advance algorithm 
+
+ It has preliminary support for Matthew Roberts advance algorithm
     http://reprap.org/pipermail/reprap-dev/2011-May/003323.html
 
  */
@@ -63,20 +63,20 @@ float current_temperature_bed = 0.0;
   float bedKi=(DEFAULT_bedKi*PID_dT);
   float bedKd=(DEFAULT_bedKd/PID_dT);
 #endif //PIDTEMPBED
-  
+
 #ifdef FAN_SOFT_PWM
   unsigned char fanSpeedSoftPwm;
 #endif
 
 unsigned char soft_pwm_bed;
-  
+
 #ifdef BABYSTEPPING
   volatile int babystepsTodo[3]={0,0,0};
 #endif
 
 #ifdef FILAMENT_SENSOR
   int current_raw_filwidth = 0;  //Holds measured filament diameter - one extruder only
-#endif  
+#endif
 //===========================================================================
 //=============================private variables============================
 //===========================================================================
@@ -109,7 +109,7 @@ static volatile bool temp_meas_ready = false;
   static float temp_iState_min_bed;
   static float temp_iState_max_bed;
 #else //PIDTEMPBED
-	static unsigned long  previous_millis_bed_heater;
+    static unsigned long  previous_millis_bed_heater;
 #endif //PIDTEMPBED
   static unsigned char soft_pwm[EXTRUDERS];
 
@@ -120,7 +120,7 @@ static volatile bool temp_meas_ready = false;
     (defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1) || \
     (defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1)
   static unsigned long extruder_autofan_last_check;
-#endif  
+#endif
 
 #if EXTRUDERS > 4
   # error Unsupported number of extruders
@@ -227,9 +227,9 @@ void PID_autotune(float temp, int extruder, int ncycles)
           SERIAL_ECHOLN("PID Autotune failed. Bad extruder number.");
           return;
         }
-	
+
   SERIAL_ECHOLN("PID Autotune start");
-  
+
   disable_heater(); // switch off all heaters.
 
   if (extruder<0)
@@ -267,7 +267,7 @@ void PID_autotune(float temp, int extruder, int ncycles)
       #endif
 
       if(heating == true && input > temp) {
-        if(millis() - t2 > 5000) { 
+        if(millis() - t2 > 5000) {
           heating=false;
           if (extruder<0)
             soft_pwm_bed = (bias - d) >> 1;
@@ -330,7 +330,7 @@ void PID_autotune(float temp, int extruder, int ncycles)
           cycles++;
           min=temp;
         }
-      } 
+      }
     }
     if(input > (temp + 20)) {
       SERIAL_PROTOCOLLNPGM("PID Autotune failed! Temperature too high");
@@ -339,16 +339,16 @@ void PID_autotune(float temp, int extruder, int ncycles)
     if(millis() - temp_millis > 2000) {
       int p;
       if (extruder<0){
-        p=soft_pwm_bed;       
+        p=soft_pwm_bed;
         SERIAL_PROTOCOLPGM("ok B:");
       }else{
-        p=soft_pwm[extruder];       
+        p=soft_pwm[extruder];
         SERIAL_PROTOCOLPGM("ok T:");
       }
-			
-      SERIAL_PROTOCOL(input);   
+
+      SERIAL_PROTOCOL(input);
       SERIAL_PROTOCOLPGM(" @:");
-      SERIAL_PROTOCOLLN(p);       
+      SERIAL_PROTOCOLLN(p);
 
       temp_millis = millis();
     }
@@ -367,18 +367,18 @@ void PID_autotune(float temp, int extruder, int ncycles)
 void updatePID()
 {
 #ifdef PIDTEMP
-  for(int e = 0; e < EXTRUDERS; e++) { 
-     temp_iState_max[e] = PID_INTEGRAL_DRIVE_MAX / PID_PARAM(Ki,e);  
+  for(int e = 0; e < EXTRUDERS; e++) {
+     temp_iState_max[e] = PID_INTEGRAL_DRIVE_MAX / PID_PARAM(Ki,e);
   }
 #endif
 #ifdef PIDTEMPBED
-  temp_iState_max_bed = PID_INTEGRAL_DRIVE_MAX / bedKi;  
+  temp_iState_max_bed = PID_INTEGRAL_DRIVE_MAX / bedKi;
 #endif
 }
-  
+
 int getHeaterPower(int heater) {
-	if (heater<0)
-		return soft_pwm_bed;
+    if (heater<0)
+        return soft_pwm_bed;
   return soft_pwm[heater];
 }
 
@@ -387,16 +387,16 @@ int getHeaterPower(int heater) {
     (defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1)
 
   #if defined(FAN_PIN) && FAN_PIN > -1
-    #if EXTRUDER_0_AUTO_FAN_PIN == FAN_PIN 
+    #if EXTRUDER_0_AUTO_FAN_PIN == FAN_PIN
        #error "You cannot set EXTRUDER_0_AUTO_FAN_PIN equal to FAN_PIN"
     #endif
-    #if EXTRUDER_1_AUTO_FAN_PIN == FAN_PIN 
+    #if EXTRUDER_1_AUTO_FAN_PIN == FAN_PIN
        #error "You cannot set EXTRUDER_1_AUTO_FAN_PIN equal to FAN_PIN"
     #endif
-    #if EXTRUDER_2_AUTO_FAN_PIN == FAN_PIN 
+    #if EXTRUDER_2_AUTO_FAN_PIN == FAN_PIN
        #error "You cannot set EXTRUDER_2_AUTO_FAN_PIN equal to FAN_PIN"
     #endif
-  #endif 
+  #endif
 
 void setExtruderAutoFanState(int pin, bool state)
 {
@@ -411,53 +411,53 @@ void checkExtruderAutoFans()
 {
   uint8_t fanState = 0;
 
-  // which fan pins need to be turned on?      
+  // which fan pins need to be turned on?
   #if defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1
-    if (current_temperature[0] > EXTRUDER_AUTO_FAN_TEMPERATURE) 
+    if (current_temperature[0] > EXTRUDER_AUTO_FAN_TEMPERATURE)
       fanState |= 1;
   #endif
   #if defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1
-    if (current_temperature[1] > EXTRUDER_AUTO_FAN_TEMPERATURE) 
+    if (current_temperature[1] > EXTRUDER_AUTO_FAN_TEMPERATURE)
     {
-      if (EXTRUDER_1_AUTO_FAN_PIN == EXTRUDER_0_AUTO_FAN_PIN) 
+      if (EXTRUDER_1_AUTO_FAN_PIN == EXTRUDER_0_AUTO_FAN_PIN)
         fanState |= 1;
       else
         fanState |= 2;
     }
   #endif
   #if defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1
-    if (current_temperature[2] > EXTRUDER_AUTO_FAN_TEMPERATURE) 
+    if (current_temperature[2] > EXTRUDER_AUTO_FAN_TEMPERATURE)
     {
-      if (EXTRUDER_2_AUTO_FAN_PIN == EXTRUDER_0_AUTO_FAN_PIN) 
+      if (EXTRUDER_2_AUTO_FAN_PIN == EXTRUDER_0_AUTO_FAN_PIN)
         fanState |= 1;
-      else if (EXTRUDER_2_AUTO_FAN_PIN == EXTRUDER_1_AUTO_FAN_PIN) 
+      else if (EXTRUDER_2_AUTO_FAN_PIN == EXTRUDER_1_AUTO_FAN_PIN)
         fanState |= 2;
       else
         fanState |= 4;
     }
   #endif
   #if defined(EXTRUDER_3_AUTO_FAN_PIN) && EXTRUDER_3_AUTO_FAN_PIN > -1
-    if (current_temperature[3] > EXTRUDER_AUTO_FAN_TEMPERATURE) 
+    if (current_temperature[3] > EXTRUDER_AUTO_FAN_TEMPERATURE)
     {
-      if (EXTRUDER_3_AUTO_FAN_PIN == EXTRUDER_0_AUTO_FAN_PIN) 
+      if (EXTRUDER_3_AUTO_FAN_PIN == EXTRUDER_0_AUTO_FAN_PIN)
         fanState |= 1;
-      else if (EXTRUDER_3_AUTO_FAN_PIN == EXTRUDER_1_AUTO_FAN_PIN) 
+      else if (EXTRUDER_3_AUTO_FAN_PIN == EXTRUDER_1_AUTO_FAN_PIN)
         fanState |= 2;
-      else if (EXTRUDER_3_AUTO_FAN_PIN == EXTRUDER_2_AUTO_FAN_PIN) 
+      else if (EXTRUDER_3_AUTO_FAN_PIN == EXTRUDER_2_AUTO_FAN_PIN)
         fanState |= 4;
       else
         fanState |= 8;
     }
   #endif
-  
+
   // update extruder auto fan states
   #if defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1
     setExtruderAutoFanState(EXTRUDER_0_AUTO_FAN_PIN, (fanState & 1) != 0);
-  #endif 
+  #endif
   #if defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1
     if (EXTRUDER_1_AUTO_FAN_PIN != EXTRUDER_0_AUTO_FAN_PIN)
       setExtruderAutoFanState(EXTRUDER_1_AUTO_FAN_PIN, (fanState & 2) != 0);
-  #endif 
+  #endif
   #if defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1
     if (EXTRUDER_2_AUTO_FAN_PIN != EXTRUDER_0_AUTO_FAN_PIN
         && EXTRUDER_2_AUTO_FAN_PIN != EXTRUDER_1_AUTO_FAN_PIN)
@@ -479,7 +479,7 @@ void manage_heater()
   float pid_output;
 
   if(temp_meas_ready != true)   //better readability
-    return; 
+    return;
 
   updateTemperaturesFromRawValues();
 
@@ -492,7 +492,7 @@ void manage_heater()
     }
   #endif //HEATER_0_USES_MAX6675
 
-  for(int e = 0; e < EXTRUDERS; e++) 
+  for(int e = 0; e < EXTRUDERS; e++)
   {
 
 #if defined (THERMAL_RUNAWAY_PROTECTION_PERIOD) && THERMAL_RUNAWAY_PROTECTION_PERIOD > 0
@@ -527,15 +527,16 @@ void manage_heater()
           dTerm[e] = (PID_PARAM(Kd,e) * (pid_input - temp_dState[e]))*K2 + (K1 * dTerm[e]);
           pid_output = pTerm[e] + iTerm[e] - dTerm[e];
           if (pid_output > PID_MAX) {
-            if (pid_error[e] > 0 )  temp_iState[e] -= pid_error[e]; // conditional un-integration
+            if (pid_error[e] > 0 )  temp_iState[e] -= pid_error[e];
             pid_output=PID_MAX;
           } else if (pid_output < 0){
-            if (pid_error[e] < 0 )  temp_iState[e] -= pid_error[e]; // conditional un-integration
+            if (pid_error[e] < 0 )  temp_iState[e] -= pid_error[e];
             pid_output=0;
           }
+
         }
         temp_dState[e] = pid_input;
-    #else 
+    #else
           pid_output = constrain(target_temperature[e], 0, PID_MAX);
     #endif //PID_OPENLOOP
     #ifdef PID_DEBUG
@@ -561,7 +562,7 @@ void manage_heater()
   #endif
 
     // Check if temperature is within the correct range
-    if((current_temperature[e] > minttemp[e]) && (current_temperature[e] < maxttemp[e])) 
+    if((current_temperature[e] > minttemp[e]) && (current_temperature[e] < maxttemp[e]))
     {
       soft_pwm[e] = (int)pid_output >> 1;
     }
@@ -605,9 +606,9 @@ void manage_heater()
   {
     checkExtruderAutoFans();
     extruder_autofan_last_check = millis();
-  }  
-  #endif       
-  
+  }
+  #endif
+
   #ifndef PIDTEMPBED
   if(millis() - previous_millis_bed_heater < BED_CHECK_INTERVAL)
     return;
@@ -615,7 +616,7 @@ void manage_heater()
   #endif
 
   #if TEMP_SENSOR_BED != 0
-  
+
     #if defined(THERMAL_RUNAWAY_PROTECTION_BED_PERIOD) && THERMAL_RUNAWAY_PROTECTION_BED_PERIOD > 0
       thermal_runaway_protection(&thermal_runaway_bed_state_machine, &thermal_runaway_bed_timer, current_temperature_bed, target_temperature_bed, 9, THERMAL_RUNAWAY_PROTECTION_BED_PERIOD, THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS);
     #endif
@@ -624,18 +625,18 @@ void manage_heater()
     pid_input = current_temperature_bed;
 
     #ifndef PID_OPENLOOP
-		  pid_error_bed = target_temperature_bed - pid_input;
-		  pTerm_bed = bedKp * pid_error_bed;
-		  temp_iState_bed += pid_error_bed;
-		  temp_iState_bed = constrain(temp_iState_bed, temp_iState_min_bed, temp_iState_max_bed);
-		  iTerm_bed = bedKi * temp_iState_bed;
-
-		  //K1 defined in Configuration.h in the PID settings
-		  #define K2 (1.0-K1)
-		  dTerm_bed= (bedKd * (pid_input - temp_dState_bed))*K2 + (K1 * dTerm_bed);
-		  temp_dState_bed = pid_input;
-
-		  pid_output = pTerm_bed + iTerm_bed - dTerm_bed;
+          pid_error_bed = target_temperature_bed - pid_input;
+          pTerm_bed = bedKp * pid_error_bed;
+          temp_iState_bed += pid_error_bed;
+          temp_iState_bed = constrain(temp_iState_bed, temp_iState_min_bed, temp_iState_max_bed);
+          iTerm_bed = bedKi * temp_iState_bed;
+
+          //K1 defined in Configuration.h in the PID settings
+          #define K2 (1.0-K1)
+          dTerm_bed= (bedKd * (pid_input - temp_dState_bed))*K2 + (K1 * dTerm_bed);
+          temp_dState_bed = pid_input;
+
+          pid_output = pTerm_bed + iTerm_bed - dTerm_bed;
       if (pid_output > MAX_BED_POWER) {
         if (pid_error_bed > 0 )  temp_iState_bed -= pid_error_bed; // conditional un-integration
         pid_output=MAX_BED_POWER;
@@ -644,17 +645,17 @@ void manage_heater()
         pid_output=0;
       }
 
-    #else 
+    #else
       pid_output = constrain(target_temperature_bed, 0, MAX_BED_POWER);
     #endif //PID_OPENLOOP
 
-	  if((current_temperature_bed > BED_MINTEMP) && (current_temperature_bed < BED_MAXTEMP)) 
-	  {
-	    soft_pwm_bed = (int)pid_output >> 1;
-	  }
-	  else {
-	    soft_pwm_bed = 0;
-	  }
+      if((current_temperature_bed > BED_MINTEMP) && (current_temperature_bed < BED_MAXTEMP))
+      {
+        soft_pwm_bed = (int)pid_output >> 1;
+      }
+      else {
+        soft_pwm_bed = 0;
+      }
 
     #elif !defined(BED_LIMIT_SWITCHING)
       // Check if temperature is within the correct range
@@ -664,7 +665,7 @@ void manage_heater()
         {
           soft_pwm_bed = 0;
         }
-        else 
+        else
         {
           soft_pwm_bed = MAX_BED_POWER>>1;
         }
@@ -694,27 +695,27 @@ void manage_heater()
       }
     #endif
   #endif
-  
-//code for controlling the extruder rate based on the width sensor 
+
+//code for controlling the extruder rate based on the width sensor
 #ifdef FILAMENT_SENSOR
-  if(filament_sensor) 
-	{
-	meas_shift_index=delay_index1-meas_delay_cm;
-		  if(meas_shift_index<0)
-			  meas_shift_index = meas_shift_index + (MAX_MEASUREMENT_DELAY+1);  //loop around buffer if needed
-		  
-		  //get the delayed info and add 100 to reconstitute to a percent of the nominal filament diameter
-		  //then square it to get an area
-		  
-		  if(meas_shift_index<0)
-			  meas_shift_index=0;
-		  else if (meas_shift_index>MAX_MEASUREMENT_DELAY)
-			  meas_shift_index=MAX_MEASUREMENT_DELAY;
-		  
-		     volumetric_multiplier[FILAMENT_SENSOR_EXTRUDER_NUM] = pow((float)(100+measurement_delay[meas_shift_index])/100.0,2);
-		     if (volumetric_multiplier[FILAMENT_SENSOR_EXTRUDER_NUM] <0.01)
-		    	 volumetric_multiplier[FILAMENT_SENSOR_EXTRUDER_NUM]=0.01;
-	}
+  if(filament_sensor)
+    {
+    meas_shift_index=delay_index1-meas_delay_cm;
+          if(meas_shift_index<0)
+              meas_shift_index = meas_shift_index + (MAX_MEASUREMENT_DELAY+1);  //loop around buffer if needed
+
+          //get the delayed info and add 100 to reconstitute to a percent of the nominal filament diameter
+          //then square it to get an area
+
+          if(meas_shift_index<0)
+              meas_shift_index=0;
+          else if (meas_shift_index>MAX_MEASUREMENT_DELAY)
+              meas_shift_index=MAX_MEASUREMENT_DELAY;
+
+             volumetric_multiplier[FILAMENT_SENSOR_EXTRUDER_NUM] = pow((float)(100+measurement_delay[meas_shift_index])/100.0,2);
+             if (volumetric_multiplier[FILAMENT_SENSOR_EXTRUDER_NUM] <0.01)
+                 volumetric_multiplier[FILAMENT_SENSOR_EXTRUDER_NUM]=0.01;
+    }
 #endif
 }
 
@@ -733,7 +734,7 @@ static float analog2temp(int raw, uint8_t e) {
       SERIAL_ERRORLNPGM(" - Invalid extruder number !");
       kill();
       return 0.0;
-  } 
+  }
   #ifdef HEATER_0_USES_MAX6675
     if (e == 0)
     {
@@ -751,8 +752,8 @@ static float analog2temp(int raw, uint8_t e) {
     {
       if (PGM_RD_W((*tt)[i][0]) > raw)
       {
-        celsius = PGM_RD_W((*tt)[i-1][1]) + 
-          (raw - PGM_RD_W((*tt)[i-1][0])) * 
+        celsius = PGM_RD_W((*tt)[i-1][1]) +
+          (raw - PGM_RD_W((*tt)[i-1][0])) *
           (float)(PGM_RD_W((*tt)[i][1]) - PGM_RD_W((*tt)[i-1][1])) /
           (float)(PGM_RD_W((*tt)[i][0]) - PGM_RD_W((*tt)[i-1][0]));
         break;
@@ -778,8 +779,8 @@ static float analog2tempBed(int raw) {
     {
       if (PGM_RD_W(BEDTEMPTABLE[i][0]) > raw)
       {
-        celsius  = PGM_RD_W(BEDTEMPTABLE[i-1][1]) + 
-          (raw - PGM_RD_W(BEDTEMPTABLE[i-1][0])) * 
+        celsius  = PGM_RD_W(BEDTEMPTABLE[i-1][1]) +
+          (raw - PGM_RD_W(BEDTEMPTABLE[i-1][0])) *
           (float)(PGM_RD_W(BEDTEMPTABLE[i][1]) - PGM_RD_W(BEDTEMPTABLE[i-1][1])) /
           (float)(PGM_RD_W(BEDTEMPTABLE[i][0]) - PGM_RD_W(BEDTEMPTABLE[i-1][0]));
         break;
@@ -812,9 +813,9 @@ static void updateTemperaturesFromRawValues()
     #ifdef TEMP_SENSOR_1_AS_REDUNDANT
       redundant_temperature = analog2temp(redundant_temperature_raw, 1);
     #endif
-    #if defined (FILAMENT_SENSOR) && (FILWIDTH_PIN > -1)    //check if a sensor is supported 
+    #if defined (FILAMENT_SENSOR) && (FILWIDTH_PIN > -1)    //check if a sensor is supported
       filament_width_meas = analog2widthFil();
-    #endif  
+    #endif
     //Reset the watchdog after we know we have a temperature measurement.
     watchdog_reset();
 
@@ -824,29 +825,29 @@ static void updateTemperaturesFromRawValues()
 }
 
 
-// For converting raw Filament Width to milimeters 
+// For converting raw Filament Width to milimeters
 #ifdef FILAMENT_SENSOR
-float analog2widthFil() { 
-return current_raw_filwidth/16383.0*5.0; 
-//return current_raw_filwidth; 
-} 
- 
-// For converting raw Filament Width to a ratio 
-int widthFil_to_size_ratio() { 
- 
-float temp; 
-      
+float analog2widthFil() {
+return current_raw_filwidth/16383.0*5.0;
+//return current_raw_filwidth;
+}
+
+// For converting raw Filament Width to a ratio
+int widthFil_to_size_ratio() {
+
+float temp;
+
 temp=filament_width_meas;
 if(filament_width_meas<MEASURED_LOWER_LIMIT)
-	temp=filament_width_nominal;  //assume sensor cut out
+    temp=filament_width_nominal;  //assume sensor cut out
 else if (filament_width_meas>MEASURED_UPPER_LIMIT)
-	temp= MEASURED_UPPER_LIMIT;
+    temp= MEASURED_UPPER_LIMIT;
 
 
-return(filament_width_nominal/temp*100); 
+return(filament_width_nominal/temp*100);
 
 
-} 
+}
 #endif
 
 
@@ -857,13 +858,13 @@ void tp_init()
 {
 #if MB(RUMBA) && ((TEMP_SENSOR_0==-1)||(TEMP_SENSOR_1==-1)||(TEMP_SENSOR_2==-1)||(TEMP_SENSOR_BED==-1))
   //disable RUMBA JTAG in case the thermocouple extension is plugged on top of JTAG connector
-  MCUCR=(1<<JTD); 
+  MCUCR=(1<<JTD);
   MCUCR=(1<<JTD);
 #endif
-  
-  // Finish init of mult extruder arrays 
+
+  // Finish init of mult extruder arrays
   for(int e = 0; e < EXTRUDERS; e++) {
-    // populate with the first value 
+    // populate with the first value
     maxttemp[e] = maxttemp[0];
 #ifdef PIDTEMP
     temp_iState_min[e] = 0.0;
@@ -875,22 +876,22 @@ void tp_init()
 #endif //PIDTEMPBED
   }
 
-  #if defined(HEATER_0_PIN) && (HEATER_0_PIN > -1) 
+  #if defined(HEATER_0_PIN) && (HEATER_0_PIN > -1)
     SET_OUTPUT(HEATER_0_PIN);
   #endif
-  #if defined(HEATER_1_PIN) && (HEATER_1_PIN > -1) 
+  #if defined(HEATER_1_PIN) && (HEATER_1_PIN > -1)
     SET_OUTPUT(HEATER_1_PIN);
   #endif
-  #if defined(HEATER_2_PIN) && (HEATER_2_PIN > -1) 
+  #if defined(HEATER_2_PIN) && (HEATER_2_PIN > -1)
     SET_OUTPUT(HEATER_2_PIN);
   #endif
-  #if defined(HEATER_3_PIN) && (HEATER_3_PIN > -1) 
+  #if defined(HEATER_3_PIN) && (HEATER_3_PIN > -1)
     SET_OUTPUT(HEATER_3_PIN);
   #endif
-  #if defined(HEATER_BED_PIN) && (HEATER_BED_PIN > -1) 
+  #if defined(HEATER_BED_PIN) && (HEATER_BED_PIN > -1)
     SET_OUTPUT(HEATER_BED_PIN);
-  #endif  
-  #if defined(FAN_PIN) && (FAN_PIN > -1) 
+  #endif
+  #if defined(FAN_PIN) && (FAN_PIN > -1)
     SET_OUTPUT(FAN_PIN);
     #ifdef FAST_PWM_FAN
     setPwmFrequency(FAN_PIN, 1); // No prescaling. Pwm frequency = F_CPU/256/8
@@ -898,24 +899,24 @@ void tp_init()
     #ifdef FAN_SOFT_PWM
     soft_pwm_fan = fanSpeedSoftPwm / 2;
     #endif
-  #endif  
+  #endif
 
   #ifdef HEATER_0_USES_MAX6675
 
     #ifndef SDSUPPORT
       SET_OUTPUT(SCK_PIN);
       WRITE(SCK_PIN,0);
-    
+
       SET_OUTPUT(MOSI_PIN);
       WRITE(MOSI_PIN,1);
-    
+
       SET_INPUT(MISO_PIN);
       WRITE(MISO_PIN,1);
     #else
       pinMode(SS_PIN, OUTPUT);
       digitalWrite(SS_PIN, HIGH);
     #endif
-    
+
     SET_OUTPUT(MAX6675_SS);
     WRITE(MAX6675_SS,1);
 
@@ -929,56 +930,56 @@ void tp_init()
   #endif
   #if defined(TEMP_0_PIN) && (TEMP_0_PIN > -1)
     #if TEMP_0_PIN < 8
-       DIDR0 |= 1 << TEMP_0_PIN; 
+       DIDR0 |= 1 << TEMP_0_PIN;
     #else
-       DIDR2 |= 1<<(TEMP_0_PIN - 8); 
+       DIDR2 |= 1<<(TEMP_0_PIN - 8);
     #endif
   #endif
   #if defined(TEMP_1_PIN) && (TEMP_1_PIN > -1)
     #if TEMP_1_PIN < 8
-      DIDR0 |= 1<<TEMP_1_PIN; 
+      DIDR0 |= 1<<TEMP_1_PIN;
     #else
-    	DIDR2 |= 1<<(TEMP_1_PIN - 8); 
+        DIDR2 |= 1<<(TEMP_1_PIN - 8);
     #endif
   #endif
   #if defined(TEMP_2_PIN) && (TEMP_2_PIN > -1)
     #if TEMP_2_PIN < 8
-      DIDR0 |= 1 << TEMP_2_PIN; 
+      DIDR0 |= 1 << TEMP_2_PIN;
     #else
-      DIDR2 |= 1<<(TEMP_2_PIN - 8); 
+      DIDR2 |= 1<<(TEMP_2_PIN - 8);
     #endif
   #endif
   #if defined(TEMP_3_PIN) && (TEMP_3_PIN > -1)
     #if TEMP_3_PIN < 8
-      DIDR0 |= 1 << TEMP_3_PIN; 
+      DIDR0 |= 1 << TEMP_3_PIN;
     #else
-      DIDR2 |= 1<<(TEMP_3_PIN - 8); 
+      DIDR2 |= 1<<(TEMP_3_PIN - 8);
     #endif
   #endif
   #if defined(TEMP_BED_PIN) && (TEMP_BED_PIN > -1)
     #if TEMP_BED_PIN < 8
-       DIDR0 |= 1<<TEMP_BED_PIN; 
+       DIDR0 |= 1<<TEMP_BED_PIN;
     #else
-       DIDR2 |= 1<<(TEMP_BED_PIN - 8); 
+       DIDR2 |= 1<<(TEMP_BED_PIN - 8);
     #endif
   #endif
-  
-  //Added for Filament Sensor 
+
+  //Added for Filament Sensor
   #ifdef FILAMENT_SENSOR
-    #if defined(FILWIDTH_PIN) && (FILWIDTH_PIN > -1) 
-      #if FILWIDTH_PIN < 8 
-        DIDR0 |= 1<<FILWIDTH_PIN;  
+    #if defined(FILWIDTH_PIN) && (FILWIDTH_PIN > -1)
+      #if FILWIDTH_PIN < 8
+        DIDR0 |= 1<<FILWIDTH_PIN;
       #else
-        DIDR2 |= 1<<(FILWIDTH_PIN - 8);  
-      #endif 
+        DIDR2 |= 1<<(FILWIDTH_PIN - 8);
+      #endif
     #endif
   #endif
-  
+
   // Use timer0 for temperature measurement
   // Interleave temperature interrupt with millies interrupt
   OCR0B = 128;
-  TIMSK0 |= (1<<OCIE0B);  
-  
+  TIMSK0 |= (1<<OCIE0B);
+
   // Wait for temperature measurement to settle
   delay(250);
 
@@ -1089,8 +1090,8 @@ void tp_init()
 #endif //BED_MAXTEMP
 }
 
-void setWatch() 
-{  
+void setWatch()
+{
 #ifdef WATCH_TEMP_PERIOD
   for (int e = 0; e < EXTRUDERS; e++)
   {
@@ -1098,9 +1099,9 @@ void setWatch()
     {
       watch_start_temp[e] = degHotend(e);
       watchmillis[e] = millis();
-    } 
+    }
   }
-#endif 
+#endif
 }
 
 #if defined (THERMAL_RUNAWAY_PROTECTION_PERIOD) && THERMAL_RUNAWAY_PROTECTION_PERIOD > 0
@@ -1118,7 +1119,7 @@ void thermal_runaway_protection(int *state, unsigned long *timer, float temperat
       SERIAL_ECHO(temperature);
       SERIAL_ECHO(" ;  Target Temp:");
       SERIAL_ECHO(target_temperature);
-      SERIAL_ECHOLN("");    
+      SERIAL_ECHOLN("");
 */
   if ((target_temperature == 0) || thermal_runaway)
   {
@@ -1138,7 +1139,7 @@ void thermal_runaway_protection(int *state, unsigned long *timer, float temperat
       if (temperature >= (target_temperature - hysteresis_degc))
       {
         *timer = millis();
-      } 
+      }
       else if ( (millis() - *timer) > ((unsigned long) period_seconds) * 1000)
       {
         SERIAL_ERROR_START;
@@ -1173,23 +1174,23 @@ void disable_heater()
   #if defined(TEMP_0_PIN) && TEMP_0_PIN > -1
   target_temperature[0]=0;
   soft_pwm[0]=0;
-   #if defined(HEATER_0_PIN) && HEATER_0_PIN > -1  
+   #if defined(HEATER_0_PIN) && HEATER_0_PIN > -1
      WRITE(HEATER_0_PIN,LOW);
    #endif
   #endif
-     
+
   #if defined(TEMP_1_PIN) && TEMP_1_PIN > -1 && EXTRUDERS > 1
     target_temperature[1]=0;
     soft_pwm[1]=0;
-    #if defined(HEATER_1_PIN) && HEATER_1_PIN > -1 
+    #if defined(HEATER_1_PIN) && HEATER_1_PIN > -1
       WRITE(HEATER_1_PIN,LOW);
     #endif
   #endif
-      
+
   #if defined(TEMP_2_PIN) && TEMP_2_PIN > -1 && EXTRUDERS > 2
     target_temperature[2]=0;
     soft_pwm[2]=0;
-    #if defined(HEATER_2_PIN) && HEATER_2_PIN > -1  
+    #if defined(HEATER_2_PIN) && HEATER_2_PIN > -1
       WRITE(HEATER_2_PIN,LOW);
     #endif
   #endif
@@ -1197,19 +1198,19 @@ void disable_heater()
   #if defined(TEMP_3_PIN) && TEMP_3_PIN > -1 && EXTRUDERS > 3
     target_temperature[3]=0;
     soft_pwm[3]=0;
-    #if defined(HEATER_3_PIN) && HEATER_3_PIN > -1  
+    #if defined(HEATER_3_PIN) && HEATER_3_PIN > -1
       WRITE(HEATER_3_PIN,LOW);
     #endif
-  #endif 
+  #endif
 
 
   #if defined(TEMP_BED_PIN) && TEMP_BED_PIN > -1
     target_temperature_bed=0;
     soft_pwm_bed=0;
-    #if defined(HEATER_BED_PIN) && HEATER_BED_PIN > -1  
+    #if defined(HEATER_BED_PIN) && HEATER_BED_PIN > -1
       WRITE(HEATER_BED_PIN,LOW);
     #endif
-  #endif 
+  #endif
 }
 
 void max_temp_error(uint8_t e) {
@@ -1259,38 +1260,38 @@ int max6675_temp = 2000;
 
 static int read_max6675()
 {
-  if (millis() - max6675_previous_millis < MAX6675_HEAT_INTERVAL) 
+  if (millis() - max6675_previous_millis < MAX6675_HEAT_INTERVAL)
     return max6675_temp;
-  
+
   max6675_previous_millis = millis();
   max6675_temp = 0;
-    
+
   #ifdef PRR
     PRR &= ~(1<<PRSPI);
   #elif defined(PRR0)
     PRR0 &= ~(1<<PRSPI);
   #endif
-  
+
   SPCR = (1<<MSTR) | (1<<SPE) | (1<<SPR0);
-  
+
   // enable TT_MAX6675
   WRITE(MAX6675_SS, 0);
-  
+
   // ensure 100ns delay - a bit extra is fine
   asm("nop");//50ns on 20Mhz, 62.5ns on 16Mhz
   asm("nop");//50ns on 20Mhz, 62.5ns on 16Mhz
-  
+
   // read MSB
   SPDR = 0;
   for (;(SPSR & (1<<SPIF)) == 0;);
   max6675_temp = SPDR;
   max6675_temp <<= 8;
-  
+
   // read LSB
   SPDR = 0;
   for (;(SPSR & (1<<SPIF)) == 0;);
   max6675_temp |= SPDR;
-  
+
   // disable TT_MAX6675
   WRITE(MAX6675_SS, 1);
 
@@ -1299,7 +1300,7 @@ static int read_max6675()
     // thermocouple open
     max6675_temp = 4000;
   }
-  else 
+  else
   {
     max6675_temp = max6675_temp >> 3;
   }
@@ -1327,21 +1328,21 @@ ISR(TIMER0_COMPB_vect)
   static unsigned char slow_pwm_count = 0;
   static unsigned char state_heater_0 = 0;
   static unsigned char state_timer_heater_0 = 0;
-#endif 
+#endif
 
 #if (EXTRUDERS > 1) || defined(HEATERS_PARALLEL)
   static unsigned char soft_pwm_1;
 #ifdef SLOW_PWM_HEATERS
   static unsigned char state_heater_1 = 0;
   static unsigned char state_timer_heater_1 = 0;
-#endif 
+#endif
 #endif
 #if EXTRUDERS > 2
   static unsigned char soft_pwm_2;
 #ifdef SLOW_PWM_HEATERS
   static unsigned char state_heater_2 = 0;
   static unsigned char state_timer_heater_2 = 0;
-#endif 
+#endif
 #endif
 #if EXTRUDERS > 3
   static unsigned char soft_pwm_3;
@@ -1356,20 +1357,20 @@ ISR(TIMER0_COMPB_vect)
 #ifdef SLOW_PWM_HEATERS
   static unsigned char state_heater_b = 0;
   static unsigned char state_timer_heater_b = 0;
-#endif 
 #endif
-  
+#endif
+
 #if defined(FILWIDTH_PIN) &&(FILWIDTH_PIN > -1)
   static unsigned long raw_filwidth_value = 0;  //added for filament width sensor
 #endif
-  
+
 #ifndef SLOW_PWM_HEATERS
   /*
    * standard PWM modulation
    */
   if(pwm_count == 0){
     soft_pwm_0 = soft_pwm[0];
-    if(soft_pwm_0 > 0) { 
+    if(soft_pwm_0 > 0) {
       WRITE(HEATER_0_PIN,1);
 #ifdef HEATERS_PARALLEL
       WRITE(HEATER_1_PIN,1);
@@ -1399,7 +1400,7 @@ ISR(TIMER0_COMPB_vect)
     if(soft_pwm_fan > 0) WRITE(FAN_PIN,1); else WRITE(FAN_PIN,0);
 #endif
   }
-  if(soft_pwm_0 < pwm_count) { 
+  if(soft_pwm_0 < pwm_count) {
     WRITE(HEATER_0_PIN,0);
 #ifdef HEATERS_PARALLEL
     WRITE(HEATER_1_PIN,0);
@@ -1422,10 +1423,10 @@ ISR(TIMER0_COMPB_vect)
 #ifdef FAN_SOFT_PWM
   if(soft_pwm_fan < pwm_count) WRITE(FAN_PIN,0);
 #endif
-  
+
   pwm_count += (1 << SOFT_PWM_SCALE);
   pwm_count &= 0x7f;
-  
+
 #else //ifndef SLOW_PWM_HEATERS
   /*
    * SLOW PWM HEATERS
@@ -1436,84 +1437,84 @@ ISR(TIMER0_COMPB_vect)
 #define MIN_STATE_TIME 16 // MIN_STATE_TIME * 65.5 = time in milliseconds
 #endif
   if (slow_pwm_count == 0) {
-    // EXTRUDER 0 
+    // EXTRUDER 0
     soft_pwm_0 = soft_pwm[0];
     if (soft_pwm_0 > 0) {
-      // turn ON heather only if the minimum time is up 
-      if (state_timer_heater_0 == 0) { 
-	// if change state set timer 
-	if (state_heater_0 == 0) {
-	  state_timer_heater_0 = MIN_STATE_TIME;
-	}
-	state_heater_0 = 1;
-	WRITE(HEATER_0_PIN, 1);
+      // turn ON heather only if the minimum time is up
+      if (state_timer_heater_0 == 0) {
+    // if change state set timer
+    if (state_heater_0 == 0) {
+      state_timer_heater_0 = MIN_STATE_TIME;
+    }
+    state_heater_0 = 1;
+    WRITE(HEATER_0_PIN, 1);
 #ifdef HEATERS_PARALLEL
-	WRITE(HEATER_1_PIN, 1);
+    WRITE(HEATER_1_PIN, 1);
 #endif
       }
     } else {
-      // turn OFF heather only if the minimum time is up 
+      // turn OFF heather only if the minimum time is up
       if (state_timer_heater_0 == 0) {
-	// if change state set timer 
-	if (state_heater_0 == 1) {
-	  state_timer_heater_0 = MIN_STATE_TIME;
-	}
-	state_heater_0 = 0;
-	WRITE(HEATER_0_PIN, 0);
+    // if change state set timer
+    if (state_heater_0 == 1) {
+      state_timer_heater_0 = MIN_STATE_TIME;
+    }
+    state_heater_0 = 0;
+    WRITE(HEATER_0_PIN, 0);
 #ifdef HEATERS_PARALLEL
-	WRITE(HEATER_1_PIN, 0);
+    WRITE(HEATER_1_PIN, 0);
 #endif
       }
     }
-    
+
 #if EXTRUDERS > 1
     // EXTRUDER 1
     soft_pwm_1 = soft_pwm[1];
     if (soft_pwm_1 > 0) {
-      // turn ON heather only if the minimum time is up 
-      if (state_timer_heater_1 == 0) { 
-	// if change state set timer 
-	if (state_heater_1 == 0) {
-	  state_timer_heater_1 = MIN_STATE_TIME;
-	}
-	state_heater_1 = 1;
-	WRITE(HEATER_1_PIN, 1);
+      // turn ON heather only if the minimum time is up
+      if (state_timer_heater_1 == 0) {
+    // if change state set timer
+    if (state_heater_1 == 0) {
+      state_timer_heater_1 = MIN_STATE_TIME;
+    }
+    state_heater_1 = 1;
+    WRITE(HEATER_1_PIN, 1);
       }
     } else {
-      // turn OFF heather only if the minimum time is up 
+      // turn OFF heather only if the minimum time is up
       if (state_timer_heater_1 == 0) {
-	// if change state set timer 
-	if (state_heater_1 == 1) {
-	  state_timer_heater_1 = MIN_STATE_TIME;
-	}
-	state_heater_1 = 0;
-	WRITE(HEATER_1_PIN, 0);
+    // if change state set timer
+    if (state_heater_1 == 1) {
+      state_timer_heater_1 = MIN_STATE_TIME;
+    }
+    state_heater_1 = 0;
+    WRITE(HEATER_1_PIN, 0);
       }
     }
 #endif
-    
+
 #if EXTRUDERS > 2
     // EXTRUDER 2
     soft_pwm_2 = soft_pwm[2];
     if (soft_pwm_2 > 0) {
-      // turn ON heather only if the minimum time is up 
-      if (state_timer_heater_2 == 0) { 
-	// if change state set timer 
-	if (state_heater_2 == 0) {
-	  state_timer_heater_2 = MIN_STATE_TIME;
-	}
-	state_heater_2 = 1;
-	WRITE(HEATER_2_PIN, 1);
+      // turn ON heather only if the minimum time is up
+      if (state_timer_heater_2 == 0) {
+    // if change state set timer
+    if (state_heater_2 == 0) {
+      state_timer_heater_2 = MIN_STATE_TIME;
+    }
+    state_heater_2 = 1;
+    WRITE(HEATER_2_PIN, 1);
       }
     } else {
-      // turn OFF heather only if the minimum time is up 
+      // turn OFF heather only if the minimum time is up
       if (state_timer_heater_2 == 0) {
-	// if change state set timer 
-	if (state_heater_2 == 1) {
-	  state_timer_heater_2 = MIN_STATE_TIME;
-	}
-	state_heater_2 = 0;
-	WRITE(HEATER_2_PIN, 0);
+    // if change state set timer
+    if (state_heater_2 == 1) {
+      state_timer_heater_2 = MIN_STATE_TIME;
+    }
+    state_heater_2 = 0;
+    WRITE(HEATER_2_PIN, 0);
       }
     }
 #endif
@@ -1522,24 +1523,24 @@ ISR(TIMER0_COMPB_vect)
     // EXTRUDER 3
     soft_pwm_3 = soft_pwm[3];
     if (soft_pwm_3 > 0) {
-      // turn ON heather only if the minimum time is up 
-      if (state_timer_heater_3 == 0) { 
-	// if change state set timer 
-	if (state_heater_3 == 0) {
-	  state_timer_heater_3 = MIN_STATE_TIME;
-	}
-	state_heater_3 = 1;
-	WRITE(HEATER_3_PIN, 1);
+      // turn ON heather only if the minimum time is up
+      if (state_timer_heater_3 == 0) {
+    // if change state set timer
+    if (state_heater_3 == 0) {
+      state_timer_heater_3 = MIN_STATE_TIME;
+    }
+    state_heater_3 = 1;
+    WRITE(HEATER_3_PIN, 1);
       }
     } else {
-      // turn OFF heather only if the minimum time is up 
+      // turn OFF heather only if the minimum time is up
       if (state_timer_heater_3 == 0) {
-	// if change state set timer 
-	if (state_heater_3 == 1) {
-	  state_timer_heater_3 = MIN_STATE_TIME;
-	}
-	state_heater_3 = 0;
-	WRITE(HEATER_3_PIN, 0);
+    // if change state set timer
+    if (state_heater_3 == 1) {
+      state_timer_heater_3 = MIN_STATE_TIME;
+    }
+    state_heater_3 = 0;
+    WRITE(HEATER_3_PIN, 0);
       }
     }
 #endif
@@ -1548,36 +1549,36 @@ ISR(TIMER0_COMPB_vect)
     // BED
     soft_pwm_b = soft_pwm_bed;
     if (soft_pwm_b > 0) {
-      // turn ON heather only if the minimum time is up 
-      if (state_timer_heater_b == 0) { 
-	// if change state set timer 
-	if (state_heater_b == 0) {
-	  state_timer_heater_b = MIN_STATE_TIME;
-	}
-	state_heater_b = 1;
-	WRITE(HEATER_BED_PIN, 1);
+      // turn ON heather only if the minimum time is up
+      if (state_timer_heater_b == 0) {
+    // if change state set timer
+    if (state_heater_b == 0) {
+      state_timer_heater_b = MIN_STATE_TIME;
+    }
+    state_heater_b = 1;
+    WRITE(HEATER_BED_PIN, 1);
       }
     } else {
-      // turn OFF heather only if the minimum time is up 
+      // turn OFF heather only if the minimum time is up
       if (state_timer_heater_b == 0) {
-	// if change state set timer 
-	if (state_heater_b == 1) {
-	  state_timer_heater_b = MIN_STATE_TIME;
-	}
-	state_heater_b = 0;
-	WRITE(HEATER_BED_PIN, 0);
+    // if change state set timer
+    if (state_heater_b == 1) {
+      state_timer_heater_b = MIN_STATE_TIME;
+    }
+    state_heater_b = 0;
+    WRITE(HEATER_BED_PIN, 0);
       }
     }
 #endif
   } // if (slow_pwm_count == 0)
-  
-  // EXTRUDER 0 
+
+  // EXTRUDER 0
   if (soft_pwm_0 < slow_pwm_count) {
-    // turn OFF heather only if the minimum time is up 
-    if (state_timer_heater_0 == 0) { 
-      // if change state set timer 
+    // turn OFF heather only if the minimum time is up
+    if (state_timer_heater_0 == 0) {
+      // if change state set timer
       if (state_heater_0 == 1) {
-	state_timer_heater_0 = MIN_STATE_TIME;
+    state_timer_heater_0 = MIN_STATE_TIME;
       }
       state_heater_0 = 0;
       WRITE(HEATER_0_PIN, 0);
@@ -1586,30 +1587,30 @@ ISR(TIMER0_COMPB_vect)
 #endif
     }
   }
-    
+
 #if EXTRUDERS > 1
-  // EXTRUDER 1 
+  // EXTRUDER 1
   if (soft_pwm_1 < slow_pwm_count) {
-    // turn OFF heather only if the minimum time is up 
-    if (state_timer_heater_1 == 0) { 
-      // if change state set timer 
+    // turn OFF heather only if the minimum time is up
+    if (state_timer_heater_1 == 0) {
+      // if change state set timer
       if (state_heater_1 == 1) {
-	state_timer_heater_1 = MIN_STATE_TIME;
+    state_timer_heater_1 = MIN_STATE_TIME;
       }
       state_heater_1 = 0;
       WRITE(HEATER_1_PIN, 0);
     }
   }
 #endif
-  
+
 #if EXTRUDERS > 2
   // EXTRUDER 2
   if (soft_pwm_2 < slow_pwm_count) {
-    // turn OFF heather only if the minimum time is up 
-    if (state_timer_heater_2 == 0) { 
-      // if change state set timer 
+    // turn OFF heather only if the minimum time is up
+    if (state_timer_heater_2 == 0) {
+      // if change state set timer
       if (state_heater_2 == 1) {
-	state_timer_heater_2 = MIN_STATE_TIME;
+    state_timer_heater_2 = MIN_STATE_TIME;
       }
       state_heater_2 = 0;
       WRITE(HEATER_2_PIN, 0);
@@ -1620,33 +1621,33 @@ ISR(TIMER0_COMPB_vect)
 #if EXTRUDERS > 3
   // EXTRUDER 3
   if (soft_pwm_3 < slow_pwm_count) {
-    // turn OFF heather only if the minimum time is up 
-    if (state_timer_heater_3 == 0) { 
-      // if change state set timer 
+    // turn OFF heather only if the minimum time is up
+    if (state_timer_heater_3 == 0) {
+      // if change state set timer
       if (state_heater_3 == 1) {
-	state_timer_heater_3 = MIN_STATE_TIME;
+    state_timer_heater_3 = MIN_STATE_TIME;
       }
       state_heater_3 = 0;
       WRITE(HEATER_3_PIN, 0);
     }
   }
 #endif
-  
+
 #if defined(HEATER_BED_PIN) && HEATER_BED_PIN > -1
   // BED
   if (soft_pwm_b < slow_pwm_count) {
-    // turn OFF heather only if the minimum time is up 
-    if (state_timer_heater_b == 0) { 
-      // if change state set timer 
+    // turn OFF heather only if the minimum time is up
+    if (state_timer_heater_b == 0) {
+      // if change state set timer
       if (state_heater_b == 1) {
-	state_timer_heater_b = MIN_STATE_TIME;
+    state_timer_heater_b = MIN_STATE_TIME;
       }
       state_heater_b = 0;
       WRITE(HEATER_BED_PIN, 0);
     }
   }
 #endif
-  
+
 #ifdef FAN_SOFT_PWM
   if (pwm_count == 0){
     soft_pwm_fan = fanSpeedSoftPwm / 2;
@@ -1654,47 +1655,47 @@ ISR(TIMER0_COMPB_vect)
   }
   if (soft_pwm_fan < pwm_count) WRITE(FAN_PIN,0);
 #endif
-  
+
   pwm_count += (1 << SOFT_PWM_SCALE);
   pwm_count &= 0x7f;
-  
+
   // increment slow_pwm_count only every 64 pwm_count circa 65.5ms
   if ((pwm_count % 64) == 0) {
     slow_pwm_count++;
     slow_pwm_count &= 0x7f;
-    
+
     // Extruder 0
     if (state_timer_heater_0 > 0) {
       state_timer_heater_0--;
-    } 
-  
+    }
+
 #if EXTRUDERS > 1
     // Extruder 1
-    if (state_timer_heater_1 > 0) 
+    if (state_timer_heater_1 > 0)
       state_timer_heater_1--;
 #endif
-    
+
 #if EXTRUDERS > 2
     // Extruder 2
-    if (state_timer_heater_2 > 0) 
+    if (state_timer_heater_2 > 0)
       state_timer_heater_2--;
 #endif
 
 #if EXTRUDERS > 3
     // Extruder 3
-    if (state_timer_heater_3 > 0) 
+    if (state_timer_heater_3 > 0)
       state_timer_heater_3--;
 #endif
-    
+
 #if defined(HEATER_BED_PIN) && HEATER_BED_PIN > -1
-    // Bed   
-    if (state_timer_heater_b > 0) 
+    // Bed
+    if (state_timer_heater_b > 0)
       state_timer_heater_b--;
 #endif
   } //if ((pwm_count % 64) == 0) {
-  
+
 #endif //ifndef SLOW_PWM_HEATERS
-  
+
   switch(temp_state) {
     case 0: // Prepare TEMP_0
       #if defined(TEMP_0_PIN) && (TEMP_0_PIN > -1)
@@ -1791,35 +1792,35 @@ ISR(TIMER0_COMPB_vect)
       #endif
       temp_state = 10; //change so that Filament Width is also measured
       break;
-    case 10: //Prepare FILWIDTH 
-     #if defined(FILWIDTH_PIN) && (FILWIDTH_PIN> -1) 
-      #if FILWIDTH_PIN>7 
+    case 10: //Prepare FILWIDTH
+     #if defined(FILWIDTH_PIN) && (FILWIDTH_PIN> -1)
+      #if FILWIDTH_PIN>7
          ADCSRB = 1<<MUX5;
       #else
-         ADCSRB = 0; 
-      #endif 
-      ADMUX = ((1 << REFS0) | (FILWIDTH_PIN & 0x07)); 
-      ADCSRA |= 1<<ADSC; // Start conversion 
-     #endif 
-     lcd_buttons_update();       
-     temp_state = 11; 
-     break; 
-    case 11:   //Measure FILWIDTH 
-     #if defined(FILWIDTH_PIN) &&(FILWIDTH_PIN > -1) 
-     //raw_filwidth_value += ADC;  //remove to use an IIR filter approach 
+         ADCSRB = 0;
+      #endif
+      ADMUX = ((1 << REFS0) | (FILWIDTH_PIN & 0x07));
+      ADCSRA |= 1<<ADSC; // Start conversion
+     #endif
+     lcd_buttons_update();
+     temp_state = 11;
+     break;
+    case 11:   //Measure FILWIDTH
+     #if defined(FILWIDTH_PIN) &&(FILWIDTH_PIN > -1)
+     //raw_filwidth_value += ADC;  //remove to use an IIR filter approach
       if(ADC>102)  //check that ADC is reading a voltage > 0.5 volts, otherwise don't take in the data.
         {
-    	raw_filwidth_value= raw_filwidth_value-(raw_filwidth_value>>7);  //multipliy raw_filwidth_value by 127/128
-        
-        raw_filwidth_value= raw_filwidth_value + ((unsigned long)ADC<<7);  //add new ADC reading 
+        raw_filwidth_value= raw_filwidth_value-(raw_filwidth_value>>7);  //multipliy raw_filwidth_value by 127/128
+
+        raw_filwidth_value= raw_filwidth_value + ((unsigned long)ADC<<7);  //add new ADC reading
         }
-     #endif 
-     temp_state = 0;   
-      
+     #endif
+     temp_state = 0;
+
      temp_count++;
-     break;      
-      
-      
+     break;
+
+
     case 12: //Startup, delay initial temp reading a tiny bit so the hardware can settle.
       temp_state = 0;
       break;
@@ -1828,7 +1829,7 @@ ISR(TIMER0_COMPB_vect)
 //      SERIAL_ERRORLNPGM("Temp measurement error!");
 //      break;
   }
-    
+
   if(temp_count >= OVERSAMPLENR) // 10 * 16 * 1/(16000000/64/256)  = 164ms.
   {
     if (!temp_meas_ready) //Only update the raw values if they have been read. Else we could be updating them during reading.
@@ -1851,12 +1852,12 @@ ISR(TIMER0_COMPB_vect)
       current_temperature_bed_raw = raw_temp_bed_value;
     }
 
-//Add similar code for Filament Sensor - can be read any time since IIR filtering is used 
+//Add similar code for Filament Sensor - can be read any time since IIR filtering is used
 #if defined(FILWIDTH_PIN) &&(FILWIDTH_PIN > -1)
-  current_raw_filwidth = raw_filwidth_value>>10;  //need to divide to get to 0-16384 range since we used 1/128 IIR filter approach 
+  current_raw_filwidth = raw_filwidth_value>>10;  //need to divide to get to 0-16384 range since we used 1/128 IIR filter approach
 #endif
-    
-    
+
+
     temp_meas_ready = true;
     temp_count = 0;
     raw_temp_0_value = 0;
@@ -1947,12 +1948,12 @@ ISR(TIMER0_COMPB_vect)
     }
 #endif
   }
-  
+
 #ifdef BABYSTEPPING
   for(uint8_t axis=0;axis<3;axis++)
   {
     int curTodo=babystepsTodo[axis]; //get rid of volatile for performance
-   
+
     if(curTodo>0)
     {
       babystep(axis,/*fwd*/true);
@@ -1974,12 +1975,12 @@ ISR(TIMER0_COMPB_vect)
 
 float scalePID_i(float i)
 {
-	return i*PID_dT;
+    return i*PID_dT;
 }
 
 float unscalePID_i(float i)
 {
-	return i/PID_dT;
+    return i/PID_dT;
 }
 
 float scalePID_d(float d)
@@ -1989,7 +1990,7 @@ float scalePID_d(float d)
 
 float unscalePID_d(float d)
 {
-	return d*PID_dT;
+    return d*PID_dT;
 }
 
 #endif //PIDTEMP