Browse Source

Merge pull request #3253 from thinkyhead/rc_autotune_menu_optional

Make the Autotune option(s) in the LCD menu optional
Scott Lahteine 8 years ago
parent
commit
1d987cd280
39 changed files with 436 additions and 420 deletions
  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 View File

229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
231
 #if ENABLED(PIDTEMP)
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
   //#define PID_DEBUG // Sends debug data to the serial port.
233
   //#define PID_DEBUG // Sends debug data to the serial port.
233
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234
   //#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
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
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
280
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
280
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
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
 #if ENABLED(PIDTEMPBED)
283
 #if ENABLED(PIDTEMPBED)
285
 
284
 
285
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
286
+
286
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
287
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
287
 
288
 
288
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
289
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)

+ 22
- 23
Marlin/Configuration_adv.h View File

41
 //=============================Thermal Settings  ============================
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
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
65
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
67
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
66
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
68
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
67
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
80
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
79
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
81
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_BED)
87
 #if ENABLED(THERMAL_PROTECTION_BED)
89
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
88
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
90
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
89
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

+ 0
- 4
Marlin/Marlin.h View File

19
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
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
 #ifndef MARLIN_H
22
 #ifndef MARLIN_H
27
 #define MARLIN_H
23
 #define MARLIN_H
28
 
24
 

+ 7
- 1
Marlin/SanityCheck.h View File

132
 #endif
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
 #if ENABLED(MESH_BED_LEVELING)
144
 #if ENABLED(MESH_BED_LEVELING)
139
   #if ENABLED(DELTA)
145
   #if ENABLED(DELTA)
140
     #error MESH_BED_LEVELING does not yet support DELTA printers.
146
     #error MESH_BED_LEVELING does not yet support DELTA printers.

+ 3
- 2
Marlin/example_configurations/Felix/Configuration.h View File

229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
231
 #if ENABLED(PIDTEMP)
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
   //#define PID_DEBUG // Sends debug data to the serial port.
233
   //#define PID_DEBUG // Sends debug data to the serial port.
233
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234
   //#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
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
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
269
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
269
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
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
 #if ENABLED(PIDTEMPBED)
272
 #if ENABLED(PIDTEMPBED)
274
 
273
 
274
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
275
+
275
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
276
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
276
 
277
 
277
   // Felix Foil Heater
278
   // Felix Foil Heater

+ 1
- 0
Marlin/example_configurations/Felix/Configuration_DUAL.h View File

229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
231
 #if ENABLED(PIDTEMP)
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
   //#define PID_DEBUG // Sends debug data to the serial port.
233
   //#define PID_DEBUG // Sends debug data to the serial port.
233
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234
   //#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
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 View File

41
 //=============================Thermal Settings  ============================
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
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
65
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
67
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
66
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
68
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
67
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
80
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
79
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
81
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_BED)
87
 #if ENABLED(THERMAL_PROTECTION_BED)
89
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
88
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
90
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
89
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

+ 3
- 2
Marlin/example_configurations/Hephestos/Configuration.h View File

232
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
232
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
233
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
233
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
234
 #if ENABLED(PIDTEMP)
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
   //#define PID_DEBUG // Sends debug data to the serial port.
236
   //#define PID_DEBUG // Sends debug data to the serial port.
236
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
237
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
237
   //#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
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
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
272
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
272
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
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
 #if ENABLED(PIDTEMPBED)
275
 #if ENABLED(PIDTEMPBED)
277
 
276
 
277
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
278
+
278
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
279
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
279
 
280
 
280
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
281
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)

+ 22
- 23
Marlin/example_configurations/Hephestos/Configuration_adv.h View File

41
 //=============================Thermal Settings  ============================
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
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
65
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
67
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
66
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
68
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
67
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
80
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
79
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
81
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_BED)
87
 #if ENABLED(THERMAL_PROTECTION_BED)
89
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
88
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
90
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
89
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

+ 3
- 2
Marlin/example_configurations/Hephestos_2/Configuration.h View File

229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
231
 #if ENABLED(PIDTEMP)
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
   //#define PID_DEBUG // Sends debug data to the serial port.
233
   //#define PID_DEBUG // Sends debug data to the serial port.
233
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234
   //#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
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
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
274
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
274
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
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
 #if ENABLED(PIDTEMPBED)
277
 #if ENABLED(PIDTEMPBED)
279
 
278
 
279
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
280
+
280
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
281
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
281
 
282
 
282
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
283
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)

