Explorar el Código

Merge pull request #3253 from thinkyhead/rc_autotune_menu_optional

Make the Autotune option(s) in the LCD menu optional
Scott Lahteine hace 8 años
padre
commit
1d987cd280
Se han modificado 39 ficheros con 436 adiciones y 420 borrados
  1. 3
    2
      Marlin/Configuration.h
  2. 22
    23
      Marlin/Configuration_adv.h
  3. 0
    4
      Marlin/Marlin.h
  4. 7
    1
      Marlin/SanityCheck.h
  5. 3
    2
      Marlin/example_configurations/Felix/Configuration.h
  6. 1
    0
      Marlin/example_configurations/Felix/Configuration_DUAL.h
  7. 22
    23
      Marlin/example_configurations/Felix/Configuration_adv.h
  8. 3
    2
      Marlin/example_configurations/Hephestos/Configuration.h
  9. 22
    23
      Marlin/example_configurations/Hephestos/Configuration_adv.h
  10. 3
    2
      Marlin/example_configurations/Hephestos_2/Configuration.h
  11. 22
    23
      Marlin/example_configurations/Hephestos_2/Configuration_adv.h
  12. 3
    2
      Marlin/example_configurations/K8200/Configuration.h
  13. 22
    23
      Marlin/example_configurations/K8200/Configuration_adv.h
  14. 3
    2
      Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h
  15. 3
    2
      Marlin/example_configurations/RigidBot/Configuration.h
  16. 22
    23
      Marlin/example_configurations/RigidBot/Configuration_adv.h
  17. 4
    3
      Marlin/example_configurations/SCARA/Configuration.h
  18. 22
    23
      Marlin/example_configurations/SCARA/Configuration_adv.h
  19. 3
    2
      Marlin/example_configurations/TAZ4/Configuration.h
  20. 22
    23
      Marlin/example_configurations/TAZ4/Configuration_adv.h
  21. 3
    2
      Marlin/example_configurations/WITBOX/Configuration.h
  22. 22
    23
      Marlin/example_configurations/WITBOX/Configuration_adv.h
  23. 3
    2
      Marlin/example_configurations/adafruit/ST7565/Configuration.h
  24. 3
    2
      Marlin/example_configurations/delta/biv2.5/Configuration.h
  25. 22
    23
      Marlin/example_configurations/delta/biv2.5/Configuration_adv.h
  26. 3
    2
      Marlin/example_configurations/delta/generic/Configuration.h
  27. 22
    23
      Marlin/example_configurations/delta/generic/Configuration_adv.h
  28. 3
    2
      Marlin/example_configurations/delta/kossel_mini/Configuration.h
  29. 22
    23
      Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h
  30. 3
    2
      Marlin/example_configurations/delta/kossel_pro/Configuration.h
  31. 22
    23
      Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h
  32. 3
    2
      Marlin/example_configurations/delta/kossel_xl/Configuration.h
  33. 22
    23
      Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h
  34. 3
    2
      Marlin/example_configurations/makibox/Configuration.h
  35. 22
    23
      Marlin/example_configurations/makibox/Configuration_adv.h
  36. 3
    2
      Marlin/example_configurations/tvrrug/Round2/Configuration.h
  37. 22
    23
      Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h
  38. 2
    2
      Marlin/temperature.cpp
  39. 19
    8
      Marlin/ultralcd.cpp

+ 3
- 2
Marlin/Configuration.h Ver fichero

@@ -229,6 +229,7 @@
229 229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
230 230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
231 231
 #if ENABLED(PIDTEMP)
232
+  //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
232 233
   //#define PID_DEBUG // Sends debug data to the serial port.
233 234
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234 235
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
@@ -279,10 +280,10 @@
279 280
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
280 281
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
281 282
 
282
-//#define PID_BED_DEBUG // Sends debug data to the serial port.
283
-
284 283
 #if ENABLED(PIDTEMPBED)
285 284
 
285
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
286
+
286 287
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
287 288
 
288 289
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)

+ 22
- 23
Marlin/Configuration_adv.h Ver fichero

@@ -41,28 +41,27 @@
41 41
 //=============================Thermal Settings  ============================
42 42
 //===========================================================================
43 43
 
44
-#if ENABLED(BED_LIMIT_SWITCHING)
45
-  #define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
44
+#if DISABLED(PIDTEMPBED)
45
+  #define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
46
+  #if ENABLED(BED_LIMIT_SWITCHING)
47
+    #define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
48
+  #endif
46 49
 #endif
47
-#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
48 50
 
49 51
 /**
50
- * Thermal Protection parameters
52
+ * Thermal Protection protects your printer from damage and fire if a
53
+ * thermistor falls out or temperature sensors fail in any way.
54
+ *
55
+ * The issue: If a thermistor falls out or a temperature sensor fails,
56
+ * Marlin can no longer sense the actual temperature. Since a disconnected
57
+ * thermistor reads as a low temperature, the firmware will keep the heater on.
58
+ *
59
+ * The solution: Once the temperature reaches the target, start observing.
60
+ * If the temperature stays too far below the target (hysteresis) for too long (period),
61
+ * the firmware will halt the machine as a safety precaution.
62
+ *
63
+ * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
51 64
  */
52
-  /**
53
-   * Thermal Protection protects your printer from damage and fire if a
54
-   * thermistor falls out or temperature sensors fail in any way.
55
-   *
56
-   * The issue: If a thermistor falls out or a temperature sensor fails,
57
-   * Marlin can no longer sense the actual temperature. Since a disconnected
58
-   * thermistor reads as a low temperature, the firmware will keep the heater on.
59
-   *
60
-   * The solution: Once the temperature reaches the target, start observing.
61
-   * If the temperature stays too far below the target (hysteresis) for too long (period),
62
-   * the firmware will halt the machine as a safety precaution.
63
-   *
64
-   * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
65
-   */
66 65
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
67 66
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
68 67
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
@@ -80,11 +79,11 @@
80 79
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
81 80
 #endif
82 81
 
83
-  /**
84
-   * Thermal Protection parameters for the bed
85
-   * are like the above for the hotends.
86
-   * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
87
-   */
82
+/**
83
+ * Thermal Protection parameters for the bed
84
+ * are like the above for the hotends.
85
+ * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
86
+ */
88 87
 #if ENABLED(THERMAL_PROTECTION_BED)
89 88
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
90 89
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

+ 0
- 4
Marlin/Marlin.h Ver fichero

@@ -19,10 +19,6 @@
19 19
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
20 20
  *
21 21
  */
22
-
23
-// Tonokip RepRap firmware rewrite based off of Hydra-mmm firmware.
24
-// License: GPL
25
-
26 22
 #ifndef MARLIN_H
27 23
 #define MARLIN_H
28 24
 

+ 7
- 1
Marlin/SanityCheck.h Ver fichero

@@ -132,9 +132,15 @@
132 132
 #endif
133 133
 
134 134
 /**
135
- * Mesh Bed Leveling
135
+ * Bed Heating Options - PID vs Limit Switching
136 136
  */
137
+#if ENABLED(PIDTEMPBED) && ENABLED(BED_LIMIT_SWITCHING)
138
+  #error To use BED_LIMIT_SWITCHING you must disable PIDTEMPBED.
139
+#endif
137 140
 
141
+/**
142
+ * Mesh Bed Leveling
143
+ */
138 144
 #if ENABLED(MESH_BED_LEVELING)
139 145
   #if ENABLED(DELTA)
140 146
     #error MESH_BED_LEVELING does not yet support DELTA printers.

+ 3
- 2
Marlin/example_configurations/Felix/Configuration.h Ver fichero

@@ -229,6 +229,7 @@
229 229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
230 230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
231 231
 #if ENABLED(PIDTEMP)
