Revert "Squashed - Removal of PID functional range"
This commit is contained in:
		
							parent
							
								
									4037df82b0
								
							
						
					
					
						commit
						1e551c0688
					
				| @ -288,7 +288,7 @@ | ||||
| // Comment the following line to disable PID and enable bang-bang.
 | ||||
| #define PIDTEMP | ||||
| #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active); 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | ||||
| #if ENABLED(PIDTEMP) | ||||
|   //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | ||||
|   //#define PID_DEBUG // Sends debug data to the serial port.
 | ||||
| @ -296,6 +296,8 @@ | ||||
|   //#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
 | ||||
|   //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
 | ||||
|                                   // Set/get with gcode: M301 E[extruder number, 0-2]
 | ||||
|   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
 | ||||
|                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
 | ||||
|   #define K1 0.95 //smoothing factor within the PID
 | ||||
| 
 | ||||
|   // If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
 | ||||
|  | ||||
| @ -289,7 +289,7 @@ | ||||
| // Comment the following line to disable PID and enable bang-bang.
 | ||||
| #define PIDTEMP | ||||
| #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | ||||
| #if ENABLED(PIDTEMP) | ||||
|   //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | ||||
|   //#define PID_DEBUG // Sends debug data to the serial port.
 | ||||
| @ -297,6 +297,8 @@ | ||||
|   //#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
 | ||||
|   //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
 | ||||
|                                   // Set/get with gcode: M301 E[extruder number, 0-2]
 | ||||
|   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
 | ||||
|                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
 | ||||
|   #define K1 0.95 //smoothing factor within the PID
 | ||||
| 
 | ||||
|   // If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
 | ||||
|  | ||||
| @ -288,7 +288,7 @@ | ||||
| // Comment the following line to disable PID and enable bang-bang.
 | ||||
| #define PIDTEMP | ||||
| #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | ||||
| #if ENABLED(PIDTEMP) | ||||
|   //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | ||||
|   //#define PID_DEBUG // Sends debug data to the serial port.
 | ||||
| @ -296,6 +296,8 @@ | ||||
|   //#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
 | ||||
|   //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
 | ||||
|                                   // Set/get with gcode: M301 E[extruder number, 0-2]
 | ||||
|   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
 | ||||
|                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
 | ||||
|   #define K1 0.95 //smoothing factor within the PID
 | ||||
| 
 | ||||
|   // Felix 2.0+ electronics with v4 Hotend
 | ||||
|  | ||||
| @ -288,7 +288,7 @@ | ||||
| // Comment the following line to disable PID and enable bang-bang.
 | ||||
| #define PIDTEMP | ||||
| #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | ||||
| #if ENABLED(PIDTEMP) | ||||
|   //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | ||||
|   //#define PID_DEBUG // Sends debug data to the serial port.
 | ||||
| @ -296,6 +296,8 @@ | ||||
|   //#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
 | ||||
|   //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
 | ||||
|                                   // Set/get with gcode: M301 E[extruder number, 0-2]
 | ||||
|   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
 | ||||
|                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
 | ||||
|   #define K1 0.95 //smoothing factor within the PID
 | ||||
| 
 | ||||
|   // Felix 2.0+ electronics with v4 Hotend
 | ||||
|  | ||||
| @ -291,7 +291,7 @@ | ||||
| // Comment the following line to disable PID and enable bang-bang.
 | ||||
| #define PIDTEMP | ||||
| #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | ||||
| #if ENABLED(PIDTEMP) | ||||
|   //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | ||||
|   //#define PID_DEBUG // Sends debug data to the serial port.
 | ||||
| @ -299,6 +299,8 @@ | ||||
|   //#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
 | ||||
|   //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
 | ||||
|                                   // Set/get with gcode: M301 E[extruder number, 0-2]
 | ||||
|   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
 | ||||
|                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
 | ||||
|   #define K1 0.95 //smoothing factor within the PID
 | ||||
| 
 | ||||
|   // Hephestos i3
 | ||||
|  | ||||
| @ -288,7 +288,7 @@ | ||||
| // Comment the following line to disable PID and enable bang-bang.
 | ||||
| #define PIDTEMP | ||||
| #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | ||||
| #if ENABLED(PIDTEMP) | ||||
|   //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | ||||
|   //#define PID_DEBUG // Sends debug data to the serial port.
 | ||||
| @ -296,6 +296,8 @@ | ||||
|   //#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
 | ||||
