Closed HidingCherry closed 8 years ago
I did the original implementation of LCD_PROGRESS_BAR
and it's supposed to show any message that is set right away, then show the progress bar again only after a delay. But perhaps the status screen isn't getting updated enough once the kill()
function is called. On my machine I haven't seen this issue, but I use the default settings…
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
#define PROGRESS_BAR_MSG_TIME 3000
// Amount of time (ms) to retain the status message (0=forever)
#define PROGRESS_MSG_EXPIRE 0
// Enable this to show messages for MSG_TIME then hide them
//#define PROGRESS_MSG_ONCE
Can stepper driver cause the "THERMAL RUNAWAY" error?
No, it only applies to the hot-end and heated bed. Thermal runaway will be thrown if a heater takes too long to reach temperature (e.g., if you only power your board over USB without the PSU and issue M104 S80
you will get this error). It will also throw this error if the temperature is seen to climb when the heater is off.
@AnHardt I'm seeing something weird now. I changed WATCH_TEMP_PERIOD
to 50 so that THERMAL_PROTECTION_PERIOD
will be triggered first. Then I issued M104 S80
with only USB power, so the heaters will stay cold. The hot-end temperature reads 21/80°. After 6 minutes in this state I still had no error. But I did notice that it took me several clicks before the controller exited the Status Screen. Once it finally did switch to the menu screen, clicks resumed working properly. But then after another couple minutes, it took several clicks again.
Clearly we still have some bad logic around thermal protection.
@thinkyhead Jep. WATCH_TEMP_PERIOD-test fails when > 32. WATCH_TEMP_PERIOD is later multiplied with 1000. Multiplying with 1000UL solves the problem. PR is on its way.
Sorry, could not reproduce any problems with clicking the button.
could not reproduce any problems with clicking the button
It's a weird one. Of course now your patch fixes that too.
I use also the default settings for the progress bar. It is possible that the progress bar appears again after a message has been shown so that the message won't be visible. The progress bar didn't disappear again after a THERMAL_RUNAWAY (I haven't noticed the "stop" of the printing. After I came back it has already stopped and no error message but the progress bar was shown.)
To the THERMAL_RUNAWAY thing: Afaik the protection only activates after the temperature has been reached. So the initial heat-up shouldn't make any THERMAL_RUNAWAY. If you want to reproduce the LCD_PROGRESS_BAR-bug(?) you need to reach the temperature for getting a THERMAL_RUNAWAY error.
PS: Noticed another bug after THERMAL_RUNAWAY (the stepper motors are moving very slowly/nearly nothing). I will search for that and make sure I don't report a duplicate bug.
only activates after the temperature has been reached
True, and easy to forget. It's the WATCH_TEMP_PERIOD
stuff that catches the failure to heat up.
you need to reach the temperature for getting a THERMAL_RUNAWAY error
I will try getting the temperature up, then try (1) unplugging the thermistor and (2) turning off the heater power.
Thank you for your interest making Marlin better and reporting this issue but this topic has been open for a long period of time without any further development. Marlin has been under heavy development for the past couple of months and moving to it's last mile to finish the RC cycle and release Marlin v1.1.0. We suggest you to try out the latest RCBugfix branch and reopening this issue if required.
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
The function "LCD_PROGRESS_BAR" let the LCD display a progress bar (how obvious). If there is an error (e. g. THERMAL RUNAWAY) the progress bar stays there. The error is not displayed (had only once during print with SD).
PS: Can stepper driver cause the "THERMAL RUNAWAY" error? If yes, we need something to distinguish what exactly is causing that error.