232
+  //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
232 233
   //#define PID_DEBUG // Sends debug data to the serial port.
233 234
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234 235
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
@@ -268,10 +269,10 @@
268 269
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
269 270
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
270 271
 
271
-//#define PID_BED_DEBUG // Sends debug data to the serial port.
272
-
273 272
 #if ENABLED(PIDTEMPBED)
274 273
 
274
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
275
+
275 276
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
276 277
 
277 278
   // Felix Foil Heater

+ 1
- 0
Marlin/example_configurations/Felix/Configuration_DUAL.h Ver fichero

@@ -229,6 +229,7 @@
229 229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
230 230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
231 231
 #if ENABLED(PIDTEMP)
232
+  //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
232 233
   //#define PID_DEBUG // Sends debug data to the serial port.
233 234
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234 235
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay

+ 22
- 23
Marlin/example_configurations/Felix/Configuration_adv.h Ver fichero

@@ -41,28 +41,27 @@
41 41
 //=============================Thermal Settings  ============================
42 42
 //===========================================================================
43 43
 
44
-#if ENABLED(BED_LIMIT_SWITCHING)
45
-  #define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
44
+#if DISABLED(PIDTEMPBED)
45
+  #define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
46
+  #if ENABLED(BED_LIMIT_SWITCHING)
47
+    #define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
48
+  #endif
46 49
 #endif
47
-#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
48 50
 
49 51
 /**
50
- * Thermal Protection parameters
52
+ * Thermal Protection protects your printer from damage and fire if a
53
+ * thermistor falls out or temperature sensors fail in any way.
54
+ *
55
+ * The issue: If a thermistor falls out or a temperature sensor fails,
56
+ * Marlin can no longer sense the actual temperature. Since a disconnected
57
+ * thermistor reads as a low temperature, the firmware will keep the heater on.
58
+ *
59
+ * The solution: Once the temperature reaches the target, start observing.
60
+ * If the temperature stays too far below the target (hysteresis) for too long (period),
61
+ * the firmware will halt the machine as a safety precaution.
62
+ *
63
+ * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
51 64
  */
52
-  /**
53
-   * Thermal Protection protects your printer from damage and fire if a
54
-   * thermistor falls out or temperature sensors fail in any way.
55
-   *
56
-   * The issue: If a thermistor falls out or a temperature sensor fails,
57
-   * Marlin can no longer sense the actual temperature. Since a disconnected
58
-   * thermistor reads as a low temperature, the firmware will keep the heater on.
59
-   *
60
-   * The solution: Once the temperature reaches the target, start observing.
61
-   * If the temperature stays too far below the target (hysteresis) for too long (period),
62
-   * the firmware will halt the machine as a safety precaution.
63
-   *
64
-   * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
65
-   */
66 65
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
67 66
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
68 67
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
@@ -80,11 +79,11 @@
80 79
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
81 80
 #endif
82 81
 
83
-  /**
84
-   * Thermal Protection parameters for the bed
85
-   * are like the above for the hotends.
86
-   * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
87
-   */
82
+/**
83
+ * Thermal Protection parameters for the bed
84
+ * are like the above for the hotends.
85
+ * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
86
+ */
88 87
 #if ENABLED(THERMAL_PROTECTION_BED)
89 88
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
90 89
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

+ 3
- 2
Marlin/example_configurations/Hephestos/Configuration.h Ver fichero

@@ -232,6 +232,7 @@
232 232
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
233 233
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
234 234
 #if ENABLED(PIDTEMP)
235
+  //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
235 236
   //#define PID_DEBUG // Sends debug data to the serial port.
236 237
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
237 238
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
@@ -271,10 +272,10 @@
271 272
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
272 273
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
273 274
 
274
-//#define PID_BED_DEBUG // Sends debug data to the serial port.
275
-
276 275
 #if ENABLED(PIDTEMPBED)
277 276
 
277
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
278
+
278 279
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
279 280
 
280 281
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)

+ 22
- 23
Marlin/example_configurations/Hephestos/Configuration_adv.h Ver fichero

@@ -41,28 +41,27 @@
41 41
 //=============================Thermal Settings  ============================
42 42
 //===========================================================================
43 43
 
44
-#if ENABLED(BED_LIMIT_SWITCHING)
45
-  #define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
44
+#if DISABLED(PIDTEMPBED)
45
+  #define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
46
+  #if ENABLED(BED_LIMIT_SWITCHING)
47
+    #define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
48
+  #endif
46 49
 #endif
47
-#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
48 50
 
49 51
 /**
50
- * Thermal Protection parameters
52
+ * Thermal Protection protects your printer from damage and fire if a
53
+ * thermistor falls out or temperature sensors fail in any way.
54
+ *
55
+ * The issue: If a thermistor falls out or a temperature sensor fails,
56
+ * Marlin can no longer sense the actual temperature. Since a disconnected
57
+ * thermistor reads as a low temperature, the firmware will keep the heater on.
58
+ *
59
+ * The solution: Once the temperature reaches the target, start observing.
60
+ * If the temperature stays too far below the target (hysteresis) for too long (period),
61
+ * the firmware will halt the machine as a safety precaution.
62
+ *
63
+ * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
51 64
  */
52
-  /**
53
-   * Thermal Protection protects your printer from damage and fire if a
54
-   * thermistor falls out or temperature sensors fail in any way.
55
-   *
56
-   * The issue: If a thermistor falls out or a temperature sensor fails,
57
-   * Marlin can no longer sense the actual temperature. Since a disconnected
58
-   * thermistor reads as a low temperature, the firmware will keep the heater on.
59
-   *
60
-   * The solution: Once the temperature reaches the target, start observing.
61
-   * If the temperature stays too far below the target (hysteresis) for too long (period),
62
-   * the firmware will halt the machine as a safety precaution.
63
-   *
64
-   * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
65
-   */
66 65
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
67 66
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
68 67
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
@@ -80,11 +79,11 @@
80 79
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
81 80
 #endif
82 81
 
83
-  /**
84
-   * Thermal Protection parameters for the bed
85
-   * are like the above for the hotends.
86
-   * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
87
-   */
82
+/**
83
+ * Thermal Protection parameters for the bed
84
+ * are like the above for the hotends.
85
+ * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
86
+ */
88 87
 #if ENABLED(THERMAL_PROTECTION_BED)
89 88
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
90 89
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

+ 3
- 2
Marlin/example_configurations/Hephestos_2/Configuration.h Ver fichero

@@ -229,6 +229,7 @@
229 229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
230 230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
231 231
 #if ENABLED(PIDTEMP)
232
+  //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
232 233
   //#define PID_DEBUG // Sends debug data to the serial port.
233 234
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234 235
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
@@ -273,10 +274,10 @@
273 274
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
274 275
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
275 276
 
276
-//#define PID_BED_DEBUG // Sends debug data to the serial port.
277
-
278 277
 #if ENABLED(PIDTEMPBED)
279 278
 
279
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
280
+
280 281
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
281 282
 
282 283
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)

+ 22
- 23
Marlin/example_configurations/Hephestos_2/Configuration_adv.h Ver fichero

@@ -41,28 +41,27 @@
41 41
 //=============================Thermal Settings  ============================
42 42
 //===========================================================================
43 43
 
44
-#if ENABLED(BED_LIMIT_SWITCHING)
45
-  #define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
44
+#if DISABLED(PIDTEMPBED)
45
+  #define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
46
+  #if ENABLED(BED_LIMIT_SWITCHING)
47
+    #define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
48
+  #endif
46 49
 #endif
47
-#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
48 50
 