|   //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
 | ||||
|                                   // Set/get with gcode: M301 E[extruder number, 0-2]
 | ||||
|   #define PID_FUNCTIONAL_RANGE 250  // If the temperature difference between the target temperature and the actual temperature
 | ||||
|                                     // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
 | ||||
|   #define K1 0.95 //smoothing factor within the PID
 | ||||
| 
 | ||||
|   // Tuned PID values using M303
 | ||||
|  | ||||
| @ -295,7 +295,7 @@ | ||||
| // Comment the following line to disable PID and enable bang-bang.
 | ||||
| #define PIDTEMP | ||||
| #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | ||||
| #if ENABLED(PIDTEMP) | ||||
|   //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | ||||
|   //#define PID_DEBUG // Sends debug data to the serial port.
 | ||||
| @ -303,6 +303,8 @@ | ||||
|   //#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
 | ||||
|   //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
 | ||||
|                                   // Set/get with gcode: M301 E[extruder number, 0-2]
 | ||||
|   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
 | ||||
|                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
 | ||||
|   #define K1 0.95 //smoothing factor within the PID
 | ||||
| 
 | ||||
|   // If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
 | ||||
|  | ||||
| @ -288,7 +288,7 @@ | ||||
| // Comment the following line to disable PID and enable bang-bang.
 | ||||
| #define PIDTEMP | ||||
| #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | ||||
| #if ENABLED(PIDTEMP) | ||||
|   //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | ||||
|   //#define PID_DEBUG // Sends debug data to the serial port.
 | ||||
| @ -296,6 +296,8 @@ | ||||
|   //#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
 | ||||
|   //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
 | ||||
|                                   // Set/get with gcode: M301 E[extruder number, 0-2]
 | ||||
|   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
 | ||||
|                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
 | ||||
|   #define K1 0.95 //smoothing factor within the PID
 | ||||
| 
 | ||||
|   // If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
 | ||||
|  | ||||
| @ -288,7 +288,7 @@ | ||||
| // Comment the following line to disable PID and enable bang-bang.
 | ||||
| #define PIDTEMP | ||||
| #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | ||||
| #if ENABLED(PIDTEMP) | ||||
|   //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | ||||
|   //#define PID_DEBUG // Sends debug data to the serial port.
 | ||||
| @ -296,6 +296,8 @@ | ||||
|   //#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
 | ||||
|   //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
 | ||||
|                                   // Set/get with gcode: M301 E[extruder number, 0-2]
 | ||||
|   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
 | ||||
|                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
 | ||||
|   #define K1 0.95 //smoothing factor within the PID
 | ||||
| 
 | ||||
|   // If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
 | ||||
|  | ||||
| @ -288,7 +288,7 @@ | ||||
| // Comment the following line to disable PID and enable bang-bang.
 | ||||
| #define PIDTEMP | ||||
| #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | ||||
| #if ENABLED(PIDTEMP) | ||||
|   //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | ||||
|   //#define PID_DEBUG // Sends debug data to the serial port.
 | ||||
| @ -296,6 +296,8 @@ | ||||
|   //#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
 | ||||
|   //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
 | ||||
|                                   // Set/get with gcode: M301 E[extruder number, 0-2]
 | ||||
|   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
 | ||||
|                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
 | ||||
|   #define K1 0.95 //smoothing factor within the PID
 | ||||
| 
 | ||||
|   // If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
 | ||||
|  | ||||
| @ -291,7 +291,7 @@ | ||||
| // Comment the following line to disable PID and enable bang-bang.
 | ||||
| #define PIDTEMP | ||||
| #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | ||||
| #if ENABLED(PIDTEMP) | ||||
|   //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | ||||
|   //#define PID_DEBUG // Sends debug data to the serial port.
 | ||||
| @ -299,6 +299,8 @@ | ||||
|   //#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
 | ||||
|   //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
 | ||||
|                                   // Set/get with gcode: M301 E[extruder number, 0-2]
 | ||||
|   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
 | ||||
|                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
 | ||||
|   #define K1 0.95 //smoothing factor within the PID
 | ||||
| 
 | ||||
|   // If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
 | ||||
|  | ||||
| @ -320,7 +320,7 @@ | ||||
| // Comment the following line to disable PID and enable bang-bang.
 | ||||
| #define PIDTEMP | ||||
| #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | ||||
| #if ENABLED(PIDTEMP) | ||||
|   //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | ||||
|   //#define PID_DEBUG // Sends debug data to the serial port.
 | ||||
