PID_MENU option to save PROGMEM in LCD menus (#13095)
This commit is contained in:
		@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  #define PID_EDIT_MENU           // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX  74      // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -426,7 +426,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -426,7 +426,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -433,7 +433,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -426,7 +426,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -434,7 +434,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  #define PID_EDIT_MENU           // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  #define PID_EDIT_MENU           // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  #define PID_EDIT_MENU           // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -427,7 +427,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -472,7 +472,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  #define PID_EDIT_MENU           // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -440,7 +440,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  #define PID_EDIT_MENU           // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -434,7 +434,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  #define PID_EDIT_MENU           // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -430,7 +430,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  #define PID_EDIT_MENU           // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -445,7 +445,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  #define PID_EDIT_MENU           // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -433,7 +433,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -426,7 +426,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -428,7 +428,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -456,7 +456,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -426,7 +426,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  #define PID_EDIT_MENU           // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -452,7 +452,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  #define PID_EDIT_MENU           // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -445,7 +445,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -444,7 +444,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  #define PID_EDIT_MENU           // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -446,7 +446,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  #define PID_EDIT_MENU           // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  #define PID_EDIT_MENU           // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  #define PID_EDIT_MENU           // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  #define PID_EDIT_MENU           // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -430,7 +430,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  #define PID_EDIT_MENU           // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -429,7 +429,8 @@
 | 
			
		||||
#define PID_MAX  125     // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -433,7 +433,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -426,7 +426,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  #define PID_EDIT_MENU           // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  #define PID_AUTOTUNE_MENU       // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -425,7 +425,8 @@
 | 
			
		||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | 
			
		||||
#define PID_K1 0.95      // Smoothing factor within any PID loop
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | 
			
		||||
  //#define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
 | 
			
		||||
  //#define PID_DEBUG             // Sends debug data to the serial port.
 | 
			
		||||
  //#define PID_OPENLOOP 1        // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
 | 
			
		||||
  //#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
 | 
			
		||||
 
 | 
			
		||||
@@ -262,7 +262,7 @@ void menu_tmc();
 | 
			
		||||
 | 
			
		||||
#endif // PID_AUTOTUNE_MENU
 | 
			
		||||
 | 
			
		||||
#if ENABLED(PIDTEMP)
 | 
			
		||||
#if ENABLED(PID_EDIT_MENU)
 | 
			
		||||
 | 
			
		||||
  float raw_Ki, raw_Kd; // place-holders for Ki and Kd edits
 | 
			
		||||
 | 
			
		||||
@@ -286,107 +286,121 @@ void menu_tmc();
 | 
			
		||||
    void copy_and_scalePID_i_E ## N() { copy_and_scalePID_i(N); } \
 | 
			
		||||
    void copy_and_scalePID_d_E ## N() { copy_and_scalePID_d(N); }
 | 
			
		||||
 | 
			
		||||
  #if ENABLED(PID_AUTOTUNE_MENU)
 | 
			
		||||
    #define DEFINE_PIDTEMP_FUNCS(N) \
 | 
			
		||||
      _DEFINE_PIDTEMP_BASE_FUNCS(N); \
 | 
			
		||||
      void lcd_autotune_callback_E ## N() { _lcd_autotune(N); } typedef void _pid_##N##_void
 | 
			
		||||
  #else
 | 
			
		||||
    #define DEFINE_PIDTEMP_FUNCS(N) _DEFINE_PIDTEMP_BASE_FUNCS(N) typedef void _pid_##N##_void
 | 
			
		||||
  #endif
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
  DEFINE_PIDTEMP_FUNCS(0);
 | 
			
		||||
  #if ENABLED(PID_PARAMS_PER_HOTEND)
 | 
			
		||||
    #if HOTENDS > 1
 | 
			
		||||
      DEFINE_PIDTEMP_FUNCS(1);
 | 
			
		||||
      #if HOTENDS > 2
 | 
			
		||||
        DEFINE_PIDTEMP_FUNCS(2);
 | 
			
		||||
        #if HOTENDS > 3
 | 
			
		||||
          DEFINE_PIDTEMP_FUNCS(3);
 | 
			
		||||
          #if HOTENDS > 4
 | 
			
		||||
            DEFINE_PIDTEMP_FUNCS(4);
 | 
			
		||||
            #if HOTENDS > 5
 | 
			
		||||
              DEFINE_PIDTEMP_FUNCS(5);
 | 
			
		||||
            #endif // HOTENDS > 5
 | 
			
		||||
          #endif // HOTENDS > 4
 | 
			
		||||
        #endif // HOTENDS > 3
 | 
			
		||||
      #endif // HOTENDS > 2
 | 
			
		||||
    #endif // HOTENDS > 1
 | 
			
		||||
  #endif // PID_PARAMS_PER_HOTEND
 | 
			
		||||
  #define _DEFINE_PIDTEMP_BASE_FUNCS(N) //
 | 
			
		||||
 | 
			
		||||
#endif // PIDTEMP
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if ENABLED(PID_AUTOTUNE_MENU)
 | 
			
		||||
  #define DEFINE_PIDTEMP_FUNCS(N) \
 | 
			
		||||
    _DEFINE_PIDTEMP_BASE_FUNCS(N); \
 | 
			
		||||
    void lcd_autotune_callback_E ## N() { _lcd_autotune(N); } //
 | 
			
		||||
#else
 | 
			
		||||
  #define DEFINE_PIDTEMP_FUNCS(N) _DEFINE_PIDTEMP_BASE_FUNCS(N); //
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
DEFINE_PIDTEMP_FUNCS(0);
 | 
			
		||||
#if ENABLED(PID_PARAMS_PER_HOTEND)
 | 
			
		||||
  #if HOTENDS > 1
 | 
			
		||||
    DEFINE_PIDTEMP_FUNCS(1);
 | 
			
		||||
    #if HOTENDS > 2
 | 
			
		||||
      DEFINE_PIDTEMP_FUNCS(2);
 | 
			
		||||
      #if HOTENDS > 3
 | 
			
		||||
        DEFINE_PIDTEMP_FUNCS(3);
 | 
			
		||||
        #if HOTENDS > 4
 | 
			
		||||
          DEFINE_PIDTEMP_FUNCS(4);
 | 
			
		||||
          #if HOTENDS > 5
 | 
			
		||||
            DEFINE_PIDTEMP_FUNCS(5);
 | 
			
		||||
          #endif // HOTENDS > 5
 | 
			
		||||
        #endif // HOTENDS > 4
 | 
			
		||||
      #endif // HOTENDS > 3
 | 
			
		||||
    #endif // HOTENDS > 2
 | 
			
		||||
  #endif // HOTENDS > 1
 | 
			
		||||
#endif // PID_PARAMS_PER_HOTEND
 | 
			
		||||
 | 
			
		||||
#define SHOW_MENU_ADVANCED_TEMPERATURE ((ENABLED(AUTOTEMP) && HAS_TEMP_HOTEND) || ENABLED(PID_AUTOTUNE_MENU) || ENABLED(PID_EDIT_MENU))
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Advanced Settings > Temperature
 | 
			
		||||
//
 | 
			
		||||
void menu_advanced_temperature() {
 | 
			
		||||
  START_MENU();
 | 
			
		||||
  MENU_BACK(MSG_ADVANCED_SETTINGS);
 | 
			
		||||
  //
 | 
			
		||||
  // Autotemp, Min, Max, Fact
 | 
			
		||||
  //
 | 
			
		||||
  #if ENABLED(AUTOTEMP) && HAS_TEMP_HOTEND
 | 
			
		||||
    MENU_ITEM_EDIT(bool, MSG_AUTOTEMP, &planner.autotemp_enabled);
 | 
			
		||||
    MENU_ITEM_EDIT(float3, MSG_MIN, &planner.autotemp_min, 0, float(HEATER_0_MAXTEMP) - 15);
 | 
			
		||||
    MENU_ITEM_EDIT(float3, MSG_MAX, &planner.autotemp_max, 0, float(HEATER_0_MAXTEMP) - 15);
 | 
			
		||||
    MENU_ITEM_EDIT(float52, MSG_FACTOR, &planner.autotemp_factor, 0, 1);
 | 
			
		||||
  #endif
 | 
			
		||||
#if SHOW_MENU_ADVANCED_TEMPERATURE
 | 
			
		||||
 | 
			
		||||
  //
 | 
			
		||||
  // PID-P, PID-I, PID-D, PID-C, PID Autotune
 | 
			
		||||
  // PID-P E1, PID-I E1, PID-D E1, PID-C E1, PID Autotune E1
 | 
			
		||||
  // PID-P E2, PID-I E2, PID-D E2, PID-C E2, PID Autotune E2
 | 
			
		||||
  // PID-P E3, PID-I E3, PID-D E3, PID-C E3, PID Autotune E3
 | 
			
		||||
  // PID-P E4, PID-I E4, PID-D E4, PID-C E4, PID Autotune E4
 | 
			
		||||
  // PID-P E5, PID-I E5, PID-D E5, PID-C E5, PID Autotune E5
 | 
			
		||||
  //
 | 
			
		||||
  #if ENABLED(PIDTEMP)
 | 
			
		||||
  void menu_advanced_temperature() {
 | 
			
		||||
    START_MENU();
 | 
			
		||||
    MENU_BACK(MSG_ADVANCED_SETTINGS);
 | 
			
		||||
    //
 | 
			
		||||
    // Autotemp, Min, Max, Fact
 | 
			
		||||
    //
 | 
			
		||||
    #if ENABLED(AUTOTEMP) && HAS_TEMP_HOTEND
 | 
			
		||||
      MENU_ITEM_EDIT(bool, MSG_AUTOTEMP, &planner.autotemp_enabled);
 | 
			
		||||
      MENU_ITEM_EDIT(float3, MSG_MIN, &planner.autotemp_min, 0, float(HEATER_0_MAXTEMP) - 15);
 | 
			
		||||
      MENU_ITEM_EDIT(float3, MSG_MAX, &planner.autotemp_max, 0, float(HEATER_0_MAXTEMP) - 15);
 | 
			
		||||
      MENU_ITEM_EDIT(float52, MSG_FACTOR, &planner.autotemp_factor, 0, 1);
 | 
			
		||||
    #endif
 | 
			
		||||
 | 
			
		||||
    #define _PID_BASE_MENU_ITEMS(ELABEL, eindex) \
 | 
			
		||||
      raw_Ki = unscalePID_i(PID_PARAM(Ki, eindex)); \
 | 
			
		||||
      raw_Kd = unscalePID_d(PID_PARAM(Kd, eindex)); \
 | 
			
		||||
      MENU_ITEM_EDIT(float52sign, MSG_PID_P ELABEL, &PID_PARAM(Kp, eindex), 1, 9990); \
 | 
			
		||||
      MENU_ITEM_EDIT_CALLBACK(float52sign, MSG_PID_I ELABEL, &raw_Ki, 0.01f, 9990, copy_and_scalePID_i_E ## eindex); \
 | 
			
		||||
      MENU_ITEM_EDIT_CALLBACK(float52sign, MSG_PID_D ELABEL, &raw_Kd, 1, 9990, copy_and_scalePID_d_E ## eindex)
 | 
			
		||||
    //
 | 
			
		||||
    // PID-P, PID-I, PID-D, PID-C, PID Autotune
 | 
			
		||||
    // PID-P E1, PID-I E1, PID-D E1, PID-C E1, PID Autotune E1
 | 
			
		||||
    // PID-P E2, PID-I E2, PID-D E2, PID-C E2, PID Autotune E2
 | 
			
		||||
    // PID-P E3, PID-I E3, PID-D E3, PID-C E3, PID Autotune E3
 | 
			
		||||
    // PID-P E4, PID-I E4, PID-D E4, PID-C E4, PID Autotune E4
 | 
			
		||||
    // PID-P E5, PID-I E5, PID-D E5, PID-C E5, PID Autotune E5
 | 
			
		||||
    //
 | 
			
		||||
    #if ENABLED(PID_EDIT_MENU)
 | 
			
		||||
 | 
			
		||||
      #define _PID_BASE_MENU_ITEMS(ELABEL, eindex) \
 | 
			
		||||
        raw_Ki = unscalePID_i(PID_PARAM(Ki, eindex)); \
 | 
			
		||||
        raw_Kd = unscalePID_d(PID_PARAM(Kd, eindex)); \
 | 
			
		||||
        MENU_ITEM_EDIT(float52sign, MSG_PID_P ELABEL, &PID_PARAM(Kp, eindex), 1, 9990); \
 | 
			
		||||
        MENU_ITEM_EDIT_CALLBACK(float52sign, MSG_PID_I ELABEL, &raw_Ki, 0.01f, 9990, copy_and_scalePID_i_E ## eindex); \
 | 
			
		||||
        MENU_ITEM_EDIT_CALLBACK(float52sign, MSG_PID_D ELABEL, &raw_Kd, 1, 9990, copy_and_scalePID_d_E ## eindex)
 | 
			
		||||
 | 
			
		||||
      #if ENABLED(PID_EXTRUSION_SCALING)
 | 
			
		||||
        #define _PID_EDIT_MENU_ITEMS(ELABEL, eindex) \
 | 
			
		||||
          _PID_BASE_MENU_ITEMS(ELABEL, eindex); \
 | 
			
		||||
          MENU_ITEM_EDIT(float3, MSG_PID_C ELABEL, &PID_PARAM(Kc, eindex), 1, 9990)
 | 
			
		||||
      #else
 | 
			
		||||
        #define _PID_EDIT_MENU_ITEMS(ELABEL, eindex) _PID_BASE_MENU_ITEMS(ELABEL, eindex)
 | 
			
		||||
      #endif
 | 
			
		||||
 | 
			
		||||
    #if ENABLED(PID_EXTRUSION_SCALING)
 | 
			
		||||
      #define _PID_MENU_ITEMS(ELABEL, eindex) \
 | 
			
		||||
        _PID_BASE_MENU_ITEMS(ELABEL, eindex); \
 | 
			
		||||
        MENU_ITEM_EDIT(float3, MSG_PID_C ELABEL, &PID_PARAM(Kc, eindex), 1, 9990)
 | 
			
		||||
    #else
 | 
			
		||||
      #define _PID_MENU_ITEMS(ELABEL, eindex) _PID_BASE_MENU_ITEMS(ELABEL, eindex)
 | 
			
		||||
 | 
			
		||||
      #define _PID_EDIT_MENU_ITEMS(ELABEL, eindex) NOOP
 | 
			
		||||
 | 
			
		||||
    #endif
 | 
			
		||||
 | 
			
		||||
    #if ENABLED(PID_AUTOTUNE_MENU)
 | 
			
		||||
      #define PID_MENU_ITEMS(ELABEL, eindex) \
 | 
			
		||||
        _PID_MENU_ITEMS(ELABEL, eindex); \
 | 
			
		||||
      #define PID_EDIT_MENU_ITEMS(ELABEL, eindex) \
 | 
			
		||||
        _PID_EDIT_MENU_ITEMS(ELABEL, eindex); \
 | 
			
		||||
        MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_PID_AUTOTUNE ELABEL, &autotune_temp[eindex], 150, heater_maxtemp[eindex] - 15, lcd_autotune_callback_E ## eindex)
 | 
			
		||||
    #else
 | 
			
		||||
      #define PID_MENU_ITEMS(ELABEL, eindex) _PID_MENU_ITEMS(ELABEL, eindex)
 | 
			
		||||
      #define PID_EDIT_MENU_ITEMS(ELABEL, eindex) _PID_EDIT_MENU_ITEMS(ELABEL, eindex)
 | 
			
		||||
    #endif
 | 
			
		||||
 | 
			
		||||
    #if ENABLED(PID_PARAMS_PER_HOTEND) && HOTENDS > 1
 | 
			
		||||
      PID_MENU_ITEMS(" " MSG_E1, 0);
 | 
			
		||||
      PID_MENU_ITEMS(" " MSG_E2, 1);
 | 
			
		||||
      PID_EDIT_MENU_ITEMS(" " MSG_E1, 0);
 | 
			
		||||
      PID_EDIT_MENU_ITEMS(" " MSG_E2, 1);
 | 
			
		||||
      #if HOTENDS > 2
 | 
			
		||||
        PID_MENU_ITEMS(" " MSG_E3, 2);
 | 
			
		||||
        PID_EDIT_MENU_ITEMS(" " MSG_E3, 2);
 | 
			
		||||
        #if HOTENDS > 3
 | 
			
		||||
          PID_MENU_ITEMS(" " MSG_E4, 3);
 | 
			
		||||
          PID_EDIT_MENU_ITEMS(" " MSG_E4, 3);
 | 
			
		||||
          #if HOTENDS > 4
 | 
			
		||||
            PID_MENU_ITEMS(" " MSG_E5, 4);
 | 
			
		||||
            PID_EDIT_MENU_ITEMS(" " MSG_E5, 4);
 | 
			
		||||
            #if HOTENDS > 5
 | 
			
		||||
              PID_MENU_ITEMS(" " MSG_E6, 5);
 | 
			
		||||
              PID_EDIT_MENU_ITEMS(" " MSG_E6, 5);
 | 
			
		||||
            #endif // HOTENDS > 5
 | 
			
		||||
          #endif // HOTENDS > 4
 | 
			
		||||
        #endif // HOTENDS > 3
 | 
			
		||||
      #endif // HOTENDS > 2
 | 
			
		||||
    #else // !PID_PARAMS_PER_HOTEND || HOTENDS == 1
 | 
			
		||||
      PID_MENU_ITEMS("", 0);
 | 
			
		||||
      PID_EDIT_MENU_ITEMS("", 0);
 | 
			
		||||
    #endif // !PID_PARAMS_PER_HOTEND || HOTENDS == 1
 | 
			
		||||
 | 
			
		||||
  #endif // PIDTEMP
 | 
			
		||||
    END_MENU();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  END_MENU();
 | 
			
		||||
}
 | 
			
		||||
#endif // SHOW_MENU_ADVANCED_TEMPERATURE
 | 
			
		||||
 | 
			
		||||
#if DISABLED(SLIM_LCD_MENUS)
 | 
			
		||||
 | 
			
		||||
@@ -640,7 +654,9 @@ void menu_advanced_settings() {
 | 
			
		||||
    MENU_ITEM(submenu, MSG_TMC_DRIVERS, menu_tmc);
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  MENU_ITEM(submenu, MSG_TEMPERATURE, menu_advanced_temperature);
 | 
			
		||||
  #if SHOW_MENU_ADVANCED_TEMPERATURE
 | 
			
		||||
    MENU_ITEM(submenu, MSG_TEMPERATURE, menu_advanced_temperature);
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  #if DISABLED(NO_VOLUMETRICS) || ENABLED(ADVANCED_PAUSE_FEATURE)
 | 
			
		||||
    MENU_ITEM(submenu, MSG_FILAMENT, menu_advanced_filament);
 | 
			
		||||
 
 | 
			
		||||
@@ -708,14 +708,14 @@ float Temperature::get_pid_output(const int8_t e) {
 | 
			
		||||
  #else
 | 
			
		||||
    #define _HOTEND_TEST (e == active_extruder)
 | 
			
		||||
  #endif
 | 
			
		||||
  float pid_output;
 | 
			
		||||
  #if ENABLED(PIDTEMP)
 | 
			
		||||
    #if DISABLED(PID_OPENLOOP)
 | 
			
		||||
      static hotend_pid_t work_pid[HOTENDS];
 | 
			
		||||
      static float temp_iState[HOTENDS] = { 0 },
 | 
			
		||||
                   temp_dState[HOTENDS] = { 0 };
 | 
			
		||||
      static bool pid_reset[HOTENDS] = { false };
 | 
			
		||||
      float pid_output,
 | 
			
		||||
            pid_error = target_temperature[HOTEND_INDEX] - current_temperature[HOTEND_INDEX];
 | 
			
		||||
      float pid_error = target_temperature[HOTEND_INDEX] - current_temperature[HOTEND_INDEX];
 | 
			
		||||
      work_pid[HOTEND_INDEX].Kd = PID_K2 * PID_PARAM(Kd, HOTEND_INDEX) * (current_temperature[HOTEND_INDEX] - temp_dState[HOTEND_INDEX]) + float(PID_K1) * work_pid[HOTEND_INDEX].Kd;
 | 
			
		||||
      temp_dState[HOTEND_INDEX] = current_temperature[HOTEND_INDEX];
 | 
			
		||||
      #if HEATER_IDLE_HANDLER
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user