49 51
 /**
50
- * Thermal Protection parameters
52
+ * Thermal Protection protects your printer from damage and fire if a
53
+ * thermistor falls out or temperature sensors fail in any way.
54
+ *
55
+ * The issue: If a thermistor falls out or a temperature sensor fails,
56
+ * Marlin can no longer sense the actual temperature. Since a disconnected
57
+ * thermistor reads as a low temperature, the firmware will keep the heater on.
58
+ *
59
+ * The solution: Once the temperature reaches the target, start observing.
60
+ * If the temperature stays too far below the target (hysteresis) for too long (period),
61
+ * the firmware will halt the machine as a safety precaution.
62
+ *
63
+ * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
51 64
  */
52
-  /**
53
-   * Thermal Protection protects your printer from damage and fire if a
54
-   * thermistor falls out or temperature sensors fail in any way.
55
-   *
56
-   * The issue: If a thermistor falls out or a temperature sensor fails,
57
-   * Marlin can no longer sense the actual temperature. Since a disconnected
58
-   * thermistor reads as a low temperature, the firmware will keep the heater on.
59
-   *
60
-   * The solution: Once the temperature reaches the target, start observing.
61
-   * If the temperature stays too far below the target (hysteresis) for too long (period),
62
-   * the firmware will halt the machine as a safety precaution.
63
-   *
64
-   * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
65
-   */
66 65
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
67 66
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
68 67
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
@@ -80,11 +79,11 @@
80 79
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
81 80
 #endif
82 81
 
83
-  /**
84
-   * Thermal Protection parameters for the bed
85
-   * are like the above for the hotends.
86
-   * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
87
-   */
82
+/**
83
+ * Thermal Protection parameters for the bed
84
+ * are like the above for the hotends.
85
+ * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
86
+ */
88 87
 #if ENABLED(THERMAL_PROTECTION_BED)
89 88
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
90 89
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

+ 3
- 2
Marlin/example_configurations/K8200/Configuration.h Ver fichero

@@ -236,6 +236,7 @@
236 236
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
237 237
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
238 238
 #if ENABLED(PIDTEMP)
239
+  //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
239 240
   //#define PID_DEBUG // Sends debug data to the serial port.
240 241
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
241 242
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
@@ -290,10 +291,10 @@
290 291
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
291 292
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
292 293
 
293
-//#define PID_BED_DEBUG // Sends debug data to the serial port.
294
-
295 294
 #if ENABLED(PIDTEMPBED)
296 295
 
296
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
297
+
297 298
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
298 299
 
299 300
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)

+ 22
- 23
Marlin/example_configurations/K8200/Configuration_adv.h Ver fichero

@@ -47,28 +47,27 @@
47 47
 //=============================Thermal Settings  ============================
48 48
 //===========================================================================
49 49
 
50
-#if ENABLED(BED_LIMIT_SWITCHING)
51
-  #define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
50
+#if DISABLED(PIDTEMPBED)
51
+  #define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
52
+  #if ENABLED(BED_LIMIT_SWITCHING)
53
+    #define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
54
+  #endif
52 55
 #endif
53
-#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
54 56
 
55 57
 /**
56
- * Thermal Protection parameters
58
+ * Thermal Protection protects your printer from damage and fire if a
59
+ * thermistor falls out or temperature sensors fail in any way.
60
+ *
61
+ * The issue: If a thermistor falls out or a temperature sensor fails,
62
+ * Marlin can no longer sense the actual temperature. Since a disconnected
63
+ * thermistor reads as a low temperature, the firmware will keep the heater on.
64
+ *
65
+ * The solution: Once the temperature reaches the target, start observing.
66
+ * If the temperature stays too far below the target (hysteresis) for too long (period),
67
+ * the firmware will halt the machine as a safety precaution.
68
+ *
69
+ * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
57 70
  */
58
-  /**
59
-   * Thermal Protection protects your printer from damage and fire if a
60
-   * thermistor falls out or temperature sensors fail in any way.
61
-   *
62
-   * The issue: If a thermistor falls out or a temperature sensor fails,
63
-   * Marlin can no longer sense the actual temperature. Since a disconnected
64
-   * thermistor reads as a low temperature, the firmware will keep the heater on.
65
-   *
66
-   * The solution: Once the temperature reaches the target, start observing.
67
-   * If the temperature stays too far below the target (hysteresis) for too long (period),
68
-   * the firmware will halt the machine as a safety precaution.
69
-   *
70
-   * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
71
-   */
72 71
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
73 72
   #define THERMAL_PROTECTION_PERIOD 60        // Seconds
74 73
   #define THERMAL_PROTECTION_HYSTERESIS 8     // Degrees Celsius
@@ -86,11 +85,11 @@
86 85
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
87 86
 #endif
88 87
 
89
-  /**
90
-   * Thermal Protection parameters for the bed
91
-   * are like the above for the hotends.
92
-   * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
93
-   */
88
+/**
89
+ * Thermal Protection parameters for the bed
90
+ * are like the above for the hotends.
91
+ * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
92
+ */
94 93
 #if ENABLED(THERMAL_PROTECTION_BED)
95 94
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
96 95
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

+ 3
- 2
Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h Ver fichero

@@ -229,6 +229,7 @@
229 229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
230 230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
231 231
 #if ENABLED(PIDTEMP)
232
+  //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
232 233
   //#define PID_DEBUG // Sends debug data to the serial port.
233 234
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234 235
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
@@ -279,10 +280,10 @@
279 280
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
280 281
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
281 282
 
282
-//#define PID_BED_DEBUG // Sends debug data to the serial port.
283
-
284 283
 #if ENABLED(PIDTEMPBED)
285 284
 
285
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
286
+
286 287
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
287 288
 
288 289
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)

+ 3
- 2
Marlin/example_configurations/RigidBot/Configuration.h Ver fichero

@@ -229,6 +229,7 @@
229 229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
230 230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
231 231
 #if ENABLED(PIDTEMP)
232
+  //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
232 233
   //#define PID_DEBUG // Sends debug data to the serial port.
233 234
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234 235
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
@@ -280,10 +281,10 @@
280 281
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
281 282
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
282 283
 
283
-//#define PID_BED_DEBUG // Sends debug data to the serial port.
284
-
285 284
 #if ENABLED(PIDTEMPBED)
286 285
 
286
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
287
+
287 288
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
288 289
 
289 290
   //RigidBot, from pid autotune

+ 22
- 23
Marlin/example_configurations/RigidBot/Configuration_adv.h Ver fichero

@@ -41,28 +41,27 @@
41 41
 //=============================Thermal Settings  ============================
42 42
 //===========================================================================
43 43
 
44
-#if ENABLED(BED_LIMIT_SWITCHING)
45
-  #define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
44
+#if DISABLED(PIDTEMPBED)
45
+  #define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
46
+  #if ENABLED(BED_LIMIT_SWITCHING)
47
+    #define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
48
+  #endif
46 49
 #endif
47
-#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
48 50
 
49 51
 /**
50
- * Thermal Protection parameters
52
+ * Thermal Protection protects your printer from damage and fire if a
53
+ * thermistor falls out or temperature sensors fail in any way.
54
+ *
55
+ * The issue: If a thermistor falls out or a temperature sensor fails,
56
+ * Marlin can no longer sense the actual temperature. Since a disconnected
57
+ * thermistor reads as a low temperature, the firmware will keep the heater on.
58
+ *
59
+ * The solution: Once the temperature reaches the target, start observing.
60
+ * If the temperature stays too far below the target (hysteresis) for too long (period),
61
+ * the firmware will halt the machine as a safety precaution.
62
+ *
63
+ * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
51 64
  */