| @ -328,6 +328,8 @@ | ||||
|   //#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
 | ||||
|   //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
 | ||||
|                                   // Set/get with gcode: M301 E[extruder number, 0-2]
 | ||||
|   #define PID_FUNCTIONAL_RANGE 20 // If the temperature difference between the target temperature and the actual temperature
 | ||||
|                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
 | ||||
|   #define K1 0.95 //smoothing factor within the PID
 | ||||
| 
 | ||||
|   // Merlin Hotend: From Autotune
 | ||||
|  | ||||
| @ -288,7 +288,7 @@ | ||||
| // Comment the following line to disable PID and enable bang-bang.
 | ||||
| #define PIDTEMP | ||||
| #define BANG_MAX 70 // limits current to nozzle while in bang-bang mode; 255=full current
 | ||||
| #define PID_MAX 74 // limits current to nozzle while PID is active; 255=full current
 | ||||
| #define PID_MAX 74 // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | ||||
| #if ENABLED(PIDTEMP) | ||||
|   //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | ||||
|   //#define PID_DEBUG // Sends debug data to the serial port.
 | ||||
| @ -296,6 +296,8 @@ | ||||
|   //#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
 | ||||
|   //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
 | ||||
|                                   // Set/get with gcode: M301 E[extruder number, 0-2]
 | ||||
|   #define PID_FUNCTIONAL_RANGE 16 // If the temperature difference between the target temperature and the actual temperature
 | ||||
|                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
 | ||||
|   #define K1 0.95 //smoothing factor within the PID
 | ||||
| 
 | ||||
|   // If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
 | ||||
|  | ||||
| @ -291,7 +291,7 @@ | ||||
| // Comment the following line to disable PID and enable bang-bang.
 | ||||
| #define PIDTEMP | ||||
| #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | ||||
| #if ENABLED(PIDTEMP) | ||||
|   //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | ||||
|   //#define PID_DEBUG // Sends debug data to the serial port.
 | ||||
| @ -299,6 +299,8 @@ | ||||
|   //#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
 | ||||
|   //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
 | ||||
|                                   // Set/get with gcode: M301 E[extruder number, 0-2]
 | ||||
|   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
 | ||||
|                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
 | ||||
|   #define K1 0.95 //smoothing factor within the PID
 | ||||
| 
 | ||||
|   // Witbox
 | ||||
|  | ||||
| @ -288,7 +288,7 @@ | ||||
| // Comment the following line to disable PID and enable bang-bang.
 | ||||
| #define PIDTEMP | ||||
| #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | ||||
| #if ENABLED(PIDTEMP) | ||||
|   //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | ||||
|   //#define PID_DEBUG // Sends debug data to the serial port.
 | ||||
| @ -296,6 +296,8 @@ | ||||
|   //#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
 | ||||
|   //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
 | ||||
|                                   // Set/get with gcode: M301 E[extruder number, 0-2]
 | ||||
|   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
 | ||||
|                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
 | ||||
|   #define K1 0.95 //smoothing factor within the PID
 | ||||
| 
 | ||||
|   // If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
 | ||||
|  | ||||
| @ -288,7 +288,7 @@ | ||||
| // Comment the following line to disable PID and enable bang-bang.
 | ||||
| #define PIDTEMP | ||||
| #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | ||||
| #if ENABLED(PIDTEMP) | ||||
|   //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | ||||
|   //#define PID_DEBUG // Sends debug data to the serial port.
 | ||||
| @ -296,6 +296,8 @@ | ||||
|   //#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
 | ||||
|   //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
 | ||||
|                                   // Set/get with gcode: M301 E[extruder number, 0-2]
 | ||||
|   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
 | ||||
|                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
 | ||||
|   #define K1 0.95 //smoothing factor within the PID
 | ||||
| 
 | ||||
|   // If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
 | ||||
|  | ||||
| @ -288,7 +288,7 @@ | ||||
| // Comment the following line to disable PID and enable bang-bang.
 | ||||
| #define PIDTEMP | ||||
| #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | ||||
| #if ENABLED(PIDTEMP) | ||||
|   //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | ||||
|   //#define PID_DEBUG // Sends debug data to the serial port.
 | ||||
| @ -296,6 +296,8 @@ | ||||
|   //#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
 | ||||
|   //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
 | ||||
|                                   // Set/get with gcode: M301 E[extruder number, 0-2]
 | ||||
