Unnecessary thermal runaway the software should automatically avoid
 

Unnecessary thermal runaway the software should automatically avoid  

  RSS
Roger
(@roger-3)
Active Member

I keep my printer in a cool place, and at this time of year it's hovering around 16C which is when it starts to complain about the minimum temperature. I don't know if you can alter that, but it would be good to be able to set it lower. It still prints just fine at 16C and I'm sure it would do the same much lower.

However, I do have a problem with Thermal Runaway at around 16C, and this is due to the fan going flat out at 255. Having watched this I can see what's happening. The fan is going so fast that the nozzle temperature plummets to the point where the error occurs. Now obviously you can change this in the printer settings or in the slicer, but why can't the printer see that the temperature is significantly dropping and turn down the fan? I really don't see why this should rely on the operator anticipating this issue and dealing with it when the software could easily stop it from happening.

 

 

Posted : 23/04/2021 10:23 am
Erik
 Erik
(@erik-3)
Estimable Member

I did some experimenting with this a while back because I saw my nozzle would drop up to 10º when the fan came on. I wrote some gcode that would see that I'm printing in PLA, and that the fan needs to go to 255 (100%) on a certain layer, but instead gradually turn the fan up. What I found is that the blower fans used for cooling are not anywhere near linear in their air flow vs speed setting. They blow a lot of air at a very low speed, and only get a little stronger as the fan ramps up. Because of this, even setting the fan to start at 80/255 (31%) it would cool the nozzle almost the same amount. It just wasn't worth it. Since it is a PWM fan you could realistically set the fan to a really slow speed and gradually turn it up, but I'm not going to sit down and figure out the output curve on these generic fans to get it right.

I should note that while I don't print in a cold environment, a workaround for my nozzle temp drop was to adjust my skirt settings to allow the nozzle to heat back up before going to the print.

This post was modified 2 months ago by Erik
Posted : 23/04/2021 2:11 pm
Roger
(@roger-3)
Active Member

I think all it needs is to have the software monitor that the nozzle temperature is falling and have the fan speed automatically reduce. It can only take half a dozen lines of code to fix this problem.

Posted : 23/04/2021 2:15 pm
Erik
 Erik
(@erik-3)
Estimable Member

Have you tried doing a PID calibration while it's cold out? It could help.

Posted : 23/04/2021 2:39 pm
bobstro
(@bobstro)
Illustrious Member

Double check the fan duct orientation. An alternate duct design might help. Consider adding a silicone sock.

The Mk3 uses an 8 bit controller. There's not a lot of available processor capacity for multitasking. Any such "trivial" checks would have to be added to the gcode command queue and would slow things down whether needed or not. You could probably write an OctoPrint plugin to do this if you feel strongly about it.

My notes and disclaimers on 3D printing and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan...
Posted : 23/04/2021 2:39 pm
karl-herbert
(@karl-herbert)
Illustrious Member

@roger-3

I once took the time to perform various measurements. The air volume and PWM curves are not parallel and linear.

Maybe you can reduce the problems by using a silicone sock.

Statt zu klagen, dass wir nicht alles haben, was wir wollen, sollten wir lieber dankbar sein, dass wir nicht alles bekommen, was wir verdienen....
Posted : 23/04/2021 4:55 pm
Roger
(@roger-3)
Active Member
Posted by: @erik-3

Have you tried doing a PID calibration while it's cold out? It could help.

I haven't but I don't think that would help. The heater simply isn't powerful enough to maintain the temperature in a howling gale. When I turned the fan way down, it still took over a minute for the temperature to recover.

Posted : 23/04/2021 5:32 pm
Roger
(@roger-3)
Active Member
Posted by: @bobstro

Double check the fan duct orientation. An alternate duct design might help. Consider adding a silicone sock.

The Mk3 uses an 8 bit controller. There's not a lot of available processor capacity for multitasking. Any such "trivial" checks would have to be added to the gcode command queue and would slow things down whether needed or not. You could probably write an OctoPrint plugin to do this if you feel strongly about it.

