MINTEMP
I often get MINTEMP errors (not MINTEMP BED) when I first switch on my MK3S. I have a Mosquito hotend with the Slice high-temp thermistor and have modified the firmware to use their thermistor table. The display often reads 16C or a bit below when I power on, as I have the printer in a cool basement.
I have changed HEATER_0_MINTEMP from the default 15 to 10, but it makes no difference. I've tried searching the sources to see what is actually being tested, but find it confusing.
There is:
#define MINTEMP_MINAMBIENT 25
#define MINTEMP_MINAMBIENT_RAW 978
but this seems to relate to a thermistor in the EINSY. I find if I run a hot air gun for a bit to the hotend, the temperature rises a bit and the condition clears.
What definition in the firmware controls this behavior?
RE: MINTEMP
I had the error then my thermister (hotend) had a short.
--------------------
Chuck H
3D Printer Review Blog
RE: MINTEMP
a shorted thermistor normally causes a MaxTemp event
regards Joan
I try to make safe suggestions,You should understand the context and ensure you are happy that they are safe before attempting to apply my suggestions, what you do, is YOUR responsibility. Location Halifax UK
RE: MINTEMP
The thermistor is working fine. It just (correctly) reads a temperature low enough that the firmware complains. I'm asking which #define in the firmware adjusts the threshold, since it doesn't seem to be HEATER_0_MINTEMP.
RE: MINTEMP
Odd. Is this the Mosquito thermister or Prusa?
--------------------
Chuck H
3D Printer Review Blog
RE: MINTEMP
The thermistor is working fine. It just (correctly) reads a temperature low enough that the firmware complains. I'm asking which #define in the firmware adjusts the threshold, since it doesn't seem to be HEATER_0_MINTEMP.
I haven't looked deeply into this, but I'm also curious about how it all works. I once printed at 8°C ambient - and it worked. There is a HEATER_MINTEMP_DELAY to give the printer a bit of time to heat up before the checking starts. Once with the MMU I saw a Mintemp-Error after a finished print at 15°C ambient - (I still don't understand why).
Also in temperature.cpp there is this:
// Wait for temperature measurement to settle
_delay(250);
#ifdef HEATER_0_MINTEMP
minttemp[0] = HEATER_0_MINTEMP;
while(analog2temp(minttemp_raw[0], 0) < HEATER_0_MINTEMP) {
#if HEATER_0_RAW_LO_TEMP < HEATER_0_RAW_HI_TEMP
minttemp_raw[0] += OVERSAMPLENR;
#else
minttemp_raw[0] -= OVERSAMPLENR;
#endif
hj
So there is also a HEATER_0_RAW_LO_TEMP and a HEATER_0_RAW_HI_TEMP. It's also possible that this delay(250) here doesn't fit for every sensor.
Also there are 8 files where HEATER_0_MINTEMP is defined. The easiest error to fix would be to have picked the wrong one.
RE: MINTEMP
Odd. Is this the Mosquito thermister or Prusa?
Crap, reading is fundamental. I completely missed a whole sentence.
--------------------
Chuck H
3D Printer Review Blog
RE: MINTEMP
Also there are 8 files where HEATER_0_MINTEMP is defined. The easiest error to fix would be to have picked the wrong one.
All of them are in the variants folder - you choose one of them to be Configuration_prusa.h.
The code in temperature.cpp:
#ifdef HEATER_0_MINTEMP
minttemp[0] = HEATER_0_MINTEMP;
while(analog2temp(minttemp_raw[0], 0) < HEATER_0_MINTEMP) {
#if HEATER_0_RAW_LO_TEMP < HEATER_0_RAW_HI_TEMP
minttemp_raw[0] += OVERSAMPLENR;
#else
minttemp_raw[0] -= OVERSAMPLENR;
#endif
adjusts minttemp_raw from its initial value (16383 from thermistortables.h) until it is approximately what the ADC value corresponding to HEATER_0_MINTEMP is. OVERSAMPLENR is 16 (from thermistortables.h).
void check_min_temp_heater0()
{
//heater
#if HEATER_0_RAW_LO_TEMP > HEATER_0_RAW_HI_TEMP
if (current_temperature_raw[0] >= minttemp_raw[0]) {
#else
if (current_temperature_raw[0] <= minttemp_raw[0]) {
#endif
menu_set_serious_error(SERIOUS_ERR_MINTEMP_HEATER);
min_temp_error(0);
} else if( menu_is_serious_error(SERIOUS_ERR_MINTEMP_HEATER) ) {
// no recovery, just force the user to restart the printer
// which is a safer variant than just continuing printing
// The automaton also checks for hysteresis - the temperature must have reached a few degrees above the MINTEMP, before
// we shall signalize, that MINTEMP has been fixed
// Code notice: normally the alert_automaton instance would have been placed here
// as static alert_automaton_mintemp alert_automaton_hotend, but
// due to stupid compiler that takes 16 more bytes.
alert_automaton_hotend.step(current_temperature[0], minttemp[0] + TEMP_HYSTERESIS);
}
}
I think I now have a clue as to what's going on. For the Slice thermistor, the "bottom" of the table looks like this:
{ 1015*OVERSAMPLENR , 20 },
{ 1018*OVERSAMPLENR , 10 },
{ 1020*OVERSAMPLENR , 0 } //safety
analog2temp does this:
for (i=1; i<heater_ttbllen_map[e]; i++)
{
if (PGM_RD_W((*tt)[i][0]) > raw)
{
celsius = PGM_RD_W((*tt)[i-1][1]) +
(raw - PGM_RD_W((*tt)[i-1][0])) *
(float)(PGM_RD_W((*tt)[i][1]) - PGM_RD_W((*tt)[i-1][1])) /
(float)(PGM_RD_W((*tt)[i][0]) - PGM_RD_W((*tt)[i-1][0]));
break;
}
}
It is interpolating between two table entries to calculate the Celsius temperature. A possible issue is that for my table, the difference between 20 and 10 is small, and perhaps the interpolation is coming out wrong. (Nevertheless, the display says 16 but I get MINTEMP with the value set at 10?) I am going to play with this code and see if I can get to the bottom of it. I'm actually dubious of the table entries at the bottom, as I am getting readings a bit lower than the actual room temp at startup. Maybe I'll fiddle with the values until I get something that looks good. I won't fuss with the higher temp values, as I have no indication they are wrong.
RE: MINTEMP
I ended up tweaking the bottom entries in the thermistor table and now it reads close to the actual room temperature - and no more MINTEMP.
RE: MINTEMP
I ended up tweaking the bottom entries in the thermistor table and now it reads close to the actual room temperature - and no more MINTEMP.
What changes did you actually make to the thermistor table??
RE: MINTEMP
I am going to switch my Mosquito printer to the Mosquito plus Bondtech to prevent the need to edit termistor tables.
--------------------
Chuck H
3D Printer Review Blog
RE: MINTEMP
I am going to switch my Mosquito printer to the Mosquito plus Bondtech to prevent the need to edit termistor tables.
I just finally upgraded my Prusa MK3S to the Bondtech and Mosquito Magnum (450C thermistor and 50W heater). I had to edit the firmware myself as the Bondtech firmware they sent me di not work. I am still getting mintemp errors at startup. I am still trying to fix that!!
RE: MINTEMP
I just talked to Greg at Slice Engineering and they are now selling PT1000 thermistors. He said he likes them better than the 450C thermistors they sell.
RE: MINTEMP
@gorillamotors
The firmware is posted on the website and updated to 3.93.
--------------------
Chuck H
3D Printer Review Blog
RE: MINTEMP
@gorillamotors
I do not see them on their website.
--------------------
Chuck H
3D Printer Review Blog
RE: MINTEMP
@gorillamotors
I do not see them on their website.
Never mind, I found it.
--------------------
Chuck H
3D Printer Review Blog