|   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
 | ||||
|                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
 | ||||
|   #define K1 0.95 //smoothing factor within the PID
 | ||||
| 
 | ||||
|   // If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
 | ||||
|  | ||||
| @ -288,7 +288,7 @@ | ||||
| // Comment the following line to disable PID and enable bang-bang.
 | ||||
| #define PIDTEMP | ||||
| #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | ||||
| #if ENABLED(PIDTEMP) | ||||
|   //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | ||||
|   //#define PID_DEBUG // Sends debug data to the serial port.
 | ||||
| @ -296,6 +296,8 @@ | ||||
|   //#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
 | ||||
|   //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
 | ||||
|                                   // Set/get with gcode: M301 E[extruder number, 0-2]
 | ||||
|   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
 | ||||
|                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
 | ||||
|   #define K1 0.95 //smoothing factor within the PID
 | ||||
| 
 | ||||
|   // If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
 | ||||
|  | ||||
| @ -294,7 +294,7 @@ | ||||
| // Comment the following line to disable PID and enable bang-bang.
 | ||||
| #define PIDTEMP | ||||
| #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
 | ||||
| #define PID_MAX  125 // limits current to nozzle while PID is active; 255=full current
 | ||||
| #define PID_MAX  125 // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | ||||
| #if ENABLED(PIDTEMP) | ||||
|   //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | ||||
|   //#define PID_DEBUG // Sends debug data to the serial port.
 | ||||
| @ -302,6 +302,8 @@ | ||||
|   //#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
 | ||||
|   //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
 | ||||
|                                   // Set/get with gcode: M301 E[extruder number, 0-2]
 | ||||
|   #define PID_FUNCTIONAL_RANGE 50 // If the temperature difference between the target temperature and the actual temperature
 | ||||
|                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
 | ||||
|   #define K1 0.95 //smoothing factor within the PID
 | ||||
| 
 | ||||
|   // Kossel Pro
 | ||||
|  | ||||
| @ -281,7 +281,7 @@ | ||||
| // Comment the following line to disable PID and enable bang-bang.
 | ||||
| #define PIDTEMP | ||||
| #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | ||||
| #if ENABLED(PIDTEMP) | ||||
|   //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | ||||
|   //#define PID_DEBUG // Sends debug data to the serial port.
 | ||||
| @ -289,6 +289,8 @@ | ||||
|   //#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
 | ||||
|   //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
 | ||||
|                                   // Set/get with gcode: M301 E[extruder number, 0-2]
 | ||||
|   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
 | ||||
|                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
 | ||||
|   #define K1 0.95 //smoothing factor within the PID
 | ||||
| 
 | ||||
|   // If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
 | ||||
|  | ||||
| @ -288,7 +288,7 @@ | ||||
| // Comment the following line to disable PID and enable bang-bang.
 | ||||
| #define PIDTEMP | ||||
| #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | ||||
| #if ENABLED(PIDTEMP) | ||||
|   //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | ||||
|   //#define PID_DEBUG // Sends debug data to the serial port.
 | ||||
| @ -296,6 +296,8 @@ | ||||
|   //#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
 | ||||
|   //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
 | ||||
|                                   // Set/get with gcode: M301 E[extruder number, 0-2]
 | ||||
|   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
 | ||||
|                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
 | ||||
|   #define K1 0.95 //smoothing factor within the PID
 | ||||
| 
 | ||||
|   // If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
 | ||||
|  | ||||
| @ -288,7 +288,7 @@ | ||||
| // Comment the following line to disable PID and enable bang-bang.
 | ||||
| #define PIDTEMP | ||||
| #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active; 255=full current
 | ||||
| #define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
 | ||||
| #if ENABLED(PIDTEMP) | ||||
|   //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
 | ||||
|   //#define PID_DEBUG // Sends debug data to the serial port.
 | ||||
| @ -296,6 +296,8 @@ | ||||
|   //#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
 | ||||
|   //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
 | ||||
|                                   // Set/get with gcode: M301 E[extruder number, 0-2]
 | ||||
|   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
 | ||||
|                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
 | ||||
|   #define K1 0.95 //smoothing factor within the PID
 | ||||
| 
 | ||||
|   // If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
 | ||||
|  | ||||
| @ -137,6 +137,7 @@ volatile bool Temperature::temp_meas_ready = false; | ||||
|   #endif | ||||
| 
 | ||||