I guess a Silicone sock might help, but I'll probably just turn the fan down.

I'm very well aquainted with  microcontrollers, and  you really are looking at just a few instructions, say once a minute to spot this is happening. I'm sure this would be easy to implement. I'm an Electronics Engineer and Software Developer as well as a Mechanical Engineer with 40 years experience. I have a pretty good handle on what can and can't be done.

Posted : 23/04/2021 5:36 pm
Swiss_Cheese
(@swiss_cheese)
Prominent Member

@roger-3

 

You might also consider an enclosure during the colder times, this would elevate the temps around the printer as it warms up and lessen the effects of the fan ramping up, it's my opinion that automation of the type your suggesting would create more problems then it would solve, it has long been our part as users to learn and exercise our knowledge to ensure a proper print. In this case we have several valid options to correct the problem.

G-code adjustments, PINDA adjustment, silicone sock, and enclosure, I'm sure there are more but they all involve you doing them, and I think this is best.

 

Regards

 

Swiss_Cheese

The Filament Whisperer...
Posted : 23/04/2021 6:34 pm
bobstro
(@bobstro)
Illustrious Member

You can make a feature request over on the Prusa GitHub pages, or take a stab at it yourself. Based on your response, it might be something simple to implement that you could contribute.  

My notes and disclaimers on 3D printing and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan...
Posted : 23/04/2021 6:37 pm
Roger
(@roger-3)
Active Member
Posted by: @swiss_cheese

@roger-3

 

You might also consider an enclosure during the colder times, this would elevate the temps around the printer as it warms up and lessen the effects of the fan ramping up, it's my opinion that automation of the type your suggesting would create more problems then it would solve, it has long been our part as users to learn and exercise our knowledge to ensure a proper print. In this case we have several valid options to correct the problem.

G-code adjustments, PINDA adjustment, silicone sock, and enclosure, I'm sure there are more but they all involve you doing them, and I think this is best.

 

Regards

 

Swiss_Cheese

Agreed an enclosure is a good idea, and one that I've already started making. However I disagree that manual intervention is a better solution than a simple one that steps in to prevent a failed print.

Posted : 23/04/2021 6:51 pm
Roger
(@roger-3)
Active Member
Posted by: @bobstro

You can make a feature request over on the Prusa GitHub pages, or take a stab at it yourself. Based on your response, it might be something simple to implement that you could contribute.  

I'm sure I could, but I'm not inclined to be a development Engineer for a product that I've bought. That's the manufacturer's responsibility.

Hopefully they read these posts and will pick up on it.

Posted : 23/04/2021 6:54 pm
karl-herbert
(@karl-herbert)
Illustrious Member

Prusa writes the following about this:

/*================== Thermal Runaway Protection ==============================
This is a feature to protect your printer from burn up in flames if it has
a thermistor coming off place (this happened to a friend of mine recently and
motivated me writing this feature).

The issue: If a thermistor come off, it will read a lower temperature than actual.
The system will turn the heater on forever, burning up the filament and anything
else around.

After the temperature reaches the target for the first time, this feature will
start measuring for how long the current temperature stays below the target
minus _HYSTERESIS (set_temperature - THERMAL_RUNAWAY_PROTECTION_HYSTERESIS).

If it stays longer than _PERIOD, it means the thermistor temperature
cannot catch up with the target, so something *may be* wrong. Then, to be on the
safe side, the system will he halt.

Bear in mind the count down will just start AFTER the first time the
thermistor temperature is over the target, so you will have no problem if
your extruder heater takes 2 minutes to hit the target on heating.

*/
// If you want to enable this feature for all your extruder heaters,
// uncomment the 2 defines below:

// Parameters for all extruder heaters
//#define THERMAL_RUNAWAY_PROTECTION_PERIOD 40 //in seconds
//#define THERMAL_RUNAWAY_PROTECTION_HYSTERESIS 4 // in degree Celsius

