KILL_IF_SENSOR_DEFECT only enables Dry Run, then print starts

I am configuring the firmware (0.92.9) for a Wanhao D5S series printer.

An issue I am facing is that when a print is started while the nozzle is rapidly cooling (below about 160C and above 70C), that the Decouple timer will run out, marking the nozzle temperature sensor as decoupled.

I have already increased the time, but this is not my issue. My issue is that the printer is then set to Dry Run mode and the print job is started immediately (obviously without the extruder, but still).

I have the setting KILL_IF_SENSOR_DEFECT set to 1, so that it will "Set to 1 if you want firmware to kill print on decouple" kill the print, and allow me to restart.

Having looked at the firmware, this value is used only in Extruder.cpp with a conditional on line 338 "if(!Printer::debugDryrun() && PrintLine::linesCount > 0)":
From what I understand from this conditional, is only execute this if both is true:
  1. The printer is not in Dry Run mode already (after this block, the DryRun is activated on line 346), so this part is TRUE.
  2. The Lines Count need to be more than 0 (the preheating part of the starting gcode is a few lines into the gcode, so I understand this should also be TRUE)

Now why is it skipped, allowing the printer to continue?


  • PrintLine::linesCount is 0 at that moment. It is the number of buffered moves and that is only >0 when printer is moving not in preheating stage.
Sign In or Register to comment.