+ 22
- 23
Marlin/example_configurations/Hephestos_2/Configuration_adv.h View File

41
 //=============================Thermal Settings  ============================
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
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
65
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
67
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
66
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
68
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
67
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
80
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
79
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
81
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_BED)
87
 #if ENABLED(THERMAL_PROTECTION_BED)
89
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
88
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
90
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
89
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

+ 3
- 2
Marlin/example_configurations/K8200/Configuration.h View File

236
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
236
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
237
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
237
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
238
 #if ENABLED(PIDTEMP)
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
   //#define PID_DEBUG // Sends debug data to the serial port.
240
   //#define PID_DEBUG // Sends debug data to the serial port.
240
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
241
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
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
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
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
291
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
291
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
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
 #if ENABLED(PIDTEMPBED)
294
 #if ENABLED(PIDTEMPBED)
296
 
295
 
296
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
297
+
297
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
298
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
298
 
299
 
299
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
300
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)

+ 22
- 23
Marlin/example_configurations/K8200/Configuration_adv.h View File

47
 //=============================Thermal Settings  ============================
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
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
71
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
73
   #define THERMAL_PROTECTION_PERIOD 60        // Seconds
72
   #define THERMAL_PROTECTION_PERIOD 60        // Seconds
74
   #define THERMAL_PROTECTION_HYSTERESIS 8     // Degrees Celsius
73
   #define THERMAL_PROTECTION_HYSTERESIS 8     // Degrees Celsius
86
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
85
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
87
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_BED)
93
 #if ENABLED(THERMAL_PROTECTION_BED)
95
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
94
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
96
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
95
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

+ 3
- 2
Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h View File

229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
231
 #if ENABLED(PIDTEMP)
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
   //#define PID_DEBUG // Sends debug data to the serial port.
233
   //#define PID_DEBUG // Sends debug data to the serial port.
233
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234
   //#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
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
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
280
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
280
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
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
 #if ENABLED(PIDTEMPBED)
283
 #if ENABLED(PIDTEMPBED)
285
 
284
 
285
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
286
+
286
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
287
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
287
 
288
 
288
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
289
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)

+ 3
- 2
Marlin/example_configurations/RigidBot/Configuration.h View File

229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
231
 #if ENABLED(PIDTEMP)
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
   //#define PID_DEBUG // Sends debug data to the serial port.
233
   //#define PID_DEBUG // Sends debug data to the serial port.
233
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234
   //#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
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
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
281
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
281
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
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
 #if ENABLED(PIDTEMPBED)
284
 #if ENABLED(PIDTEMPBED)
286
 
285
 
286
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
287
+
287
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
288
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
288
 
289
 
289
   //RigidBot, from pid autotune
290
   //RigidBot, from pid autotune

+ 22
- 23
Marlin/example_configurations/RigidBot/Configuration_adv.h View File

41
 //=============================Thermal Settings  ============================
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
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
65
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
67
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
66
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
68
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
67
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
80
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
79
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
81
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_BED)
87
 #if ENABLED(THERMAL_PROTECTION_BED)
89
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
88
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
90
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
89
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

+ 4
- 3
Marlin/example_configurations/SCARA/Configuration.h View File

254
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
254
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
255
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
255
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
256
 #if ENABLED(PIDTEMP)
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
   //#define PID_DEBUG // Sends debug data to the serial port.
258
   //#define PID_DEBUG // Sends debug data to the serial port.
258
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
259
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
259
   //#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
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
 // If this is enabled, find your own PID constants below.
286
 // If this is enabled, find your own PID constants below.
286
 #define PIDTEMPBED
287
 #define PIDTEMPBED
287
 
288
 
288
-#define BED_LIMIT_SWITCHING
289
+//#define BED_LIMIT_SWITCHING
289
 
290
 
290
 // This sets the max power delivered to the bed, and replaces the HEATER_BED_DUTY_CYCLE_DIVIDER option.
291
 // This sets the max power delivered to the bed, and replaces the HEATER_BED_DUTY_CYCLE_DIVIDER option.
291
 // all forms of bed control obey this (PID, bang-bang, bang-bang with hysteresis)
292
 // all forms of bed control obey this (PID, bang-bang, bang-bang with hysteresis)
293
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
294
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
294
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
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
 #if ENABLED(PIDTEMPBED)
297
 #if ENABLED(PIDTEMPBED)
299
 
298
 
299
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
300
+
300
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
301
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
301
 
302
 
302
   //12v Heatbed Mk3 12V in parallel
303
   //12v Heatbed Mk3 12V in parallel

+ 22
- 23
Marlin/example_configurations/SCARA/Configuration_adv.h View File

41
 //=============================Thermal Settings  ============================
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
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
65
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
67
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
66
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
68
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
67
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
80
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
79
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
81
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_BED)
87
 #if ENABLED(THERMAL_PROTECTION_BED)
89
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
88
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
90
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
89
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

+ 3
- 2
Marlin/example_configurations/TAZ4/Configuration.h View File

229
 #define BANG_MAX 70 // limits current to nozzle while in bang-bang mode; 255=full current
229
 #define BANG_MAX 70 // limits current to nozzle while in bang-bang mode; 255=full current
230
 #define PID_MAX 74 // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
230
 #define PID_MAX 74 // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
231
 #if ENABLED(PIDTEMP)
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
   //#define PID_DEBUG // Sends debug data to the serial port.
233
   //#define PID_DEBUG // Sends debug data to the serial port.
233
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234
   //#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
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
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
290
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
290
 #define MAX_BED_POWER 206 // limits duty cycle to bed; 255=full current
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
 #if ENABLED(PIDTEMPBED)
293
 #if ENABLED(PIDTEMPBED)
295
 
294
 
295
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
296
+
296
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
297
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
297
 
298
 
298
   //24V 360W silicone heater from NPH on 3mm borosilicate (TAZ 2.2+)
299
   //24V 360W silicone heater from NPH on 3mm borosilicate (TAZ 2.2+)

+ 22
- 23
Marlin/example_configurations/TAZ4/Configuration_adv.h View File

41
 //=============================Thermal Settings  ============================
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
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
65
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
67
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
66
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
68
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
67
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
80
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
79
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
81
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_BED)
87
 #if ENABLED(THERMAL_PROTECTION_BED)
89
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
88
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
90
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
89
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

+ 3
- 2
Marlin/example_configurations/WITBOX/Configuration.h View File

232
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
232
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
233
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
233
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
234
 #if ENABLED(PIDTEMP)
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
   //#define PID_DEBUG // Sends debug data to the serial port.
236
   //#define PID_DEBUG // Sends debug data to the serial port.
236
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
237
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
237
   //#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
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
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
272
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
272
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
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
 #if ENABLED(PIDTEMPBED)
275
 #if ENABLED(PIDTEMPBED)
277
 
276
 
277
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
278
+
278
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
279
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
279
 
280
 
280
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
281
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)

+ 22
- 23
Marlin/example_configurations/WITBOX/Configuration_adv.h View File

41
 //=============================Thermal Settings  ============================
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
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
65
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
67
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
66
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
68
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
67
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
80
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
79
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
81
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_BED)
87
 #if ENABLED(THERMAL_PROTECTION_BED)
89
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
88
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
90
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
89
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

+ 3
- 2
Marlin/example_configurations/adafruit/ST7565/Configuration.h View File

229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
231
 #if ENABLED(PIDTEMP)
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
   //#define PID_DEBUG // Sends debug data to the serial port.
233
   //#define PID_DEBUG // Sends debug data to the serial port.
233
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234
   //#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
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
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
280
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
280
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
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
 #if ENABLED(PIDTEMPBED)
283
 #if ENABLED(PIDTEMPBED)
285
 
284
 
285
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
286
+
286
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
287
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
287
 
288
 
288
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
289
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)

+ 3
- 2
Marlin/example_configurations/delta/biv2.5/Configuration.h View File

229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
231
 #if ENABLED(PIDTEMP)
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
   //#define PID_DEBUG // Sends debug data to the serial port.
233
   //#define PID_DEBUG // Sends debug data to the serial port.
233
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234
   //#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
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
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
280
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
280
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
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
 #if ENABLED(PIDTEMPBED)
283
 #if ENABLED(PIDTEMPBED)
285
 
284
 
285
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
286
+
286
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
287
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
287
 
288
 
288
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
289
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)

+ 22
- 23
Marlin/example_configurations/delta/biv2.5/Configuration_adv.h View File

41
 //=============================Thermal Settings  ============================
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
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
65
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
67
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
66
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
68
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
67
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
80
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
79
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
81
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_BED)
87
 #if ENABLED(THERMAL_PROTECTION_BED)
89
   #define THERMAL_PROTECTION_BED_PERIOD 120   // Seconds
88
   #define THERMAL_PROTECTION_BED_PERIOD 120   // Seconds