52
-  /**
53
-   * Thermal Protection protects your printer from damage and fire if a
54
-   * thermistor falls out or temperature sensors fail in any way.
55
-   *
56
-   * The issue: If a thermistor falls out or a temperature sensor fails,
57
-   * Marlin can no longer sense the actual temperature. Since a disconnected
58
-   * thermistor reads as a low temperature, the firmware will keep the heater on.
59
-   *
60
-   * The solution: Once the temperature reaches the target, start observing.
61
-   * If the temperature stays too far below the target (hysteresis) for too long (period),
62
-   * the firmware will halt the machine as a safety precaution.
63
-   *
64
-   * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
65
-   */
66 65
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
67 66
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
68 67
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
@@ -80,11 +79,11 @@
80 79
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
81 80
 #endif
82 81
 
83
-  /**
84
-   * Thermal Protection parameters for the bed
85
-   * are like the above for the hotends.
86
-   * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
87
-   */
82
+/**
83
+ * Thermal Protection parameters for the bed
84
+ * are like the above for the hotends.
85
+ * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
86
+ */
88 87
 #if ENABLED(THERMAL_PROTECTION_BED)
89 88
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
90 89
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

+ 4
- 3
Marlin/example_configurations/SCARA/Configuration.h Ver fichero

@@ -254,6 +254,7 @@
254 254
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
255 255
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
256 256
 #if ENABLED(PIDTEMP)
257
+  //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
257 258
   //#define PID_DEBUG // Sends debug data to the serial port.
258 259
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
259 260
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
@@ -285,7 +286,7 @@
285 286
 // If this is enabled, find your own PID constants below.
286 287
 #define PIDTEMPBED
287 288
 
288
-#define BED_LIMIT_SWITCHING
289
+//#define BED_LIMIT_SWITCHING
289 290
 
290 291
 // This sets the max power delivered to the bed, and replaces the HEATER_BED_DUTY_CYCLE_DIVIDER option.
291 292
 // all forms of bed control obey this (PID, bang-bang, bang-bang with hysteresis)
@@ -293,10 +294,10 @@
293 294
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
294 295
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
295 296
 
296
-//#define PID_BED_DEBUG // Sends debug data to the serial port.
297
-
298 297
 #if ENABLED(PIDTEMPBED)
299 298
 
299
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
300
+
300 301
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
301 302
 
302 303
   //12v Heatbed Mk3 12V in parallel

+ 22
- 23
Marlin/example_configurations/SCARA/Configuration_adv.h Ver fichero

@@ -41,28 +41,27 @@
41 41
 //=============================Thermal Settings  ============================
42 42
 //===========================================================================
43 43
 
44
-#if ENABLED(BED_LIMIT_SWITCHING)
45
-  #define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
44
+#if DISABLED(PIDTEMPBED)
45
+  #define BED_CHECK_INTERVAL 3000 // ms between checks in bang-bang control
46
+  #if ENABLED(BED_LIMIT_SWITCHING)
47
+    #define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
48
+  #endif
46 49
 #endif
47
-#define BED_CHECK_INTERVAL 3000 //ms between checks in bang-bang control
48 50
 
49 51
 /**
50
- * Thermal Protection parameters
52
+ * Thermal Protection protects your printer from damage and fire if a
53
+ * thermistor falls out or temperature sensors fail in any way.
54
+ *
55
+ * The issue: If a thermistor falls out or a temperature sensor fails,
56
+ * Marlin can no longer sense the actual temperature. Since a disconnected
57
+ * thermistor reads as a low temperature, the firmware will keep the heater on.
58
+ *
59
+ * The solution: Once the temperature reaches the target, start observing.
60
+ * If the temperature stays too far below the target (hysteresis) for too long (period),
61
+ * the firmware will halt the machine as a safety precaution.
62
+ *
63
+ * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
51 64
  */
52
-  /**
53
-   * Thermal Protection protects your printer from damage and fire if a
54
-   * thermistor falls out or temperature sensors fail in any way.
55
-   *
56
-   * The issue: If a thermistor falls out or a temperature sensor fails,
57
-   * Marlin can no longer sense the actual temperature. Since a disconnected
58
-   * thermistor reads as a low temperature, the firmware will keep the heater on.
59
-   *
60
-   * The solution: Once the temperature reaches the target, start observing.
61
-   * If the temperature stays too far below the target (hysteresis) for too long (period),
62
-   * the firmware will halt the machine as a safety precaution.
63
-   *
64
-   * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
65
-   */
66 65
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
67 66
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
68 67
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
@@ -80,11 +79,11 @@
80 79
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
81 80
 #endif
82 81
 
83
-  /**
84
-   * Thermal Protection parameters for the bed
85
-   * are like the above for the hotends.
86
-   * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
87
-   */
82
+/**
83
+ * Thermal Protection parameters for the bed
84
+ * are like the above for the hotends.
85
+ * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
86
+ */
88 87
 #if ENABLED(THERMAL_PROTECTION_BED)
89 88
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
90 89
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

+ 3
- 2
Marlin/example_configurations/TAZ4/Configuration.h Ver fichero

@@ -229,6 +229,7 @@
229 229
 #define BANG_MAX 70 // limits current to nozzle while in bang-bang mode; 255=full current
230 230
 #define PID_MAX 74 // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
231 231
 #if ENABLED(PIDTEMP)
232
+  //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
232 233
   //#define PID_DEBUG // Sends debug data to the serial port.
233 234
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234 235
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
@@ -289,10 +290,10 @@
289 290
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
290 291
 #define MAX_BED_POWER 206 // limits duty cycle to bed; 255=full current
291 292
 
292
-//#define PID_BED_DEBUG // Sends debug data to the serial port.
293
-
294 293
 #if ENABLED(PIDTEMPBED)
295 294
 
295
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
296
+
296 297
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
297 298
 
298 299
   //24V 360W silicone heater from NPH on 3mm borosilicate (TAZ 2.2+)

+ 22
- 23
Marlin/example_configurations/TAZ4/Configuration_adv.h Ver fichero

@@ -41,28 +41,27 @@
41 41
 //=============================Thermal Settings  ============================
42 42
 //===========================================================================
43 43
 
44
-#if ENABLED(BED_LIMIT_SWITCHING)
45
-  #define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
44
+#if DISABLED(PIDTEMPBED)
45
+  #define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
46
+  #if ENABLED(BED_LIMIT_SWITCHING)
47
+    #define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
48
+  #endif
46 49
 #endif
47
-#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
48 50
 
49 51
 /**
50
- * Thermal Protection parameters
52
+ * Thermal Protection protects your printer from damage and fire if a
53
+ * thermistor falls out or temperature sensors fail in any way.
54
+ *
55
+ * The issue: If a thermistor falls out or a temperature sensor fails,
56
+ * Marlin can no longer sense the actual temperature. Since a disconnected
57
+ * thermistor reads as a low temperature, the firmware will keep the heater on.
58
+ *
59
+ * The solution: Once the temperature reaches the target, start observing.
60
+ * If the temperature stays too far below the target (hysteresis) for too long (period),
61
+ * the firmware will halt the machine as a safety precaution.
62
+ *
63
+ * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
51 64
  */
52
-  /**
53
-   * Thermal Protection protects your printer from damage and fire if a
54
-   * thermistor falls out or temperature sensors fail in any way.
55
-   *
56
-   * The issue: If a thermistor falls out or a temperature sensor fails,
57
-   * Marlin can no longer sense the actual temperature. Since a disconnected
58
-   * thermistor reads as a low temperature, the firmware will keep the heater on.
59
-   *
60
-   * The solution: Once the temperature reaches the target, start observing.
61
-   * If the temperature stays too far below the target (hysteresis) for too long (period),
62
-   * the firmware will halt the machine as a safety precaution.
63
-   *
64
-   * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
65
-   */
66 65
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
67 66
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
68 67
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
@@ -80,11 +79,11 @@
80 79
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
81 80
 #endif
82 81
 
