After a period of relevant dormancy, Squirty has had a lot of work done recently. I have replaced most of the original plastic parts, which were starting to crack, and put in new bearings. I also designed a new x-carriage ducted fan adaptor that put better air flow on the printed part and put in aluminium pulleys to replace the badly worn plastic ones. I’d even made some progress rebuilding the case after its destruction in 2014. Little did I know the printing gods had a plan ready to knock poor Squirty back and severely terrify me into the bargain.

As part of the case rebuild I left a part printing overnight. In theory you are never supposed to leave a printer unattended, for reasons that will become obvious, but I do this fairly regularly because most things I print take at least 4hrs to do. It’s much more convenient (and semi-magical) to set something printing at night and pick it out of the printer fully-formed in the morning.

This time when I woke up I saw that the part had failed a few layers in. The printer nozzle was motionless over the semi-formed part, which is unusual as most of the time it will not know anything has gone wrong and will keep going, merrily spewing plastic all over the place, until it has come to what it thinks is the end of the print. There was also a strange whining coming from the power supply, and I noticed that the heated bed light was still on. This was bit of an oh-shit moment. The heated bed should not be on continuously, but should cycle on and off to keep the bed at the desired temperature. I felt bit of a chill and thanked my lucky stars that something similar had not happened to the printer hotend, which has a much more powerful and concentrated heating element. Then I looked at the printer hotend and saw this.

Oh shit
Oh shit

The aluminium block that holds the heater cartridge had got so hot that it had deformed. Under the nozzle, it had charred the plastic of the part it was printing.

Charring of the part where it was in contact with the nozzle. There is a melted portion to the right hand side of the photo. I think this is because the ducted fan was blowing in that direction.
Charring of the part where it was in contact with the nozzle. There is a melted portion to the right hand side of the photo. I think this is because the ducted fan was blowing in that direction.

By the time I found it the printer nozzle was cool, I think because the heater cartridge itself had burned out. Needless to say I feel very fortunate that this was the worst that had happened. If any of the flammable PLA parts had caught fire then it would only have been my smoke detector and fire extinguisher standing between me and a firey death.

There are some protections against this kind of thing happening built into the Marlin firmware that is running on my Melzi control board. The firmware monitors the thermistors and if they behave in an unexpected way, such as going open circuit or not showing any temperature rise despite the heater being on, then it will stop everything. This was a big improvement over the early days where if the thermistor became disconnected, or fell out of the hot end, the firmware would assume that the hot end was too cold and keep pumping in more heat.

In my case this thermal runaway protection didn’t help me because the whole board had become unresponsive. Any protection measure that’s based on firmware will not help if your control board crashes.

I have had situations where the control board became unresponsive before. In those situations I have started up the printer but not been able to connect to the Melzi board that controls it. I can’t remember exactly what I did to fix it in those situations, but I think I took out and reconnected all the wires plugged into the Melzi. My current theory on what happened is that while the whole thing was moving around one of the connectors going in to the Melzi became briefly disconnected, and that caused the firmware to crash at a moment when both the heated bed and the nozzle were on.

The heated bed itself seems undamaged. I think this is because of its large surface area – the maximum temperature it can reach is limited as at higher temperatures the heat loss from the surface matches the maximum power of the heater.

All other parts outside the hotend were also undamaged, other than the ducted fan nozzle which had some melting where it had been very close to the nozzle. I am hoping this is because of conduction from the hotend rather than from any flames coming from the part below. I take this to mean that the heat break from the hotend to the rest of the printer did a good job. The Melzi started working again once a new thermistor was attached to it, but I don’t know if this is because the thermistor caused the problem or because the thermal runaway protection was preventing it from starting while the thermistor was destroyed. The power supply also stopped making strange noises after being left unplugged for a few minutes, so I suspect it was somewhat overheated from driving the heated bed continuously. I will have to keep a careful eye on them to make sure there is no hidden damage.

I’ve got new parts to replace the hotend from, but I’ll need to make some modifications to make them fit my ancient version of the Huxley. Once it is repaired I will be running wholly supervised until I can be sure I have safeguards that will prevent something like this happening again. So far my ideas are:

  1. Build an analogue circuit attached to a second thermistor in the hotend that will cut power (via a relay) if the hotend goes above a certain temperature
  2. Put a thermal fuse in series with the hot end heater cartridge attached to the hotend
  3. Write a program that will work with the ocotopi controller to cut the power relay if it can no longer communicate with the Melzi board
  4. Put a fire suppression system like this over the printer

3 thoughts on “Meltdown

  1. Sorry to hear that your baby has tried to kill you. Does it make you kind of proud that Squirty’s made this first big step towards world domination?

    I’m planning to implement the former of your plans, simple analogue circuit to monitor case temperature and / or something close to hot end, then throw a relay to the main power, requiring manual rest to come back to life. I’ll keep you posted when my thumb detached from my rectum and I actually do something of that.

    1. Rob sorry I missed this comment. I tried the analogue circuit but failed miserably. My idea was to use a Schmidt trigger circuit and set it up so that it would switch and latch when the voltage across the existing thermistor dropped below a threshold voltage. I measured the voltage at ~250C and it was 0.4V, but since this is too low to put a transistor in the linear region I couldn’t work out how to make a circuit that would trigger on it without having access to a negative rail or adding a second thermistor with some clever biasing circuit. So I have given up on that approach and am instead mounting an arduino uno that will monitor a separate thermistor and throw the relay if it gets too hot. I was hoping not to rely on any new-fangled digital jiggery-pokery, but at least this way I can add other cutoffs such as timers that will shut off if the power to the hotend is on too long.

      1. I’ll see if I can rustle up something that’ll do the job for when I fly out next month. I guess you’d prefer something that’s running off the prime ~19V supply for Squirty?

Leave a Reply

Your email address will not be published. Required fields are marked *