Combine thermal runaway and watch-period
- Make thermal protection for all hotends and/or bed into simple switches - Now enable `WATCH_TEMP_PERIOD` when `THERMAL_PROTECTION_HOTENDS` is enabled - Move detailed thermal parameters to `Configuration_adv.h` - Add sanity checks to warn about old configurations - Change `WATCH_TEMP_PERIOD` to seconds instead of milliseconds
This commit is contained in:
		| @@ -15,16 +15,37 @@ | ||||
| #define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control | ||||
|  | ||||
| /** | ||||
|  * Heating Sanity Check | ||||
|  * | ||||
|  * Whenever an M104 or M109 increases the target temperature this will wait for WATCH_TEMP_PERIOD milliseconds, | ||||
|  * and if the temperature hasn't increased by WATCH_TEMP_INCREASE degrees, the machine is halted, requiring a | ||||
|  * hard reset. This test restarts with any M104/M109, but only if the current temperature is below the target | ||||
|  * by at least 2 * WATCH_TEMP_INCREASE degrees celsius. | ||||
|  * Thermal Protection parameters | ||||
|  */ | ||||
| #define WATCH_TEMP_PERIOD 16000 // 16 seconds | ||||
| #define WATCH_TEMP_INCREASE 4  // Heat up at least 4 degrees in 16 seconds | ||||
| #ifdef THERMAL_PROTECTION_HOTENDS | ||||
|   #define THERMAL_PROTECTION_PERIOD 40        // Seconds | ||||
|   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius | ||||
|  | ||||
|   /** | ||||
|    * Whenever an M104 or M109 increases the target temperature the firmware will wait for the | ||||
|    * WATCH_TEMP_PERIOD to transpire, and if the temperature hasn't increased by WATCH_TEMP_INCREASE | ||||
|    * degrees, the machine is halted, requiring a hard reset. This test restarts with any M104/M109, | ||||
|    * but only if the current temperature is below the target by at least 2 * WATCH_TEMP_INCREASE degrees. | ||||
|    */ | ||||
|   #define WATCH_TEMP_PERIOD 16                        // Seconds | ||||
|   #define WATCH_TEMP_INCREASE 4                       // Degrees Celsius | ||||
| #endif | ||||
|  | ||||
| #ifdef THERMAL_PROTECTION_BED | ||||
|   #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds | ||||
|   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Automatic Temperature: | ||||
|  * The hotend target temperature is calculated by all the buffered lines of gcode. | ||||
|  * The maximum buffered steps/sec of the extruder motor is called "se". | ||||
|  * Start autotemp mode with M109 S<mintemp> B<maxtemp> F<factor> | ||||
|  * The target temperature is set to mintemp+factor*se[steps/sec] and is limited by | ||||
|  * mintemp and maxtemp. Turn this off by excuting M109 without F* | ||||
|  * Also, if the temperature is set to a value below mintemp, it will not be changed by autotemp. | ||||
|  * On an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode | ||||
|  */ | ||||
| #ifdef PIDTEMP | ||||
|   // this adds an experimental additional term to the heating power, proportional to the extrusion speed. | ||||
|   // if Kc is chosen well, the additional required power due to increased melting should be compensated. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user