Jam control BED temperature
Hi
This relates to REPETIER_VERSION "1.0.0dev" fairly recent download of the github development branch
I am experiencing a very funny issue with JAM_ACTION 1.
Say I print at nozzle= 240C and bed=105C
When a jam is detected the head moves to the filament change area and cools down as expected, the nozzel target temp then displays as -240C and the bed stays at 105C.
When I click on the encoder to reheat the extruder the nozzle target temp then displays 240C and the bed displays -105C and starts cooling down.
How do I fix this?
This relates to REPETIER_VERSION "1.0.0dev" fairly recent download of the github development branch
I am experiencing a very funny issue with JAM_ACTION 1.
Say I print at nozzle= 240C and bed=105C
When a jam is detected the head moves to the filament change area and cools down as expected, the nozzel target temp then displays as -240C and the bed stays at 105C.
When I click on the encoder to reheat the extruder the nozzle target temp then displays 240C and the bed displays -105C and starts cooling down.
How do I fix this?
Comments
void Extruder::unpauseExtruders(bool wait) {
#if NUM_EXTRUDER > 0
// activate temperatures
for(fast8_t i = 0; i < NUM_EXTRUDER; i++) {
if(extruder[i].tempControl.targetTemperatureC < 0)
extruder[i].tempControl.targetTemperatureC = -extruder[i].tempControl.targetTemperatureC;
}
#endif
#if HAVE_HEATED_BED
bool waitBed = false;
if(heatedBedController.targetTemperatureC < 0) {
heatedBedController.targetTemperatureC = -heatedBedController.targetTemperatureC;
waitBed = true;
}
#endif
if(wait) {
#if NUM_EXTRUDER > 0
for(fast8_t i = 0; i < NUM_EXTRUDER; i++)
extruder[i].tempControl.waitForTargetTemperature();
#endif
#if HAVE_HEATED_BED
if(waitBed) {
heatedBedController.waitForTargetTemperature();
}
#endif
}
}
As you see only with a negative target temperature the bed or extruder is inverted so it always becomes positive afterwards. So from this I do not see how it happens. You could write instead of
heatedBedController.targetTemperatureC = -heatedBedController.targetTemperatureC;
using fabs
heatedBedController.targetTemperatureC = fabs(heatedBedController.targetTemperatureC);
Will try tomorrow if I can reproduce it or if you have some special condition causing this. Please try the fabs solution as well to see if this line is responsible for it or the problem lies somewhere else.
I will upload the changed firmware as soon as my print is done. Will let you know in about 15 hours.
I mean that part is only executed when target < 0 and then sets - negative value which should also be negative.