83
-  /**
84
-   * Thermal Protection parameters for the bed
85
-   * are like the above for the hotends.
86
-   * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
87
-   */
82
+/**
83
+ * Thermal Protection parameters for the bed
84
+ * are like the above for the hotends.
85
+ * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
86
+ */
88 87
 #if ENABLED(THERMAL_PROTECTION_BED)
89 88
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
90 89
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

+ 3
- 2
Marlin/example_configurations/WITBOX/Configuration.h Ver fichero

@@ -232,6 +232,7 @@
232 232
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
233 233
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
234 234
 #if ENABLED(PIDTEMP)
235
+  //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
235 236
   //#define PID_DEBUG // Sends debug data to the serial port.
236 237
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
237 238
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
@@ -271,10 +272,10 @@
271 272
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
272 273
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
273 274
 
274
-//#define PID_BED_DEBUG // Sends debug data to the serial port.
275
-
276 275
 #if ENABLED(PIDTEMPBED)
277 276
 
277
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
278
+
278 279
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
279 280
 
280 281
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)

+ 22
- 23
Marlin/example_configurations/WITBOX/Configuration_adv.h Ver fichero

@@ -41,28 +41,27 @@
41 41
 //=============================Thermal Settings  ============================
42 42
 //===========================================================================
43 43
 
44
-#if ENABLED(BED_LIMIT_SWITCHING)
45
-  #define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
44
+#if DISABLED(PIDTEMPBED)
45
+  #define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
46
+  #if ENABLED(BED_LIMIT_SWITCHING)
47
+    #define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
48
+  #endif
46 49
 #endif
47
-#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
48 50
 
49 51
 /**
50
- * Thermal Protection parameters
52
+ * Thermal Protection protects your printer from damage and fire if a
53
+ * thermistor falls out or temperature sensors fail in any way.
54
+ *
55
+ * The issue: If a thermistor falls out or a temperature sensor fails,
56
+ * Marlin can no longer sense the actual temperature. Since a disconnected
57
+ * thermistor reads as a low temperature, the firmware will keep the heater on.
58
+ *
59
+ * The solution: Once the temperature reaches the target, start observing.
60
+ * If the temperature stays too far below the target (hysteresis) for too long (period),
61
+ * the firmware will halt the machine as a safety precaution.
62
+ *
63
+ * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
51 64
  */
52
-  /**
53
-   * Thermal Protection protects your printer from damage and fire if a
54
-   * thermistor falls out or temperature sensors fail in any way.
55
-   *
56
-   * The issue: If a thermistor falls out or a temperature sensor fails,
57
-   * Marlin can no longer sense the actual temperature. Since a disconnected
58
-   * thermistor reads as a low temperature, the firmware will keep the heater on.
59
-   *
60
-   * The solution: Once the temperature reaches the target, start observing.
61
-   * If the temperature stays too far below the target (hysteresis) for too long (period),
62
-   * the firmware will halt the machine as a safety precaution.
63
-   *
64
-   * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
65
-   */
66 65
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
67 66
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
68 67
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
@@ -80,11 +79,11 @@
80 79
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
81 80
 #endif
82 81
 
83
-  /**
84
-   * Thermal Protection parameters for the bed
85
-   * are like the above for the hotends.
86
-   * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
87
-   */
82
+/**
83
+ * Thermal Protection parameters for the bed
84
+ * are like the above for the hotends.
85
+ * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
86
+ */
88 87
 #if ENABLED(THERMAL_PROTECTION_BED)
89 88
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
90 89
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

+ 3
- 2
Marlin/example_configurations/adafruit/ST7565/Configuration.h Ver fichero

@@ -229,6 +229,7 @@
229 229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
230 230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
231 231
 #if ENABLED(PIDTEMP)
232
+  //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
232 233
   //#define PID_DEBUG // Sends debug data to the serial port.
233 234
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234 235
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
@@ -279,10 +280,10 @@
279 280
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
280 281
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
281 282
 
282
-//#define PID_BED_DEBUG // Sends debug data to the serial port.
283
-
284 283
 #if ENABLED(PIDTEMPBED)
285 284
 
285
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
286
+
286 287
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
287 288
 
288 289
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)

+ 3
- 2
Marlin/example_configurations/delta/biv2.5/Configuration.h Ver fichero

@@ -229,6 +229,7 @@
229 229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
230 230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
231 231
 #if ENABLED(PIDTEMP)
232
+  //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
232 233
   //#define PID_DEBUG // Sends debug data to the serial port.
233 234
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234 235
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
@@ -279,10 +280,10 @@
279 280
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
280 281
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
281 282
 
282
-//#define PID_BED_DEBUG // Sends debug data to the serial port.
283
-
284 283
 #if ENABLED(PIDTEMPBED)
285 284
 
285
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
286
+
286 287
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
287 288
 
288 289
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)

+ 22
- 23
Marlin/example_configurations/delta/biv2.5/Configuration_adv.h Ver fichero

@@ -41,28 +41,27 @@
41 41
 //=============================Thermal Settings  ============================
42 42
 //===========================================================================
43 43
 
44
-#if ENABLED(BED_LIMIT_SWITCHING)
45
-  #define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
44
+#if DISABLED(PIDTEMPBED)
45
+  #define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
46
+  #if ENABLED(BED_LIMIT_SWITCHING)
47
+    #define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
48
+  #endif
46 49
 #endif
47
-#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
48 50
 
49 51
 /**
50
- * Thermal Protection parameters
52
+ * Thermal Protection protects your printer from damage and fire if a
53
+ * thermistor falls out or temperature sensors fail in any way.
54
+ *
55
+ * The issue: If a thermistor falls out or a temperature sensor fails,
56
+ * Marlin can no longer sense the actual temperature. Since a disconnected
57
+ * thermistor reads as a low temperature, the firmware will keep the heater on.
58
+ *
59
+ * The solution: Once the temperature reaches the target, start observing.
60
+ * If the temperature stays too far below the target (hysteresis) for too long (period),
61
+ * the firmware will halt the machine as a safety precaution.
62
+ *
63
+ * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
51 64
  */
52
-  /**
53
-   * Thermal Protection protects your printer from damage and fire if a
54
-   * thermistor falls out or temperature sensors fail in any way.
55
-   *
56
-   * The issue: If a thermistor falls out or a temperature sensor fails,
57
-   * Marlin can no longer sense the actual temperature. Since a disconnected
58
-   * thermistor reads as a low temperature, the firmware will keep the heater on.
59
-   *
60
-   * The solution: Once the temperature reaches the target, start observing.
61
-   * If the temperature stays too far below the target (hysteresis) for too long (period),
62
-   * the firmware will halt the machine as a safety precaution.
63
-   *
64
-   * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
65
-   */
66 65
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
67 66
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
68 67
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
@@ -80,11 +79,11 @@
80 79
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
81 80
 #endif
82 81
 
83
-  /**
84
-   * Thermal Protection parameters for the bed
85
-   * are like the above for the hotends.
86
-   * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
87
-   */
82
+/**
83
+ * Thermal Protection parameters for the bed
84
+ * are like the above for the hotends.
85
+ * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
86
+ */
88 87
 #if ENABLED(THERMAL_PROTECTION_BED)
89 88
   #define THERMAL_PROTECTION_BED_PERIOD 120   // Seconds
90 89
   #define THERMAL_PROTECTION_BED_HYSTERESIS 4 // Degrees Celsius

+ 3
- 2
Marlin/example_configurations/delta/generic/Configuration.h Ver fichero

@@ -229,6 +229,7 @@
229 229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
230 230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
231 231
 #if ENABLED(PIDTEMP)
232
+  //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
232 233
   //#define PID_DEBUG // Sends debug data to the serial port.
233 234
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234 235
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
@@ -279,10 +280,10 @@
279 280
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
280 281
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
281 282
 
