Welcome! Log In Create A New Profile

Advanced

500C Thermistor Safety Issue in Marlin/UMO?

Posted by calinb 
500C Thermistor Safety Issue in Marlin/UMO?
June 05, 2024 03:38PM
I'm in the process of upgrading my already highly modified UMO for higher temperatures. Given that the build chamber will be running hotter, I decided to connect a 500C thermistor and pullup resistor rather than exposing the thermocouple amplifier to increased heat. (I've already moved the stepper motors to outside the enclosure.)

The weather is still pretty chilly here in north-central Idaho and the problem, during my testing using the Ulticontroller LCD panel, is the Marlin reading is 20C but my shop is 15C. 20C is the lowest reading I am ever seeing at ambient temperature with the 4.7k pullup resistor and ~7M ohm from the 500C thermistor. 7M is essentially an open, compared to 4.7k so, unfortunately, 20C is also the reading I get with the thermistor unplugged from the board. Therein lies the safety hazard.

I started with the recommended Marlin settings:

#Configuration.h

#define TEMP_SENSOR_0 66 ;

// The minimal temperature defines the temperature below which the heater will not be enabled It is used
// to check that the wiring to the thermistor is not broken.
// Otherwise this would lead to the heater being powered on all the time.
#define HEATER_0_MINTEMP 21;

#define HEATER_0_MAXTEMP 500;

#Configuration_adv.h modifications;

#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 5;

#define MILLISECONDS_PREHEAT_TIME 30000

The above code tripped a MINTEMP error from Marlin immediately after I entered a temperature on the LCD controller. This was expected, because a MINTEMP of 21 is greater than the 20C reported by the "bottomed-out" thermistor / pullup resistor voltage divider. Remember, 20C is what is reported when the thermistor is totally unplugged (open circuit failure) too, which is exactly the failure the Marlin MINTEMP feature is trying to detect!

When I preheated the heater block a little with a butane torch, to get the thermistor/voltage divider into its "active" range, temperature settings and PID worked fine.

After the heater block fully cooled off, I next tried,
#define HEATER_0_MINTEMP 15;

and it worked too, but I found that MINTEMP must be set a few degrees below 20C (extra noise margin?).

Would not the MILLISECONDS_PREHEAT_TIME, possibly along with the MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED setting help mitigate this situation? I expected that the MILLISECONDS_PREHEAT_TIME would provide enough time for a valid temperature to be reported but I found that it didn't help at all, regardless of its value. I increased both these two settings but immediate MINTEMP errors were again the result whenever after I increased the MINTEMP setting much above 15. Ideally, one should be able to set MINTEMP in the low "active" range of the thermistor/voltage divider where it's not "bottomed out" and use a MILLISECONDS_PREHEAT_TIME that's sufficient to run the heater long enough to get the temperature into the thermistor/voltage divider actiive range.

I guess I still have the other Marlin thermal runaway features (like no change in the reading after powering-on the heater) but what do others here recommend so I might benefit from the MINTEMP safety feature?

BTW, at the low end of the temperature range, my thermistor tracks the Dyze values quite well (my thermistor is a POLISI3D) but here are the published Dyze values:

Temperature (°C) Resistance (kΩ)
10 8100
20 5200
25 4500
30 2830
60 666

...etc.

In good agreement with the above, I'm seeing about 7000k resistance from the 500C thermistor in my chilly shop.

Maybe I should buy one of these smiling smiley
https://www.whambamsystems.com/products/the-cloud-personal-printer-sentry

Thanks very much for any ideas or advice!

-Cal

Edited 1 time(s). Last edit at 06/05/2024 03:52PM by calinb.
Re: 500C Thermistor Safety Issue in Marlin/UMO?
June 17, 2024 05:15AM
You may want to consider a PT1000 RDT along with a 1K pullup resistor and a custom thermistor_1010.h file. This gets you into reasonable impedance values.

Don't use an RDT amplifier. The ones I'm familiar with couldn't drive the standard 4.7K pullup resistor and introduced I2R heating errors at room temperatures.
Sorry, only registered users may post in this forum.

Click here to login