90
   #define THERMAL_PROTECTION_BED_HYSTERESIS 4 // Degrees Celsius
89
   #define THERMAL_PROTECTION_BED_HYSTERESIS 4 // Degrees Celsius

+ 3
- 2
Marlin/example_configurations/delta/generic/Configuration.h View File

229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
231
 #if ENABLED(PIDTEMP)
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
   //#define PID_DEBUG // Sends debug data to the serial port.
233
   //#define PID_DEBUG // Sends debug data to the serial port.
233
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234
   //#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
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
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
280
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
280
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
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
 #if ENABLED(PIDTEMPBED)
283
 #if ENABLED(PIDTEMPBED)
285
 
284
 
285
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
286
+
286
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
287
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
287
 
288
 
288
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
289
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)

+ 22
- 23
Marlin/example_configurations/delta/generic/Configuration_adv.h View File

41
 //=============================Thermal Settings  ============================
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
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
65
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
67
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
66
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
68
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
67
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
80
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
79
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
81
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_BED)
87
 #if ENABLED(THERMAL_PROTECTION_BED)
89
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
88
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
90
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
89
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

+ 3
- 2
Marlin/example_configurations/delta/kossel_mini/Configuration.h View File

229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
231
 #if ENABLED(PIDTEMP)
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
   //#define PID_DEBUG // Sends debug data to the serial port.
233
   //#define PID_DEBUG // Sends debug data to the serial port.
233
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234
   //#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
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
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
280
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
280
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
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
 #if ENABLED(PIDTEMPBED)
283
 #if ENABLED(PIDTEMPBED)
285
 
284
 
285
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
286
+
286
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
287
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
287
 
288
 
288
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
289
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)

+ 22
- 23
Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h View File

41
 //=============================Thermal Settings  ============================
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
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
65
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
67
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
66
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
68
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
67
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
80
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
79
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
81
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_BED)
87
 #if ENABLED(THERMAL_PROTECTION_BED)
89
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
88
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
90
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
89
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

+ 3
- 2
Marlin/example_configurations/delta/kossel_pro/Configuration.h View File

235
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
235
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
236
 #define PID_MAX  125 // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
236
 #define PID_MAX  125 // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
237
 #if ENABLED(PIDTEMP)
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
   //#define PID_DEBUG // Sends debug data to the serial port.
239
   //#define PID_DEBUG // Sends debug data to the serial port.
239
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
240
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
240
   //#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
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
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
275
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
275
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
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
 #if ENABLED(PIDTEMPBED)
278
 #if ENABLED(PIDTEMPBED)
280
 
279
 
280
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
281
+
281
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
282
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
282
 
283
 
283
   //Kossel Pro heated bed plate with borosilicate glass
284
   //Kossel Pro heated bed plate with borosilicate glass

+ 22
- 23
Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h View File

46
 //=============================Thermal Settings  ============================
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
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
70
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
72
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
71
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
73
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
72
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
85
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
84
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
86
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_BED)
92
 #if ENABLED(THERMAL_PROTECTION_BED)
94
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
93
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
95
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
94
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

+ 3
- 2
Marlin/example_configurations/delta/kossel_xl/Configuration.h View File

252
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
252
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
253
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
253
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
254
 #if ENABLED(PIDTEMP)
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
   //#define PID_DEBUG // Sends debug data to the serial port.
256
   //#define PID_DEBUG // Sends debug data to the serial port.
256
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
257
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
257
   //#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
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
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
308
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
308
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
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
 #if ENABLED(PIDTEMPBED)
311
 #if ENABLED(PIDTEMPBED)
313
 
312
 
313
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
314
+
314
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
315
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
315
 
316
 
316
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
317
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)

+ 22
- 23
Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h View File

41
 //=============================Thermal Settings  ============================
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
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
65
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
67
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
66
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
68
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
67
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
80
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
79
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
81
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_BED)
87
 #if ENABLED(THERMAL_PROTECTION_BED)
89
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
88
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
90
   #define THERMAL_PROTECTION_BED_HYSTERESIS 4 // Degrees Celsius
89
   #define THERMAL_PROTECTION_BED_HYSTERESIS 4 // Degrees Celsius

+ 3
- 2
Marlin/example_configurations/makibox/Configuration.h View File

229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
231
 #if ENABLED(PIDTEMP)
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
   //#define PID_DEBUG // Sends debug data to the serial port.
233
   //#define PID_DEBUG // Sends debug data to the serial port.
233
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234
   //#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
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
 // to increase the heat up rate. However, if changed, user must be aware of the safety concerns
283
 // to increase the heat up rate. However, if changed, user must be aware of the safety concerns
283
 // of drawing too much current from the power supply.
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
 #if ENABLED(PIDTEMPBED)
286
 #if ENABLED(PIDTEMPBED)
288
 
287
 
288
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
289
+
289
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
290
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
290
 
291
 
291
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
292
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)

+ 22
- 23
Marlin/example_configurations/makibox/Configuration_adv.h View File

41
 //=============================Thermal Settings  ============================
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
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
65
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
67
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
66
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
68
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
67
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
80
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
79
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
81
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_BED)
87
 #if ENABLED(THERMAL_PROTECTION_BED)
89
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
88
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
90
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
89
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

+ 3
- 2
Marlin/example_configurations/tvrrug/Round2/Configuration.h View File

229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
229
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
230
 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
231
 #if ENABLED(PIDTEMP)
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
   //#define PID_DEBUG // Sends debug data to the serial port.
233
   //#define PID_DEBUG // Sends debug data to the serial port.
233
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
234
   //#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
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
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
270
 // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
270
 #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
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
 #if ENABLED(PIDTEMPBED)
273
 #if ENABLED(PIDTEMPBED)
275
 
274
 
275
+  //#define PID_BED_DEBUG // Sends debug data to the serial port.
276
+
276
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
277
   #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
277
 
278
 
278
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
279
   //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)

+ 22
- 23
Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h View File

41
 //=============================Thermal Settings  ============================
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
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
65
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
67
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
66
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
68
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
67
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
80
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
79
   #define WATCH_TEMP_INCREASE 4               // Degrees Celsius
81
 #endif
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
 #if ENABLED(THERMAL_PROTECTION_BED)
87
 #if ENABLED(THERMAL_PROTECTION_BED)
89
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
88
   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
90
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
89
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

+ 2
- 2
Marlin/temperature.cpp View File

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

+ 19
- 8
Marlin/ultralcd.cpp View File

1094
  *
1094
  *
1095
  */
1095
  */
1096
 
1096
 
1097
-#if ENABLED(PIDTEMP) || ENABLED(PIDTEMPBED)
1097
+#if ENABLED(PID_AUTOTUNE_MENU)
1098
 
1098
 
1099
   #if ENABLED(PIDTEMP)
1099
   #if ENABLED(PIDTEMP)
1100
     int autotune_temp[EXTRUDERS] = { 150 };
1100
     int autotune_temp[EXTRUDERS] = { 150 };
1119
     enqueue_and_echo_command_now(cmd);
1119
     enqueue_and_echo_command_now(cmd);
1120
   }
1120
   }
1121
 
1121
 
1122
-#endif //PIDTEMP || PIDTEMPBED
1122
+#endif //PID_AUTOTUNE_MENU
1123
 
1123
 
1124
 #if ENABLED(PIDTEMP)
1124
 #if ENABLED(PIDTEMP)
1125
 
1125
 
1133
     PID_PARAM(Kd, e) = scalePID_d(raw_Kd);
1133
     PID_PARAM(Kd, e) = scalePID_d(raw_Kd);
1134
     updatePID();
1134
     updatePID();
1135
   }
1135
   }
1136
-  #define _PIDTEMP_FUNCTIONS(eindex) \
1136
+  #define _PIDTEMP_BASE_FUNCTIONS(eindex) \
1137
     void copy_and_scalePID_i_E ## eindex() { copy_and_scalePID_i(eindex); } \
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
   _PIDTEMP_FUNCTIONS(0);
1148
   _PIDTEMP_FUNCTIONS(0);
1142
   #if ENABLED(PID_PARAMS_PER_EXTRUDER)
1149
   #if ENABLED(PID_PARAMS_PER_EXTRUDER)
1254
       #define _PID_MENU_ITEMS(ELABEL, eindex) _PID_BASE_MENU_ITEMS(ELABEL, eindex)
1261
       #define _PID_MENU_ITEMS(ELABEL, eindex) _PID_BASE_MENU_ITEMS(ELABEL, eindex)
1255
     #endif
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
     #if ENABLED(PID_PARAMS_PER_EXTRUDER) && EXTRUDERS > 1
1272
     #if ENABLED(PID_PARAMS_PER_EXTRUDER) && EXTRUDERS > 1
1262
       PID_MENU_ITEMS(MSG_E1, 0);
1273
       PID_MENU_ITEMS(MSG_E1, 0);

Loading…
Cancel
Save