282
-//#define PID_BED_DEBUG // Sends debug data to the serial port.
283
-
284 283
 #if ENABLED(PIDTEMPBED)
285 284
 
285
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
286
+
286 287
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
287 288
 
288 289
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)

+ 22
- 23
Marlin/example_configurations/delta/generic/Configuration_adv.h Ver fichero

@@ -41,28 +41,27 @@
41 41
 //=============================Thermal Settings  ============================
42 42
 //===========================================================================
43 43
 
44
-#if ENABLED(BED_LIMIT_SWITCHING)
45
-  #define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
44
+#if DISABLED(PIDTEMPBED)
45
+  #define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
46
+  #if ENABLED(BED_LIMIT_SWITCHING)
47
+    #define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
48
+  #endif
46 49
 #endif
47
-#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
48 50
 
49 51
 /**
50
- * Thermal Protection parameters
52
+ * Thermal Protection protects your printer from damage and fire if a
53
+ * thermistor falls out or temperature sensors fail in any way.
54
+ *
55
+ * The issue: If a thermistor falls out or a temperature sensor fails,
56
+ * Marlin can no longer sense the actual temperature. Since a disconnected
57
+ * thermistor reads as a low temperature, the firmware will keep the heater on.
58
+ *
59
+ * The solution: Once the temperature reaches the target, start observing.
60
+ * If the temperature stays too far below the target (hysteresis) for too long (period),
61
+ * the firmware will halt the machine as a safety precaution.
62
+ *
63
+ * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
51 64
  */
52
-  /**
53
-   * Thermal Protection protects your printer from damage and fire if a
54
-   * thermistor falls out or temperature sensors fail in any way.
55
-   *
56
-   * The issue: If a thermistor falls out or a temperature sensor fails,
57
-   * Marlin can no longer sense the actual temperature. Since a disconnected
58
-   * thermistor reads as a low temperature, the firmware will keep the heater on.
59
-   *
60
-   * The solution: Once the temperature reaches the target, start observing.
61
-   * If the temperature stays too far below the target (hysteresis) for too long (period),
62
-   * the firmware will halt the machine as a safety precaution.
63
-   *
64
-   * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
65
-   */
66 65
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
67 66
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
68 67
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
@@ -80,11 +79,11 @@
80 79
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
81 80
 #endif
82 81
 
83
-  /**
84
-   * Thermal Protection parameters for the bed
85
-   * are like the above for the hotends.
86
-   * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
87
-   */
82
+/**
83
+ * Thermal Protection parameters for the bed
84
+ * are like the above for the hotends.
85
+ * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
86
+ */
88 87
 #if ENABLED(THERMAL_PROTECTION_BED)
89 88
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
90 89
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

+ 3
- 2
Marlin/example_configurations/delta/kossel_mini/Configuration.h Ver fichero

@@ -229,6 +229,7 @@
229 229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
230 230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
231 231
 #if ENABLED(PIDTEMP)
232
+  //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
232 233
   //#define PID_DEBUG // Sends debug data to the serial port.
233 234
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234 235
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
@@ -279,10 +280,10 @@
279 280
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
280 281
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
281 282
 
282
-//#define PID_BED_DEBUG // Sends debug data to the serial port.
283
-
284 283
 #if ENABLED(PIDTEMPBED)
285 284
 
285
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
286
+
286 287
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
287 288
 
288 289
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)

+ 22
- 23
Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h Ver fichero

@@ -41,28 +41,27 @@
41 41
 //=============================Thermal Settings  ============================
42 42
 //===========================================================================
43 43
 
44
-#if ENABLED(BED_LIMIT_SWITCHING)
45
-  #define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
44
+#if DISABLED(PIDTEMPBED)
45
+  #define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
46
+  #if ENABLED(BED_LIMIT_SWITCHING)
47
+    #define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
48
+  #endif
46 49
 #endif
47
-#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
48 50
 
49 51
 /**
50
- * Thermal Protection parameters
52
+ * Thermal Protection protects your printer from damage and fire if a
53
+ * thermistor falls out or temperature sensors fail in any way.
54
+ *
55
+ * The issue: If a thermistor falls out or a temperature sensor fails,
56
+ * Marlin can no longer sense the actual temperature. Since a disconnected
57
+ * thermistor reads as a low temperature, the firmware will keep the heater on.
58
+ *
59
+ * The solution: Once the temperature reaches the target, start observing.
60
+ * If the temperature stays too far below the target (hysteresis) for too long (period),
61
+ * the firmware will halt the machine as a safety precaution.
62
+ *
63
+ * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
51 64
  */
52
-  /**
53
-   * Thermal Protection protects your printer from damage and fire if a
54
-   * thermistor falls out or temperature sensors fail in any way.
55
-   *
56
-   * The issue: If a thermistor falls out or a temperature sensor fails,
57
-   * Marlin can no longer sense the actual temperature. Since a disconnected
58
-   * thermistor reads as a low temperature, the firmware will keep the heater on.
59
-   *
60
-   * The solution: Once the temperature reaches the target, start observing.
61
-   * If the temperature stays too far below the target (hysteresis) for too long (period),
62
-   * the firmware will halt the machine as a safety precaution.
63
-   *
64
-   * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
65
-   */
66 65
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
67 66
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
68 67
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
@@ -80,11 +79,11 @@
80 79
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
81 80
 #endif
82 81
 
83
-  /**
84
-   * Thermal Protection parameters for the bed
85
-   * are like the above for the hotends.
86
-   * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
87
-   */
82
+/**
83
+ * Thermal Protection parameters for the bed
84
+ * are like the above for the hotends.
85
+ * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
86
+ */
88 87
 #if ENABLED(THERMAL_PROTECTION_BED)
89 88
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
90 89
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

+ 3
- 2
Marlin/example_configurations/delta/kossel_pro/Configuration.h Ver fichero

@@ -235,6 +235,7 @@
235 235
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
236 236
 #define PID_MAX  125 // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
237 237
 #if ENABLED(PIDTEMP)
238
+  //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
238 239
   //#define PID_DEBUG // Sends debug data to the serial port.
239 240
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
240 241
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
@@ -274,10 +275,10 @@
274 275
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
275 276
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
276 277
 
277
-//#define PID_BED_DEBUG // Sends debug data to the serial port.
278
-
279 278
 #if ENABLED(PIDTEMPBED)
280 279
 
280
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
281
+
281 282
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
282 283
 
283 284
   //Kossel Pro heated bed plate with borosilicate glass

+ 22
- 23
Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h Ver fichero

@@ -46,28 +46,27 @@
46 46
 //=============================Thermal Settings  ============================
47 47
 //===========================================================================
48 48
 
49
-#if ENABLED(BED_LIMIT_SWITCHING)
50
-  #define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
49
+#if DISABLED(PIDTEMPBED)
50
+  #define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
51
+  #if ENABLED(BED_LIMIT_SWITCHING)
52
+    #define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
53
+  #endif
51 54
 #endif
52
-#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
53 55
 
54 56
 /**
55
- * Thermal Protection parameters
57
+ * Thermal Protection protects your printer from damage and fire if a
58
+ * thermistor falls out or temperature sensors fail in any way.
59
+ *
60
+ * The issue: If a thermistor falls out or a temperature sensor fails,
61
+ * Marlin can no longer sense the actual temperature. Since a disconnected
62
+ * thermistor reads as a low temperature, the firmware will keep the heater on.
63
+ *
64
+ * The solution: Once the temperature reaches the target, start observing.
65
+ * If the temperature stays too far below the target (hysteresis) for too long (period),
66
+ * the firmware will halt the machine as a safety precaution.
67
+ *
68
+ * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
56 69
  */
