Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🚧 WIP: Add HEATER_LOWER_TEMP 50 #4815

Draft
wants to merge 2 commits into
base: MK3
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions Firmware/Marlin_main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9877,7 +9877,11 @@ void long_pause() //long pause print

// Stop heaters
heating_status = HeatingStatus::NO_HEATING;
#ifdef HEATER_LOWER_TEMP
setTargetHotend(target_temperature[active_extruder]- HEATER_LOWER_TEMP);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we need some protection here to cover edges cases. This can produce negative values: HEATER_LOWER_TEMP > target_temperature[active_extruder]

What happens if we are coming from a temperature error? ThermalStop() can sometimes pause prints.

Copy link
Collaborator Author

@3d-gussner 3d-gussner Nov 23, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very good point, thanks. Fan check, uvlo and ThermalStop call lcd_pause_print --> LcdCommands::LongPause -> long_pause`

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might want to subtract only if the target temperature is >= HEATER_LOWER_TEMP. Otherwise you might underflow the target temperature in even more scenarios where the target is a small number

#else
setTargetHotend(0);
#endif //HEATER_LOWER_TEMP

// Lift z
raise_z(pause_position[Z_AXIS]);
Expand Down
3 changes: 3 additions & 0 deletions Firmware/variants/MK25-RAMBo10a.h
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,9 @@
#endif
#define BED_MAXTEMP 125

//Lowertemp
#define HEATER_LOWER_TEMP 50 //lower hotend temperature by 50°C
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this new setting should be off by default so that we do not change the default behavior. Users who know what they are doing can then change this setting on their own in my opinion.


I feel this description could be more detailed. This doesn't really tell me what the setting does, and I would have look at the source code to understand. They way I see it, the comment/description here is basically our documentation.

Suggested description:

Uncomment to change the maximum allowed temperature drop while a print is paused. The default behavior sets the target temperature to 0°C.
Example: HEATER_LOWER_TEMP = 10 and target temperature is 215°C when the print was paused. The target temperature will then be set to 205°C instead of 0°C.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also agree with off by default. Was a bit confused about the feature until I read the source code for the PR (recall discussion from last meeting). I like the description provided by @gudnimg 👍


#if defined(E3D_PT100_EXTRUDER_WITH_AMP) || defined(E3D_PT100_EXTRUDER_NO_AMP)
// Define PID constants for extruder with PT100
#define DEFAULT_Kp 21.70
Expand Down
3 changes: 3 additions & 0 deletions Firmware/variants/MK25-RAMBo13a.h
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,9 @@
#endif
#define BED_MAXTEMP 125

//Lowertemp
#define HEATER_LOWER_TEMP 50 //lower hotend temperature by 50°C

#if defined(E3D_PT100_EXTRUDER_WITH_AMP) || defined(E3D_PT100_EXTRUDER_NO_AMP)
// Define PID constants for extruder with PT100
#define DEFAULT_Kp 21.70
Expand Down
3 changes: 3 additions & 0 deletions Firmware/variants/MK25S-RAMBo10a.h
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,9 @@
#endif
#define BED_MAXTEMP 125

//Lowertemp
#define HEATER_LOWER_TEMP 50 //lower hotend temperature by 50°C

#if defined(E3D_PT100_EXTRUDER_WITH_AMP) || defined(E3D_PT100_EXTRUDER_NO_AMP)
// Define PID constants for extruder with PT100
#define DEFAULT_Kp 21.70
Expand Down
3 changes: 3 additions & 0 deletions Firmware/variants/MK25S-RAMBo13a.h
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,9 @@
#endif
#define BED_MAXTEMP 125

//Lowertemp
#define HEATER_LOWER_TEMP 50 //lower hotend temperature by 50°C

#if defined(E3D_PT100_EXTRUDER_WITH_AMP) || defined(E3D_PT100_EXTRUDER_NO_AMP)
// Define PID constants for extruder with PT100
#define DEFAULT_Kp 21.70
Expand Down
3 changes: 3 additions & 0 deletions Firmware/variants/MK3-E3DREVO.h
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,9 @@
#define BED_MAXTEMP 125
#define AMBIENT_MAXTEMP 80

//Lowertemp
#define HEATER_LOWER_TEMP 50 //lower hotend temperature by 50°C

#if defined(E3D_PT100_EXTRUDER_WITH_AMP) || defined(E3D_PT100_EXTRUDER_NO_AMP)
// Define PID constants for extruder with PT100
#define DEFAULT_Kp 21.70
Expand Down
3 changes: 3 additions & 0 deletions Firmware/variants/MK3-E3DREVO_HF_60W.h
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,9 @@
#define BED_MAXTEMP 125
#define AMBIENT_MAXTEMP 80

//Lowertemp
#define HEATER_LOWER_TEMP 50 //lower hotend temperature by 50°C

#if defined(E3D_PT100_EXTRUDER_WITH_AMP) || defined(E3D_PT100_EXTRUDER_NO_AMP)
// Define PID constants for extruder with PT100
#define DEFAULT_Kp 21.70
Expand Down
3 changes: 3 additions & 0 deletions Firmware/variants/MK3.h
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,9 @@
#define BED_MAXTEMP 125
#define AMBIENT_MAXTEMP 80

//Lowertemp
#define HEATER_LOWER_TEMP 50 //lower hotend temperature by 50°C

#if defined(E3D_PT100_EXTRUDER_WITH_AMP) || defined(E3D_PT100_EXTRUDER_NO_AMP)
// Define PID constants for extruder with PT100
#define DEFAULT_Kp 21.70
Expand Down
3 changes: 3 additions & 0 deletions Firmware/variants/MK3S-E3DREVO.h
Original file line number Diff line number Diff line change
Expand Up @@ -326,6 +326,9 @@
#define BED_MAXTEMP 125
#define AMBIENT_MAXTEMP 80

//Lowertemp
#define HEATER_LOWER_TEMP 50 //lower hotend temperature by 50°C

#if defined(E3D_PT100_EXTRUDER_WITH_AMP) || defined(E3D_PT100_EXTRUDER_NO_AMP)
// Define PID constants for extruder with PT100
#define DEFAULT_Kp 21.70
Expand Down
3 changes: 3 additions & 0 deletions Firmware/variants/MK3S-E3DREVO_HF_60W.h
Original file line number Diff line number Diff line change
Expand Up @@ -326,6 +326,9 @@
#define BED_MAXTEMP 125
#define AMBIENT_MAXTEMP 80

//Lowertemp
#define HEATER_LOWER_TEMP 50 //lower hotend temperature by 50°C

#if defined(E3D_PT100_EXTRUDER_WITH_AMP) || defined(E3D_PT100_EXTRUDER_NO_AMP)
// Define PID constants for extruder with PT100
#define DEFAULT_Kp 21.70
Expand Down
3 changes: 3 additions & 0 deletions Firmware/variants/MK3S.h
Original file line number Diff line number Diff line change
Expand Up @@ -326,6 +326,9 @@
#define BED_MAXTEMP 125
#define AMBIENT_MAXTEMP 80

//Lowertemp
#define HEATER_LOWER_TEMP 50 //lower hotend temperature by 50°C

#if defined(E3D_PT100_EXTRUDER_WITH_AMP) || defined(E3D_PT100_EXTRUDER_NO_AMP)
// Define PID constants for extruder with PT100
#define DEFAULT_Kp 21.70
Expand Down
3 changes: 3 additions & 0 deletions Firmware/variants/obsolete/1_75mm_MK2-RAMBo10a-E3Dv6full.h
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,9 @@ EXTRUDER SETTINGS
#endif
#define BED_MAXTEMP 150

//Lowertemp
#define HEATER_LOWER_TEMP 50 //lower hotend temperature by 50°C

#if defined(E3D_PT100_EXTRUDER_WITH_AMP) || defined(E3D_PT100_EXTRUDER_NO_AMP)
// Define PID constants for extruder with PT100
#define DEFAULT_Kp 21.70
Expand Down
3 changes: 3 additions & 0 deletions Firmware/variants/obsolete/1_75mm_MK2-RAMBo13a-E3Dv6full.h
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,9 @@ EXTRUDER SETTINGS
#endif
#define BED_MAXTEMP 150

//Lowertemp
#define HEATER_LOWER_TEMP 50 //lower hotend temperature by 50°C

#if defined(E3D_PT100_EXTRUDER_WITH_AMP) || defined(E3D_PT100_EXTRUDER_NO_AMP)
// Define PID constants for extruder with PT100
#define DEFAULT_Kp 21.70
Expand Down
Loading