// If you want to enable this feature for your bed heater,
// uncomment the 2 defines below:

// Parameters for the bed heater
//#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds
//#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius
//===========================================================================

You have the possibility to adjust this on your own responsibility in the firmware source code.

Statt zu klagen, dass wir nicht alles haben, was wir wollen, sollten wir lieber dankbar sein, dass wir nicht alles bekommen, was wir verdienen....
Posted : 23/04/2021 9:58 pm
Roger
(@roger-3)
Active Member
Posted by: @karl-herbert

Prusa writes the following about this:

/*================== Thermal Runaway Protection ==============================
This is a feature to protect your printer from burn up in flames if it has
a thermistor coming off place (this happened to a friend of mine recently and
motivated me writing this feature).

The issue: If a thermistor come off, it will read a lower temperature than actual.
The system will turn the heater on forever, burning up the filament and anything
else around.

After the temperature reaches the target for the first time, this feature will
start measuring for how long the current temperature stays below the target
minus _HYSTERESIS (set_temperature - THERMAL_RUNAWAY_PROTECTION_HYSTERESIS).

If it stays longer than _PERIOD, it means the thermistor temperature
cannot catch up with the target, so something *may be* wrong. Then, to be on the
safe side, the system will he halt.

Bear in mind the count down will just start AFTER the first time the
thermistor temperature is over the target, so you will have no problem if
your extruder heater takes 2 minutes to hit the target on heating.

*/
// If you want to enable this feature for all your extruder heaters,
// uncomment the 2 defines below:

// Parameters for all extruder heaters
//#define THERMAL_RUNAWAY_PROTECTION_PERIOD 40 //in seconds
//#define THERMAL_RUNAWAY_PROTECTION_HYSTERESIS 4 // in degree Celsius

// If you want to enable this feature for your bed heater,
// uncomment the 2 defines below:

// Parameters for the bed heater
//#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds
//#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius
//===========================================================================

You have the possibility to adjust this on your own responsibility in the firmware source code.

I appreciate the potential for a genuine thermal runaway. However, relaxing the levels isn't really the answer for the reasons you state. Rather than flagging a fault when the threshold is reached, all they have to do is to turn down the fan and see if the temperature recovers. If it does, the cause is the fan and not the feedback. This is simple enough to implement. The code is already checking to see if the limit is being reached, so the overhead would be tiny.

Posted : 23/04/2021 10:12 pm
karl-herbert
(@karl-herbert)
Illustrious Member

@roger-3

This is certainly not difficult to implement, so as a previous speaker mentioned, I would forward this idea or suggestion to the Prusa development team. The product also grows partly from the suggestions for improvement and feedback from users. Maybe a Prusa team member will also read this post - we'll see.

https://github.com/prusa3d/Prusa-Firmware/pulls

 

Statt zu klagen, dass wir nicht alles haben, was wir wollen, sollten wir lieber dankbar sein, dass wir nicht alles bekommen, was wir verdienen....
Posted : 23/04/2021 11:39 pm
Swiss_Cheese
(@swiss_cheese)
Prominent Member

Well in case Prusa dev,s read this, Oh god, please do not implement this feature, and if for some reason you do decide to, please leave myself and others a way to turn it off.

 

Amen,

 

Swiss_Cheese

The Filament Whisperer...
Posted : 23/04/2021 11:45 pm
Roger
(@roger-3)
Active Member
Posted by: @swiss_cheese

Well in case Prusa dev,s read this, Oh god, please do not implement this feature, and if for some reason you do decide to, please leave myself and others a way to turn it off.

 

Amen,

 

Swiss_Cheese

If you think this is somehow dangerous, you haven't grasped what I was suggesting. Please read it again. It wouldn't prevent the system from shutting down in the event of a genuine runaway. All it does is check whether the fan is the cause. If turning down the fan doesn't allow the temperature to recover within say one minute, it shuts down anyway.

Posted : 24/04/2021 8:29 am
Share:

Please Login or Register