57
-  /**
58
-   * Thermal Protection protects your printer from damage and fire if a
59
-   * thermistor falls out or temperature sensors fail in any way.
60
-   *
61
-   * The issue: If a thermistor falls out or a temperature sensor fails,
62
-   * Marlin can no longer sense the actual temperature. Since a disconnected
63
-   * thermistor reads as a low temperature, the firmware will keep the heater on.
64
-   *
65
-   * The solution: Once the temperature reaches the target, start observing.
66
-   * If the temperature stays too far below the target (hysteresis) for too long (period),
67
-   * the firmware will halt the machine as a safety precaution.
68
-   *
69
-   * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
70
-   */
71 70
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
72 71
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
73 72
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
@@ -85,11 +84,11 @@
85 84
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
86 85
 #endif
87 86
 
88
-  /**
89
-   * Thermal Protection parameters for the bed
90
-   * are like the above for the hotends.
91
-   * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
92
-   */
87
+/**
88
+ * Thermal Protection parameters for the bed
89
+ * are like the above for the hotends.
90
+ * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
91
+ */
93 92
 #if ENABLED(THERMAL_PROTECTION_BED)
94 93
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
95 94
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

+ 3
- 2
Marlin/example_configurations/delta/kossel_xl/Configuration.h Ver fichero

@@ -252,6 +252,7 @@
252 252
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
253 253
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
254 254
 #if ENABLED(PIDTEMP)
255
+  //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
255 256
   //#define PID_DEBUG // Sends debug data to the serial port.
256 257
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
257 258
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
@@ -307,10 +308,10 @@
307 308
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
308 309
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
309 310
 
310
-//#define PID_BED_DEBUG // Sends debug data to the serial port.
311
-
312 311
 #if ENABLED(PIDTEMPBED)
313 312
 
313
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
314
+
314 315
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
315 316
 
316 317
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)

+ 22
- 23
Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h Ver fichero

@@ -41,28 +41,27 @@
41 41
 //=============================Thermal Settings  ============================
42 42
 //===========================================================================
43 43
 
44
-#if ENABLED(BED_LIMIT_SWITCHING)
45
-  #define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
44
+#if DISABLED(PIDTEMPBED)
45
+  #define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
46
+  #if ENABLED(BED_LIMIT_SWITCHING)
47
+    #define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
48
+  #endif
46 49
 #endif
47
-#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
48 50
 
49 51
 /**
50
- * Thermal Protection parameters
52
+ * Thermal Protection protects your printer from damage and fire if a
53
+ * thermistor falls out or temperature sensors fail in any way.
54
+ *
55
+ * The issue: If a thermistor falls out or a temperature sensor fails,
56
+ * Marlin can no longer sense the actual temperature. Since a disconnected
57
+ * thermistor reads as a low temperature, the firmware will keep the heater on.
58
+ *
59
+ * The solution: Once the temperature reaches the target, start observing.
60
+ * If the temperature stays too far below the target (hysteresis) for too long (period),
61
+ * the firmware will halt the machine as a safety precaution.
62
+ *
63
+ * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
51 64
  */
52
-  /**
53
-   * Thermal Protection protects your printer from damage and fire if a
54
-   * thermistor falls out or temperature sensors fail in any way.
55
-   *
56
-   * The issue: If a thermistor falls out or a temperature sensor fails,
57
-   * Marlin can no longer sense the actual temperature. Since a disconnected
58
-   * thermistor reads as a low temperature, the firmware will keep the heater on.
59
-   *
60
-   * The solution: Once the temperature reaches the target, start observing.
61
-   * If the temperature stays too far below the target (hysteresis) for too long (period),
62
-   * the firmware will halt the machine as a safety precaution.
63
-   *
64
-   * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
65
-   */
66 65
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
67 66
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
68 67
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
@@ -80,11 +79,11 @@
80 79
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
81 80
 #endif
82 81
 
83
-  /**
84
-   * Thermal Protection parameters for the bed
85
-   * are like the above for the hotends.
86
-   * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
87
-   */
82
+/**
83
+ * Thermal Protection parameters for the bed
84
+ * are like the above for the hotends.
85
+ * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
86
+ */
88 87
 #if ENABLED(THERMAL_PROTECTION_BED)
89 88
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
90 89
   #define THERMAL_PROTECTION_BED_HYSTERESIS 4 // Degrees Celsius

+ 3
- 2
Marlin/example_configurations/makibox/Configuration.h Ver fichero

@@ -229,6 +229,7 @@
229 229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
230 230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
231 231
 #if ENABLED(PIDTEMP)
232
+  //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
232 233
   //#define PID_DEBUG // Sends debug data to the serial port.
233 234
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234 235
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
@@ -282,10 +283,10 @@
282 283
 // to increase the heat up rate. However, if changed, user must be aware of the safety concerns
283 284
 // of drawing too much current from the power supply.
284 285
 
285
-//#define PID_BED_DEBUG // Sends debug data to the serial port.
286
-
287 286
 #if ENABLED(PIDTEMPBED)
288 287
 
288
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
289
+
289 290
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
290 291
 
291 292
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)

+ 22
- 23
Marlin/example_configurations/makibox/Configuration_adv.h Ver fichero

@@ -41,28 +41,27 @@
41 41
 //=============================Thermal Settings  ============================
42 42
 //===========================================================================
43 43
 
44
-#if ENABLED(BED_LIMIT_SWITCHING)
45
-  #define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
44
+#if DISABLED(PIDTEMPBED)
45
+  #define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
46
+  #if ENABLED(BED_LIMIT_SWITCHING)
47
+    #define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
48
+  #endif
46 49
 #endif
47
-#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
48 50
 
49 51
 /**
50
- * Thermal Protection parameters
52
+ * Thermal Protection protects your printer from damage and fire if a
53
+ * thermistor falls out or temperature sensors fail in any way.
54
+ *
55
+ * The issue: If a thermistor falls out or a temperature sensor fails,
56
+ * Marlin can no longer sense the actual temperature. Since a disconnected
57
+ * thermistor reads as a low temperature, the firmware will keep the heater on.
58
+ *
59
+ * The solution: Once the temperature reaches the target, start observing.
60
+ * If the temperature stays too far below the target (hysteresis) for too long (period),
61
+ * the firmware will halt the machine as a safety precaution.
62
+ *
63
+ * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
51 64
  */
52
-  /**
53
-   * Thermal Protection protects your printer from damage and fire if a
54
-   * thermistor falls out or temperature sensors fail in any way.
55
-   *
56
-   * The issue: If a thermistor falls out or a temperature sensor fails,
57
-   * Marlin can no longer sense the actual temperature. Since a disconnected
58
-   * thermistor reads as a low temperature, the firmware will keep the heater on.
59
-   *
60
-   * The solution: Once the temperature reaches the target, start observing.
61
-   * If the temperature stays too far below the target (hysteresis) for too long (period),
62
-   * the firmware will halt the machine as a safety precaution.
63
-   *
64
-   * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
65
-   */
66 65
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
67 66
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
68 67
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
@@ -80,11 +79,11 @@
80 79
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
81 80
 #endif
82 81
 
83
-  /**
84
-   * Thermal Protection parameters for the bed
85
-   * are like the above for the hotends.
86
-   * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
87
-   */
82
+/**
83
+ * Thermal Protection parameters for the bed
84
+ * are like the above for the hotends.
85
+ * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
86
+ */
88 87
 #if ENABLED(THERMAL_PROTECTION_BED)
89 88
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
90 89
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

+ 3
- 2
Marlin/example_configurations/tvrrug/Round2/Configuration.h Ver fichero

@@ -229,6 +229,7 @@
229 229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
230 230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
231 231
 #if ENABLED(PIDTEMP)