|   float Temperature::pid_error[HOTENDS]; | ||||
|   bool Temperature::pid_reset[HOTENDS]; | ||||
| #endif | ||||
| 
 | ||||
| #if ENABLED(PIDTEMPBED) | ||||
| @ -194,6 +195,7 @@ uint8_t Temperature::soft_pwm[HOTENDS]; | ||||
| #endif | ||||
| 
 | ||||
| #if HAS_PID_HEATING | ||||
| 
 | ||||
|   void Temperature::PID_autotune(float temp, int hotend, int ncycles, bool set_result/*=false*/) { | ||||
|     float input = 0.0; | ||||
|     int cycles = 0; | ||||
| @ -450,6 +452,7 @@ int Temperature::getHeaterPower(int heater) { | ||||
| } | ||||
| 
 | ||||
| #if HAS_AUTO_FAN | ||||
| 
 | ||||
|   void Temperature::checkExtruderAutoFans() { | ||||
|     const int8_t fanPin[] = { EXTRUDER_0_AUTO_FAN_PIN, EXTRUDER_1_AUTO_FAN_PIN, EXTRUDER_2_AUTO_FAN_PIN, EXTRUDER_3_AUTO_FAN_PIN }; | ||||
|     const int fanBit[] = { | ||||
| @ -532,17 +535,23 @@ float Temperature::get_pid_output(int e) { | ||||
|   #endif | ||||
|   float pid_output; | ||||
|   #if ENABLED(PIDTEMP) | ||||
|     #if ENABLED(PID_OPENLOOP) | ||||
|       pid_output = constrain(target_temperature[HOTEND_INDEX], 0, PID_MAX); | ||||
|     #else | ||||
|     #if DISABLED(PID_OPENLOOP) | ||||
|       pid_error[HOTEND_INDEX] = target_temperature[HOTEND_INDEX] - current_temperature[HOTEND_INDEX]; | ||||
|       dTerm[HOTEND_INDEX] = K2 * PID_PARAM(Kd, HOTEND_INDEX) * (current_temperature[HOTEND_INDEX] - temp_dState[HOTEND_INDEX]) + K1 * dTerm[HOTEND_INDEX]; | ||||
|       temp_dState[HOTEND_INDEX] = current_temperature[HOTEND_INDEX]; | ||||
|       if (target_temperature[HOTEND_INDEX] == 0) { | ||||
|       if (pid_error[HOTEND_INDEX] > PID_FUNCTIONAL_RANGE) { | ||||
|         pid_output = BANG_MAX; | ||||
|         pid_reset[HOTEND_INDEX] = true; | ||||
|       } | ||||
|       else if (pid_error[HOTEND_INDEX] < -(PID_FUNCTIONAL_RANGE) || target_temperature[HOTEND_INDEX] == 0) { | ||||
|         pid_output = 0; | ||||
|         temp_iState[HOTEND_INDEX] = 0.0; | ||||
|         pid_reset[HOTEND_INDEX] = true; | ||||
|       } | ||||
|       else { | ||||
|         if (pid_reset[HOTEND_INDEX]) { | ||||
|           temp_iState[HOTEND_INDEX] = 0.0; | ||||
|           pid_reset[HOTEND_INDEX] = false; | ||||
|         } | ||||
|         pTerm[HOTEND_INDEX] = PID_PARAM(Kp, HOTEND_INDEX) * pid_error[HOTEND_INDEX]; | ||||
|         temp_iState[HOTEND_INDEX] += pid_error[HOTEND_INDEX]; | ||||
|         iTerm[HOTEND_INDEX] = PID_PARAM(Ki, HOTEND_INDEX) * temp_iState[HOTEND_INDEX]; | ||||
| @ -575,6 +584,8 @@ float Temperature::get_pid_output(int e) { | ||||
|           pid_output = 0; | ||||
|         } | ||||
|       } | ||||
|     #else | ||||
|       pid_output = constrain(target_temperature[HOTEND_INDEX], 0, PID_MAX); | ||||
|     #endif //PID_OPENLOOP
 | ||||
| 
 | ||||
|     #if ENABLED(PID_DEBUG) | ||||
|  | ||||
| @ -158,6 +158,7 @@ class Temperature { | ||||
|       #endif | ||||
| 
 | ||||
|       static float pid_error[HOTENDS]; | ||||
|       static bool pid_reset[HOTENDS]; | ||||
|     #endif | ||||
| 
 | ||||
|     #if ENABLED(PIDTEMPBED) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user