Test For 3D Printer Runaway

A few 3D printers have had a deserved reputation for bursting into flames. Most — but apparently not all — printers these days has firmware that will detect common problems that can lead to a fire hazard. If you program your own firmware, you can check to see if you have the protection on, but what if you have a printer of unknown provenance? [Thomas] shows you how to check for a safe printer. Also check out his video, embedded below.

The idea is to fake the kind of failures that will cause a problem. Primarily, you want to have the heaters turned on while the thermistor isn’t reading correctly. If the thermistor is stuck reading low or is reading ambient, then it is possible to just drive the heating element to get hotter and hotter. This won’t always lead to a fire, but it could lead to noxious fumes.

Of course, if a thermistor reads too hot, that should take care of itself since the firmware ought to just turn off the heater and wait for the temperature to drop which it won’t do. We’ve had a thermistor pop out before and we’ve also had a tiny thermistor wire break and make intermittent connection. Proper firmware will detect this and stop heating. [Thomas] simulates this by deliberately removing either the heater or the thermistor and also by unplugging the thermistor.

He tried two printers, an Ender 3 and an Aquila. The Ender 3 was safe, although it was surprising that it rebooted on an error. On the other hand, that was sure to turn off the heaters, so that’s good. The Aquila was disappointing, though, because it froze and kept heating in some of the failure modes.

Of course, there are other things that could cause a problem, so just passing these tests isn’t a free pass to total safety, but it is a good indicator. For example, though, a FET shorting out (or a short on the PCB) could cause a heater to turn on and the firmware would be unable to turn it off. That should be rare, though. These other modes are much more likely.

We are no strangers to tools that get hot. Soldering irons, hot air guns, and even our kitchen appliances do it all the time. But 3D printers seem to have a lot more potential issues and there are stories of them burning down spectacularly. Bad connectors are often a culprit, but even if you are certain of your connectors, your power supply, and you firmware, you probably shouldn’t leave a printer operating unattended.