232
+  //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
232 233
   //#define PID_DEBUG // Sends debug data to the serial port.
233 234
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234 235
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
@@ -269,10 +270,10 @@
269 270
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
270 271
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
271 272
 
272
-//#define PID_BED_DEBUG // Sends debug data to the serial port.
273
-
274 273
 #if ENABLED(PIDTEMPBED)
275 274
 
275
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
276
+
276 277
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
277 278
 
278 279
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)

+ 22
- 23
Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h Ver fichero

@@ -41,28 +41,27 @@
41 41
 //=============================Thermal Settings  ============================
42 42
 //===========================================================================
43 43
 
44
-#if ENABLED(BED_LIMIT_SWITCHING)
45
-  #define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
44
+#if DISABLED(PIDTEMPBED)
45
+  #define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
46
+  #if ENABLED(BED_LIMIT_SWITCHING)
47
+    #define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
48
+  #endif
46 49
 #endif
47
-#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
48 50
 
49 51
 /**
50
- * Thermal Protection parameters
52
+ * Thermal Protection protects your printer from damage and fire if a
53
+ * thermistor falls out or temperature sensors fail in any way.
54
+ *
55
+ * The issue: If a thermistor falls out or a temperature sensor fails,
56
+ * Marlin can no longer sense the actual temperature. Since a disconnected
57
+ * thermistor reads as a low temperature, the firmware will keep the heater on.
58
+ *
59
+ * The solution: Once the temperature reaches the target, start observing.
60
+ * If the temperature stays too far below the target (hysteresis) for too long (period),
61
+ * the firmware will halt the machine as a safety precaution.
62
+ *
63
+ * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
51 64
  */
52
-  /**
53
-   * Thermal Protection protects your printer from damage and fire if a
54
-   * thermistor falls out or temperature sensors fail in any way.
55
-   *
56
-   * The issue: If a thermistor falls out or a temperature sensor fails,
57
-   * Marlin can no longer sense the actual temperature. Since a disconnected
58
-   * thermistor reads as a low temperature, the firmware will keep the heater on.
59
-   *
60
-   * The solution: Once the temperature reaches the target, start observing.
61
-   * If the temperature stays too far below the target (hysteresis) for too long (period),
62
-   * the firmware will halt the machine as a safety precaution.
63
-   *
64
-   * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
65
-   */
66 65
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
67 66
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
68 67
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
@@ -80,11 +79,11 @@
80 79
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
81 80
 #endif
82 81
 
83
-  /**
84
-   * Thermal Protection parameters for the bed
85
-   * are like the above for the hotends.
86
-   * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
87
-   */
82
+/**
83
+ * Thermal Protection parameters for the bed
84
+ * are like the above for the hotends.
85
+ * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
86
+ */
88 87
 #if ENABLED(THERMAL_PROTECTION_BED)
89 88
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
90 89
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

+ 2
- 2
Marlin/temperature.cpp Ver fichero

@@ -631,7 +631,7 @@ float get_pid_output(int e) {
631 631
 
632 632
     return pid_output;
633 633
   }
634
-#endif
634
+#endif //PIDTEMPBED
635 635
 
636 636
 /**
637 637
  * Manage heating activities for extruder hot-ends and a heated bed
@@ -745,7 +745,7 @@ void manage_heater() {
745 745
         soft_pwm_bed = 0;
746 746
         WRITE_HEATER_BED(LOW);
747 747
       }
748
-    #else // BED_LIMIT_SWITCHING
748
+    #else // !PIDTEMPBED && !BED_LIMIT_SWITCHING
749 749
       // Check if temperature is within the correct range
750 750
       if (current_temperature_bed > BED_MINTEMP && current_temperature_bed < BED_MAXTEMP) {
751 751
         soft_pwm_bed = current_temperature_bed < target_temperature_bed ? MAX_BED_POWER >> 1 : 0;

+ 19
- 8
Marlin/ultralcd.cpp Ver fichero

@@ -1094,7 +1094,7 @@ static void lcd_control_menu() {
1094 1094
  *
1095 1095
  */
1096 1096
 
1097
-#if ENABLED(PIDTEMP) || ENABLED(PIDTEMPBED)
1097
+#if ENABLED(PID_AUTOTUNE_MENU)
1098 1098
 
1099 1099
   #if ENABLED(PIDTEMP)
1100 1100
     int autotune_temp[EXTRUDERS] = { 150 };
@@ -1119,7 +1119,7 @@ static void lcd_control_menu() {
1119 1119
     enqueue_and_echo_command_now(cmd);
1120 1120
   }
1121 1121
 
1122
-#endif //PIDTEMP || PIDTEMPBED
1122
+#endif //PID_AUTOTUNE_MENU
1123 1123
 
1124 1124
 #if ENABLED(PIDTEMP)
1125 1125
 
@@ -1133,10 +1133,17 @@ static void lcd_control_menu() {
1133 1133
     PID_PARAM(Kd, e) = scalePID_d(raw_Kd);
1134 1134
     updatePID();
1135 1135
   }
1136
-  #define _PIDTEMP_FUNCTIONS(eindex) \
1136
+  #define _PIDTEMP_BASE_FUNCTIONS(eindex) \
1137 1137
     void copy_and_scalePID_i_E ## eindex() { copy_and_scalePID_i(eindex); } \
1138
-    void copy_and_scalePID_d_E ## eindex() { copy_and_scalePID_d(eindex); } \
1139
-    void lcd_autotune_callback_E ## eindex() { _lcd_autotune(eindex); }
1138
+    void copy_and_scalePID_d_E ## eindex() { copy_and_scalePID_d(eindex); }
1139
+
1140
+  #if ENABLED(PID_AUTOTUNE_MENU)
1141
+    #define _PIDTEMP_FUNCTIONS(eindex) \
1142
+      _PIDTEMP_BASE_FUNCTIONS(eindex); \
1143
+      void lcd_autotune_callback_E ## eindex() { _lcd_autotune(eindex); }
1144
+  #else
1145
+    #define _PIDTEMP_FUNCTIONS(eindex) _PIDTEMP_BASE_FUNCTIONS(eindex);
1146
+  #endif
1140 1147
 
1141 1148
   _PIDTEMP_FUNCTIONS(0);
1142 1149
   #if ENABLED(PID_PARAMS_PER_EXTRUDER)
@@ -1254,9 +1261,13 @@ static void lcd_control_temperature_menu() {
1254 1261
       #define _PID_MENU_ITEMS(ELABEL, eindex) _PID_BASE_MENU_ITEMS(ELABEL, eindex)
1255 1262
     #endif
1256 1263
 
1257
-    #define PID_MENU_ITEMS(ELABEL, eindex) \
1258
-      _PID_MENU_ITEMS(ELABEL, eindex); \
1259
-      MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_PID_AUTOTUNE ELABEL, &autotune_temp[eindex], 150, heater_maxtemp[eindex] - 15, lcd_autotune_callback_E ## eindex)
1264
+    #if ENABLED(PID_AUTOTUNE_MENU)
1265
+      #define PID_MENU_ITEMS(ELABEL, eindex) \
1266
+        _PID_MENU_ITEMS(ELABEL, eindex); \
1267
+        MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_PID_AUTOTUNE ELABEL, &autotune_temp[eindex], 150, heater_maxtemp[eindex] - 15, lcd_autotune_callback_E ## eindex)
1268
+    #else
1269
+      #define PID_MENU_ITEMS(ELABEL, eindex) _PID_MENU_ITEMS(ELABEL, eindex)
1270
+    #endif
1260 1271
 
1261 1272
     #if ENABLED(PID_PARAMS_PER_EXTRUDER) && EXTRUDERS > 1
1262 1273
       PID_MENU_ITEMS(MSG_E1, 0);

Loading…
Cancelar
Guardar