Jump to content
UltiMaker Community of 3D Printing Experts

Feature Suggestion: Nozzle Heater Runaway Protection


Recommended Posts

Posted · Feature Suggestion: Nozzle Heater Runaway Protection


If the connectors on the extruder become disconnected when the heater is on the nozzle heating will have a thermal runaway.

Steps to reproduce:

1. Set nozzle temp

2. Pull out the connector on the top of the extruder block

Suggested remedy:

If the software detects that the sensor is disconnected, emergency shut down and display error.

This happened to us with two printers. One lost the connection while printing (presumably it was already loose after filament change and became disconnected due the printing vibrations) and one lost the connection during a filament change (we did not notice it until white smoke started to appear).


  • Link to post
    Share on other sites

    Posted · Feature Suggestion: Nozzle Heater Runaway Protection

    Usually "disconnection" means "electrical disconnection". But are you talking about physical disconnection in both cases? So that the sensor was reading room temperature?

    Supposedly Marlin tests for this error but obviously it doesn't do a good job. I suspect this error is only caught maybe if the sensor falls out during the heating up step. I suspect once the nozzle is up to temperature, if the sensor falls out, it gets much harder to distinguish the problem using software.


  • Link to post
    Share on other sites

    Posted · Feature Suggestion: Nozzle Heater Runaway Protection

    So based on the code -

    The first requirement is that the current temp be less than the target temp being set by twice the watch increase value. The UM1 firmware comes with a increase vale of 10. So that means if the hotend is at say 180 and you set the new temp to be anything less than or equal to 200, the watch code won't be trigger.

    The second requirement is that when the watch temp period elapses (the period by default in the UM1 firmware is 40 seconds), the temp must be ANY AMOUNT greater/equal to than the set temp plus the watch temp increase (10 for the UM1 firmware).

    The third key point is that when the second requirement is met, the watch is DISABLE.

    So for the UM1, this check won't help if

    - The sensor reporting fails in a mode where the reported temp is a high value (10 more than the temp value set) or max value...

    - If the sensor reporting fails in any mode after 40 seconds, the error won't be caught.

    Obviously, this could and should be improved -

    - There shouldn't be a check when the temp is changed that the hotend is less than the set point less twice the watch temp. If the set temp is changed, the watch temp should just be updated along with the watch temp check time to be the current time plus the watch temp time period.

    - When the watch temp time period elapses, the temp should be checked to see if it is in the range of set temp plus/minus the watch temp increase. Hmmmm... well, see notes below.

    - When the check is done, the check shouldn't be disabled. Instead, it should be set to the current time plus the watch temp period.

    Note: After thinking about this a little - obviously, cooling down is a lot slower than heating. So the values might not work well and there might be need for a second set of cold down values used when the set temp is set below the current temp. However, an additional check should be implemented that when the cool down mode values are in effect, the temp should be checked at the heating check period to ensure that it hasn't INCREASED above the temp at the time of the temp change was requested plus the temp increase check value.

    Not impossible to code. However, it's quite possible I haven't considered everything and could introduce all sorts if false "heating failed" problems...

    Don't have time now but might attempt to implement if someone else (cough GR5 cough Daid cough illuminarti cough) doesn't....

    Here is the existing code for the UM1 -

    Marlin does this when you change the temp.

    void setWatch()



    for (int e = 0; e < EXTRUDERS; e++)


    if(degHotend(e) < degTargetHotend(e) - (WATCH_TEMP_INCREASE * 2))


    watch_start_temp[e] = degHotend(e);

    watchmillis[e] = millis();






    Then during heating it does this check during the manage heater routine.



    if(watchmillis[e] && millis() - watchmillis[e] > WATCH_TEMP_PERIOD)


    if(degHotend(e) < watch_start_temp[e] + WATCH_TEMP_INCREASE)


    setTargetHotend(0, e);

    LCD_MESSAGEPGM("Heating failed");


    SERIAL_ECHOLN("Heating failed");


    watchmillis[e] = 0;





    For the UM1 version, the values involved


    //// Heating sanity check:

    // This waits for the watch period in milliseconds whenever an M104 or M109 increases the target temperature

    // If the temperature has not increased at the end of that period, the target temperature is set to zero.

    // It can be reset with another M104/M109. This check is also only triggered if the target temperature and the current temperature

    // differ by at least 2x WATCH_TEMP_INCREASE

    #define WATCH_TEMP_PERIOD 40000 //40 seconds

    #define WATCH_TEMP_INCREASE 10 //Heat up at least 10 degree in 20 seconds


  • Link to post
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

    • Our picks

      • Here it is. The new UltiMaker S7
        The UltiMaker S7 is built on the success of the UltiMaker S5 and its design decisions were heavily based on feedback from customers.
        So what’s new?
        The obvious change is the S7’s height. It now includes an integrated Air Manager. This filters the exhaust air of every print and also improves build temperature stability. To further enclose the build chamber the S7 only has one magnetically latched door.
        The build stack has also been completely redesigned. A PEI-coated flexible steel build plate makes a big difference to productivity. Not only do you not need tools to pop a printed part off. But we also don’t recommend using or adhesion structures for UltiMaker materials (except PC, because...it’s PC). Along with that, 4 pins and 25 magnets make it easy to replace the flex plate perfectly – even with one hand.
        The re-engineered print head has an inductive sensor which reduces noise when probing the build plate. This effectively makes it much harder to not achieve a perfect first layer, improving overall print success. We also reversed the front fan direction (fewer plastic hairs, less maintenance), made the print core door magnets stronger, and add a sensor that helps avoid flooding.

        The UltiMaker S7 also includes quality of life improvements:
        Reliable bed tilt compensation (no more thumbscrews) 2.4 and 5 GHz Wi-Fi A 1080p camera (mounted higher for a better view) Compatibility with 280+ Marketplace materials Compatibility with S5 project files (no reslicing needed) And a whole lot more  
        Curious to see the S7 in action?
        We’re hosting a free tech demo on February 7.
        It will be live and you can ask any questions to our CTO, Miguel Calvo.
        Register here for the Webinar
          • Like
        • 8 replies
      • UltiMaker Cura 5.3.0-Alpha 🎄 Tree Support Spotlight 🎄
        Are you a fan of tree support, but dislike the removal process and the amount of filament it uses? Then we would like to invite you to try this special release of UltiMaker Cura. Brought to you by our special community contributor @thomasrahm
        We generated a special version of Cura 5.2 called 5.3.0 Alpha + Xmas. The only changes we introduced compared to UltiMaker Cura 5.2.1 are those which are needed for the new supports. So keep in mind, this is not a sneak peek for Cura 5.3 (there are some really cool new features coming up) but a spotlight release highlighting this new version of tree supports.  
          • Like
        • 16 replies
      • New here? Get ahead with a free onboarding course
        Often getting started is the most difficult part of any process. A good start sets you up for success and saves you time and energy that could be spent elsewhere. That is why we have a onboarding course ready for
        Ultimaker S5 Pro Bundle, Ultimaker S5, Ultimaker S3 Ultimaker 2+ Connect.   
        They're ready for you on the Ultimaker Academy platform. All you need to do to gain access is to register your product to gain free access. 
        Ready? Register your product here in just 60 seconds.
          • Like
        • 14 replies
    • Create New...