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

Thermal runaway protection? #204

Open
rpavlik opened this issue Oct 9, 2018 · 5 comments
Open

Thermal runaway protection? #204

rpavlik opened this issue Oct 9, 2018 · 5 comments

Comments

@rpavlik
Copy link
Contributor

rpavlik commented Oct 9, 2018

As this has been in various printing news recently, it would be nice to have this in the firmware. I didn't find anything with a quick search for runaway in the GitHub project, but it's possible I missed it.

I'd hope that at least the algorithm could be ported from Marlin since that seems to be the standard.

@TehMillhouse
Copy link

TehMillhouse commented Mar 13, 2019

grep for "HEATER_FAIL_". There are some basic sanity checks in place which you can test by, for instance, disconnecting the thermistor from your Hotend and turning on the heater cartridge. I don't know how exhaustive the checks are, but basic heater / thermistor failure seems to be caught.

EDIT: See also #172, so while the thermal runaway protection will prevent your house from burning down, it won't protect your hardware from destroying itself :\

@SaschaKP
Copy link

It only needs to add An abort print on the thermal shutdown case

@Halbelunge
Copy link

I had the same question for my device with sailfish. So I checked the program code.
This can be found in the Heater.hh and Heater.cc:

enum HeaterFailMode{
HEATER_FAIL_NONE = 0,
HEATER_FAIL_NOT_PLUGGED_IN = 0x02,
HEATER_FAIL_SOFTWARE_CUTOFF = 0x04,
HEATER_FAIL_NOT_HEATING = 0x08,
HEATER_FAIL_DROPPING_TEMP = 0x10,
HEATER_FAIL_BAD_READS = 0x20
};

This is what is the interesting part: HEATER_FAIL_NOT_HEATING = 0x08,

Furthermore in the Heater.cc:

  // check that the heater is heating up after target is set
  if(!progressChecked){
       if(heatProgressTimer.hasElapsed()){
	    if(current_temperature < (startTemp + HEAT_PROGRESS_THRESHOLD )){
		 value_fail_count++;

		 if (value_fail_count > SENSOR_MAX_BAD_READINGS) {
		      fail_mode = HEATER_FAIL_NOT_HEATING;
		      fail();
		      return;
		 }
	    }
	    else
		 progressChecked = true;
       }

This seems to do exactly this check, what you mean with thermal runaway.

In my opinion, this can be closed.
Did you ever checked @rpavlik ?

@SaschaKP
Copy link

SaschaKP commented Jan 7, 2020

What they mean is that even if that code is run, it doesn't prevent the printer from continuing the print, even if the heater is shut down, this can cause some hardware damage, as the filament is continuosly pushed in. My code option was already done in my fork, as this tree is INACTIVE and abandoned.

@Halbelunge
Copy link

Ahh ok, I see.
But hey, at least it will not burn your house down, because of an open loop in the thermal regulation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants