Prusa-Firmware
Prusa-Firmware copied to clipboard
[FEATURE REQUEST] Min temp Error Correction For Cold Climates
In colder climates the printer (MK3) powers up and goes to error min bed temp. After heating the bed with a hot air gun it clears to hot end min temp and after a little heating so does the hot end. It's then all good after a restart.
This is a work around that I have to do every day when I turn on the printers and it's becoming somewhat laborious as overnight my building temperature drops well below the 16c threshold for errors, hence the problem every morning.
I know the threshold is there to detect a sensor failure of either hot end or bed but, on start up can this not run a different parameter?? Something along the lines of;
If hot end and bed values are within 2-3c of each other then allow preheat to commence and once each value is over 16c revert to original safety code.
The fact that the printer locks when the min temp error appears eliminates the possibility to select a preheat to get the machine warming slightly.
It's a small niggle but massively common in colder countries and i believe requires sorting as heating a brilliant printer with a heat gun to get it working isn't ideal.
Maybe you could detect the ambient temperature with the ambient thermistor and activate a corrective measure?
The printer is about to leave my workshop via a window..... Why is a fantastic printer let down by firmware?? The solution is a small change... come on Prusa as I'm sure you can tell I'm getting rather pissed off at having to heat the printers every morning before they get to work.
I am seeing this problem with OctoPrint. My printer is in an unheated garage and at night I can hit the low bed temperature warning which cascades into an octoprint disconnection. It seems the low temperature warning is active just when being monitored. Is the fix to only have the warning when actively heating and the heating isn't making progress? Is the point of the monitor to notice an attempt to heat and failing todo so? Or is it some sort of condensation monitor.
Here is someone with the similar octoprint issue from the prusa forums. https://forum.prusaprinters.org/forum/original-prusa-i3-mk3s-mk3-general-discussion-announcements-and-releases/octoprint-issues-and-tips/paged/2/#post-59598
The solution to this is a very simple code change. Having the min temp active only whilst heating would make little difference as you will still have to heat the bed by external means before using the printers own heater.
I've got 5 Mk3's that fail every morning and all get one step closer to being replaced by another brand. I don't like that idea as the Prusa is such a great all round printer but support is close to F... all.
The solution to this is a very simple code change. Having the min temp active only whilst heating would make little difference as you will still have to heat the bed by external means before using the printers own heater.
I've got 5 Mk3's that fail every morning and all get one step closer to being replaced by another brand. I don't like that idea as the Prusa is such a great all round printer but support is close to F... all.
At 5 you have a significant investment to replace. Since the firmware is open source I would suggest you fork the firmware and make the change yourself or pay someone todo it. It would likely be cheaper than replacing 5 printers.
Reviewing the code there is already a debug build parameter to disable this check see https://github.com/prusa3d/Prusa-Firmware/blob/10de97c04296540037837dd4f3dc47662a426ff2/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h#L180
You just need a build with this bit of code uncommented out. Or a build that doesn't hard code these values and allows them to be set at run time. From reading the code comments my guess is the min temp is the lowest end the thermistor can detect. I suspect this error isn't that the temp is too low to print rather it is displaying a possible thermistor failure. I guess the assumption is that if the system is on its heating. Which isn't the case for octoprint which is just monitoring the bed temps. As for the cold morning startup a better fix than just disabling the warnings might be to delay it a fixed amount of time after the bed heat has started. Allowing the bed to sometime to reach the operating zone of the thermistor before entering a disabled a failed state. If a bed is applied some heat over a fixed time even with a failed thermistor it shouldn't be in a run away heating situation. Someone would need to 'reset' the heating period to trigger more heat, eg constantly cycling the power. Of a hardware fix of thermistors with a wider (and lower) operating temperature range would also fix the issue.
I just need an extra ~60 seconds before the timeout, so it has time to heat to above the mintemp threshold. I end up starting the print or pre-heating, waiting for the mintemp error, then I press reset and then for the second time it'll be fine because it has already heated a bit from the first attempt.
I agree with that. The Prusa Mk3s printer itself is a very good machine. But to use hairdryer for the printer and not for the hair isn't very comfortable and also isn't safe. Just would be nice to get like additional mode inthe settings to make printer never go lower like 18oC degrees would be perfect. And everytime it will preheat if it will go lower than 14oC. So we wouldn't get a mintemp error. If you want no heating at all with this mode, just turn off the printer. Will wait for the news.
Hello, thank you for the comment, sorry for intervening so late on this thread. Currently, the temperature threshold, on MK3-family, for Mintemp to occur, is 10 °C, 50 °F, for both hotend and heatbed. Was is still problematic?
Unfortunately, regarding MK2-family, the threshold are higher due to different hardware design of the motherboard (hotend thermistor - temperatures below 22 °C, 71.6 °F, heatbed thermistor - temperatures below 15 °C, 59 °F).
In case of more feedback, feel free to let me know here, it might be not possible but I'll certainly review this aspect in more detail with devs to see if there might be any possibilities.
Alessandro Pantaleo Prusa Research
Hi Alessandro,
Thanks for your response. The 10c min temp has made it easier to work with but in the U.K. as from November onwards my workshop is below 10c on a morning. Ideally the mon temp would be a float value as long as the hot end and bed temps were equal on power up. I understand the methodology of the sensor failure detection but if the startup code was an IF hot end && bed temp are = then heat to preset temp.
Regards
Darren Wandless
On 26 Oct 2022, at 4:57 pm, Prusa-Support @.***> wrote:
Hello, thank you for the comment, sorry for intervening so late on this thread. Currently, the temperature threshold, on MK3-family, for Mintemp to occur, is 10 °C, 50 °F, for both hotend and heatbed. Was is still problematic?
Unfortunately, regarding MK2-family, the threshold are higher due to different hardware design of the motherboard (hotend thermistor - temperatures below 22 °C, 71.6 °F, heatbed thermistor - temperatures below 15 °C, 59 °F).
In case of more feedback, feel free to let me know here, it might be not possible but I'll certainly review this aspect in more detail with devs to see if there might be any possibilities.
Alessandro Pantaleo Prusa Research
— Reply to this email directly, view it on GitHubhttps://github.com/prusa3d/Prusa-Firmware/issues/3053#issuecomment-1292263522, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ATDFEHV5EQPQZC5NAJZAKD3WFFIEVANCNFSM4YVE7BWA. You are receiving this because you authored the thread.Message ID: @.***>
Now that there's the new beta/RC features to improve detection of anomalous temperature circumstances, could this issue be addressed? My printer's also in an unheated garage, with no room to add a heated enclosure for it, and it's really frustrating to need to use a hairdryer with it or hold my hands on the nozzle and heatebed to heat it up before I can start printing.
Why can't the firmware have some logic to turn on the heaters briefly if in a mintemp circumstance when the printer has been inactive, and measure whether the temperature increases as it should, and only trigger the error if no heating is detected?
Can you be more precise regarding the ambient temperature where this is happening? Also if that is triggering hotend or bed mintemp, or both?
I think there are a couple of ways to improve this.
For example, using a fixed safe power output at low temperatures for warm-up instead of PID regulation could be one strategy, although a slow one.
Just to clarify, and as probably already written in other issues, the main issues is that the hotend thermistor is at the edge of the range at such temperatures. It's really designed to work at 200C, and will have higher error margins at either edge (low or high), and stop working close to zero. Even the new temperature control can't really work if there is no stable reading. At that point you have to make guesses to check if the temperature is just low or the thermistor is faulty. The current guesses are perhaps too much on the edge of fail-safe.
I've had it happen in rooms as high as 16°C, which isn't even very cold. I don't think we need to overthink it and we've basically workshopped the answer:
Best Resolution: Watch the increase in temperature as a difference over time, instead of a static threshold after a certain amount of time. Ie. If the temperature has increased by more than 2 or 3 degrees in the past minute and appears to continue increasing steadily, we can assume it's fine and it's just taking a longer time to warm up due to the ambient temperature.
Fine Resolution: Compare the temperature of the bed to the nozzle. If they are both increasing, assume it's fine.
Acceptable Resolution: Increase the time before it times out. That's it, just give it another minute or two to get up to temperature before triggering the failsafe.
Anyway, until this is changed, we all just wait for the error, then restart the printer and it's fine the second time (because it has pre-heated a bit). It's not the end of the world, jus super annoying.
Yep, @wavexx I agree with @IntegersOfK about this, accept that for my case the "Acceptable" option likely wouldn't help much, as I use the printer with octoprint, so it's usually always already on and has long-since triggered the mintemp errors.
To answer your specific question, it tends to happen for both the hotend and bed mintemp, and the most recent time it happened the ambient temperature was around 10°C, though the environment is certainly sometimes somewhat colder than that, and it likely has happened in somewhat warmer environments as well.
In this case, the thermistor does accurately represent the temperature, but is just not trusted by the system due to the fact that a failed thermistor tends to give the same sort of range (or that's my understanding at least). To me the solution seems rather obvious and simple, enabling the printer to try to heat up the nozzle and bed (rather than just refusing to due to the error), and then only throwing the error if it doesn't detect the temperature rising at the expected rate, which it would unless the thermistor truly has failed or disconnected.
Best Resolution: Watch the increase in temperature as a difference over time, instead of a static threshold after a certain amount of time. Ie. If the temperature has increased by more than 2 or 3 degrees in the past minute and appears to continue increasing steadily, we can assume it's fine and it's just taking a longer time to warm up due to the ambient temperature.
A problem with the slow increase in temperature is that it can be due to a busted heater or a degraded thermistor (see the "degraded thermistor sim" in https://github.com/prusa3d/Prusa-Firmware/pull/3552). On a cold start the ramp-up time is a lot slower, and because of the thermistor noise at these temps it's a wild guess what's happening (you can have +/-10C, on top of the einsy +/-5C). It's true you can say "ambient temp is low so keep heating" using more sensors, but the thermistor can also be underreporting the whole time so the hotend is maybe actually getting a lot hotter and you can't check this using the einsy or bed thermistor.
IMHO a safer approach is what I wrote before. On a cold start we could keep a low, but safe power level (say a fixed 20% instead of full power) combined with a timeout. On a standard 40W heater cartridge it would settle at <200C so even if the thermistor is shot overheating is not possible. This will require longer to exit from a cold start though, and a timeout is still necessary (if the hotend doesn't recover from X minutes something is also wrong).
The trouble with turning on the heaters on startup and looking for a temperature increase is that if the thermistors were faulty and for some reason the firmware crashed and entered a restart loop, then power would be applied to the heaters indefinitely. At the moment, there has to be human interaction before the heaters are turned on. I think finding a power level that is safe under open loop control is a good idea, and in most cases won’t be that slow because we only need to raise the temperature by a few degrees. Alternatively we could require some user interaction (to prove we aren’t in a restart loop) before running the heaters at a higher power for a limited time.
Another tidbit which would be useful for feedback is interaction. You might start the printer and get into mintemp, but you might also get into mintemp progressively while idling (overnight for example).
Assuming we have a cold-start procedure, what should trigger it? Preheat I guess, if you're in front of the menu. This means mintemp shouldn't immediately lock the printer. What if the printer is remotely controlled?
When I control my printer with OctoPi, I set the temperature to 20°C and once it gets up to that temperature I increase it to the full 215°C to prevent it from triggering the mintemp failsafe / locking me out.
@IntegersOfK do you also have a sock?
I don't have a sock, I find it hard to get on and stay put.
IMHO this is related and needs to be fixed along with #3898
It's getting frustarted over the years that such a simple thing can't be fixed. It wastes a lot of time if used every day. Even with a new 3.12 firmware nothing changed. I don't know its because of law regulations or something like that But actually it would be nice that it would let to turn off mintemp error with somehow until like 4oC.
On Sun, Jan 15, 2023, 19:48 wavexx @.***> wrote:
IMHO this is related and needs to be fixed along with #3898 https://github.com/prusa3d/Prusa-Firmware/issues/3898
— Reply to this email directly, view it on GitHub https://github.com/prusa3d/Prusa-Firmware/issues/3053#issuecomment-1383211086, or unsubscribe https://github.com/notifications/unsubscribe-auth/A3N7XALJN2NGUOS4YVVYC23WSQZ7JANCNFSM4YVE7BWA . You are receiving this because you commented.Message ID: @.***>
Why is the new thermal model not able to tell the difference between a cold ambient temperature and a faulty thermistor? The Prusa blog discussing the thermal model discusses some complex thermal anomalies it can detect; detecting a cold environment (either through comparing against other thermistors or from historical data) seems easy by comparison.
@knmorgan when the hotend thermistor goes below MINTEMP the temperature readings are increasingly unstable (it's effectively operating out of spec). At that point you cannot distinguish cold temperature from a hardware fault anymore.
Ignoring low temperatures is easy to do, but it's a hack, not a solution. If you want to maintain safety check integrity there are a many places to change where you need to add exceptions to critical logic that needs to work.
When looking at a single data point I understand, but the Prusa blog on the new thermal model implies the printer is able to look at a history of thermistor readings to better understand thermal anomalies. I would assume a steady decline from 15C to 10C over the course of a few hours (like what happens in my garage before MINTEMP is triggered) looks a fair bit different than a faulty thermistor.
Guys, just think simple. If its not possible to lower treshold temp due to safety concerns. Then add a function to the printer. It will be even more safe to printer itself.
"Cold environment protection", function if heatbed or hotend temp < 13oC then heat it up to 18oC. Fairly simple. And if Prusa team cant do this fairly simple and very useful I will need to install an octoprint and try to program and run myself. Somehow
On Mon, Jan 16, 2023, 03:02 Kyle Morgan @.***> wrote:
When looking at a single data point I understand, but the Prusa blog on the new thermal model implies the printer is able to look at a history of thermistor readings to better understand thermal anomalies. I would assume a steady decline from 15C to 10C over the course of a few hours (like what happens in my garage before MINTEMP is triggered) looks a fair bit different than a faulty thermistor.
— Reply to this email directly, view it on GitHub https://github.com/prusa3d/Prusa-Firmware/issues/3053#issuecomment-1383316319, or unsubscribe https://github.com/notifications/unsubscribe-auth/A3N7XAMDR7WDRNQEICK5HNDWSSM3TANCNFSM4YVE7BWA . You are receiving this because you commented.Message ID: @.***>
@magicdroping What if there's a problem with the heating during "cold environment protection" portion? Just let the printer melt itself to death?
The team is engaging with this situation, and their attempt to work through a solution is fine. Stop being so terse.
And yes, it's easy for you to deal with this yourself, so why don't you go do that? Let's wait for an update on the direction here before complaining further.
Okay, I agree I may have pushed too much. But the goal is about improvement of the printer . It's about community and we communicate like in a forum. and that we can communicate and offer what matters users the most is a huge win. I don't expect copy cat chinese doing this. I expect a one of the most advanced teams doing it. It's just my suggestion after working with prusa printer for over 5 years everyday. Talking about the function, after reaching 18oc (for example) it will turn off heating and turn on again on when it goes down until 13oC. And thanks to all Prusa team for keeping the good printer even better every year by software updates !
On Mon, 16 Jan 2023 at 15:32, Adam James West @.***> wrote:
@magicdroping https://github.com/magicdroping What if there's a problem with the heating during "cold environment protection" portion? Just let the printer melt itself to death?
The team is engaging with this situation, and their attempt to work through a solution is fine. Stop being so terse.
And yes, it's easy for you to deal with this yourself, so why don't you go do that? Let's wait for an update on the direction here before complaining further.
— Reply to this email directly, view it on GitHub https://github.com/prusa3d/Prusa-Firmware/issues/3053#issuecomment-1384067638, or unsubscribe https://github.com/notifications/unsubscribe-auth/A3N7XAIUK67W2TZV2U2ZZ6DWSVEWHANCNFSM4YVE7BWA . You are receiving this because you were mentioned.Message ID: @.***>
@magicdroping if the thermistor is reading below mintemp, it means the thermistor might be reading temperature incorrectly, so it isn't safe to turn on the heater to warm it up to a specific temperature.
I've discussed potential solutions in my previous comment.
The cold weather/environment function I started this request for is super simple to solve. It was aimed at those of us with printers in outbuildings that see temperatures well below 10c daily. On startup, every morning, all printers need a blast with a hot air gun before powering up and starting the days prints, or even just reading stats for the printer. Pain in the arse...
The solution is a simple check of both temperature sensors and act accordingly: IF hot end and bed are equal, then heat for 20 seconds and check sensor values again. That will be enough for both the hot end and bed to climb above the min temp values whilst the fail safe protocol remains intact and running.
It needs sorting quickly otherwise people will start moving to printers that don't need this mess around before use. Especially with the hype the Bamboo machines are getting.
IF hot end and bed are equal, then heat for 20 seconds and check sensor values again.
To handle all cases discussed here you should start with "IF hot end and bed read UNKNOWN and einsy is LOW", because that's that you can get in a worst case after a restart in a cold environment. Then: "temporarily disable safety checks, apply heat, recheck sensors". After that you might be in:
- one sensor raised, but the other didn't: faulty sensor? faulty heater? still too cold?
- none raised: faulty sensor? faulty heater? still too cold?
- one or both now suddenly too hot: faulty sensor/s?
case 1/2, apply more heat, but for how long? with a faulty thermistor you might read <10C after applying full power for 90s, yet the hotend is already at 300C.
The open-loop approach is good and safe one IMHO, but you need to be able to disable/enable all basic safety checks and re-enable them in safe manner.
Anybody wants to help in this and start writing some code (we're on github after all)? There are many pitfalls in this seemingly simple thing.