22 thoughts on “Test For 3D Printer Runaway

    1. That’s great! So have I. I keep a spray can of fire suppressant next to it too.

      But I would certainly prefer that my printer never catch fire in the first place.
      Seriously, if you can figure out how to use a slicer and all the finicky settings that go into getting a good print you should be able to follow simple directions like these to prevent a fire in your home.

      But then again, although I think this is changing now with upgrades to 32-bit processors but for quite a while most bought printers just used the same Atmega328 + Marlin that homebuilt ones used. I can’t put myself in the head of someone who learns all the “technical stuff” that goes into 3d printing but never figures out how to build the Marlin sketch and upgrade their own firmware. (turning on the safety features in the process). I have seen the quality and speed of my own prints improve several times in the years since I built my printer just by updating the firmware. Using the original just doesn’t make any sense.

      1. You shouldn’t keep a fire extinguisher _next_ to the thing that can catch fire; you should keep it a distance away where you can easily get it after the fire has started. This may seem obvious, but it wasn’t to me for years.

  1. A partially inserted thermistor is a real risk. Unplugging is just the first type of error.

    A partially inserted thermistor could run into really high temperatures as well, while still reporting “sane” values for the thermistor. No idea what the current state of most firmwares is. But at Ultimaker I implemented a very simple check, and that it’s not allowed to run at 100% heater power for more then 10 or 30 seconds (depending on the model).
    A partially inserted thermistor would run into a few 100C very easy, but with this check the runaway Ki of the PID controller would trigger this test before it put out enough energy to start a fire.

    1. Um. Yah.

      Marlin with thermal runaway protection will fire any time the heater runs too long without the temperature increasing. It doesn’t matter what the current temperature is, just that it knows it has been “trying” to make it hotter by running the heater but isn’t getting the outcome it expects. It’s not like it only fires if the thermistor is stuck all the way down at room temperature.

      I assume other firmwares do the same.

      That’s probably the most common way a user runs into these settings. Take a printer with a cheap PCB heatbed and/or an underrated power supply and try to run the bed up to 100C as is recommended for ABS. My thermal runaway protection trips somewhere around 85-90C because although the heaters are on it just isn’t getting any hotter.

      I’m sure it’s the same code for the hotend heater. I just have never seen that one trip because my hotend can manage what I ask.

      That’s why a lot of these printers ship with the protections turned off. They cheaped out on the parts, can’t quite make it to temperature within a reasonable time and don’t want the customer to call because they don’t understand why the printer keeps turning itself off.

    2. That seems smart, though adding something to a control loop might be a bit tricky for some of the hyper-optimized 8 bit AVR routines. Definitely seems like a good idea. I couldn’t tell 100% by code inspection whether the firmware I use (Sailfish, on an ancient Replicator 2x) has all of the minimum features Tom mentions, and it definitely falls into the category of “some parts are hyper optimized” – as in, allegedly I’m not even supposed to use a compiler newer than something like avr-gcc 4.2 to build it lest it stutter (though I’ve had ok luck with much newer compilers)

  2. What ever happened to including a thermal fuse on the hotend? SeeMeCNC did that with the Rostock Max, but has since dropped it in favor of software detection. Is it just a matter of cost?

    1. I’d think software is (can be) better then hardware.
      As Daid already mentioned, one of the failure modes is the heating element getting (partially) dislodged from the hot-end. This sometimes happens when a print failure ends in spaghetti and the spaghetti gets entangled with the wiring of the heating element.

      By tracking the PWM duty cycle in software you have more information on which to make smart (software) decisions.

      I also once used “Paul” as a handle on this forum, but there are far to many of me.

    2. We looked into this with the Ultimaker 2 development. But the issues where that the placement is pretty important, as the thermal gradient of hotends is pretty big.
      And the tolerances are quite high, and only specific values are available.
      And it’s more wires that can break.
      And it added cost, not just the part, but also assembly.

      So it didn’t add the best protection, and introduced another possible failure case which could halt your printer. So the amount of gain wasn’t worth it for us back then.

      1. In the event that the firmware can no longer control the heater (i.e. a MOSFET shorts), it doesn’t matter what the software does – it can’t turn that heater off, even if the firmware detects the error. That makes an independent hardware device an absolute requirement.

        I understand placement of a thermal fuse on the printhead is difficult to manage, but a second thermistor driving a crowbar circuit to blow a power supply fuse provides an excellent backup. It doesn’t need to be especially accurate, it just needs to detect a temperature between too hot and FIRE!, or unreasonably cold.

        And let’s face it – if the hot end can’t be controlled, you don’t want that printer running.

  3. If you’re serious at fire hazards and at the same time want to leave your printer do it’s thing without supervising, then consider adding a fire proof enclosure, for example made from gypsum board which is both cheap, widely available and a fire retardant. in combination with a self-triggered fire extinguisher. Such fire extinguishers are commercially available, but this is hackaday.

    There are many ways in which to hack together such a fire extinguisher from a few CO2 cartridges. From a piece of string that melts through or a low melt temp solder joint or thermal fuses. Smoke detectors are probably a bad option, as it may be difficult to prevent false triggers. But with CO2 cartridges a false trigger is not such a big deal.

    Laser cutters can also benefit from this. My brother has such a thing and it once started a fire because of some small plastic piece falling off the project, which got illuminated by the out-of-focus laser. Not hot enough to vaporize, but hot enough to set it on fire. The fire was contained within the steel enclosure. Partly because he was alerted by the smell. He did have to rebuild half the printer though.

    1. Genuine fire-rated ‘cement board’ is not much more expensive or hard to handle than gypsum board. My printer enclosure is lined with it.

      I also have two smoke detectors (photoelectric and ionization) and two fire extinguishers are handy (small one near the printer, large one near the exit).

      I can’t rely on the smell to alert me: the enclosure exhausts outdoors (as does the laser cutter).

    2. When a fire is starting, it’s not enough to fire the extinguisher, you also need to stop the machine, preferably to power it off.

      I had mentioned a crowbar circuit in a previous response. This is simply a switch (SCR?) that once fired, applies a short circuit across the power supply to blow a fuse. Presumably, the P.S. can tolerate the short long enough to blow an output-side fuse, but blowing the input-side fuse is just as effective.

      And that removes power from the machine.

  4. I wonder if a smoke detector attached to a relay (or solid state relay) that controls the AC power to the printer would work. I think the best method upon failure is to remove the mains power all together and it shouldn’t be to tricky to implement. I use a mains bed heater on my S5 and it another relay (SSR) could control the mains to both the printer and the bed heater. There’s a lot of failure modes that can result in a thermal event, but this method might catch them all.

    1. I don’t think a smoke detector connected to the AC power is the right way to go.

      Experiments I did show burning PLA can spread fire to other PLA. And as extra bonus, it’s a burning liquid then. So as soon as PLA ignites (and it does auto-ignite), and there is a sizable print on your printer, your smoke alarm might cut off the power, but that won’t stop the fire from spreading to the print and potentially burning down a lot more then your printer.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.