Is PS_ON controlled by a thermal error?



  • In Canada, firearms safety training takes the strategy of multiple layers of safety, so that if one layer breaks down, you have others preventing you from putting a hole in something you don't want a hole in.

    I take a similar tack for 3d printer safety. I've got a smoothieboard setup so that if the enclosure temperature rises higher than a well known upper limit, it throws a fault, turn off the hotends, and shuts off the power supply. Smoothieware is also setup by default to throw a fault and turn off the psu for any of the normal thermal runaway detection routines on the hotend and the bed. The printer is also completely enclosed in a metal cabinet if all else fails.

    This provides protection against a thermal runaway from:

    • thermistor coming loose
    • mosfets failing and latching on
    • electrical fire not caught by fuses
    • mechanical crashes from continuing to move after a heater has shut off causing a print to release from the bed

    It's proven itself to be a very reliable way of killing the power if the temp fluctuates too much. I've had a thermistor fail a number of times, and it's always shut itself off before the temperature goes anywhere.

    This depends on the board controlling PS_ON any time there is a fault detected. I've done some searching for the duet, and I can't find a definitive answer on if the board will turn off an atx power supply if there's a temperature fault. I found some posts from 2016 saying it wasn't yet implemented, but considering Smoothie, Marlin, and Repetier all work this way, I was hoping it was implemented by now. Can anyone shed some light?


  • administrators

    RepRapFirmware doesn't turn PS_ON off when a temperature fault occurs. I agree that it would be the safe thing to do. Unfortunately unless you have a PC attached then if the power is turned off, you won't be able to see the error message telling you what type of temperature fault it is.

    Here are a few possible ways forward:

    1. Implement it anyway.
    2. Implement something less drastic. For example, after a temperature fault has occurred and the heaters turned off, if the temperature that faulted doesn't start coming down, turn the power off. This needs careful thought to choose the criteria.
    3. Defer implementing it until I have implemented event logging to the SD card.
    4. Make it configurable - but I'd prefer to avoid this.

    What would you and other users prefer?



  • What about implement anyway, and have it save a text file to the SD card as a log reason? Then just strip that function out once event logging is ready.



  • Could you implement an mcode that allows you to get the reason for a fault? Perhaps as a parameter on the code that clears the fault? My board has aux 5v power, so it should stay running and allows network connections to it after a fault, so if you didn't happen to catch what was in the gcode view window, you could ask for the last fault that was logged in memory as a stop gap between now and logging to sd. I'd prefer it to logging to sd anyway, so maybe "both" is a reasonable long-term answer?



  • Any other users like to comment? I feel that this is a very important safety feature. I don't have any other way to automatically handle the "mosfet failed in the latched on position" situation other than the less reliable and responsive thermal fuse.



  • Why not use heaters that physically can't reach dangerous temperatures? A E3Dv6 with 30w heater shouldn't exceed 300C or so.



  • @elmoret:

    Why not use heaters that physically can't reach dangerous temperatures? A E3Dv6 with 30w heater shouldn't exceed 300C or so.

    I prefer shutting my power down at the first sign of trouble, rather than having a runaway cook and char filament until I've noticed the problem, making the cleanup job on small nozzles on complicated direct extruders bigger.

    I use that exact setup to print at 330c regularly. It still doesn't help those that need to use the heaters they are stuck with, for one reason or another. A commonly supported firmware feature makes that doable. What if someone needs to print at 400+ sometimes, like if they print PEEK and requires a powerful heater to do that? too bad?

    I don't see "repurchase all of your heaters if you switch from a RAMPS or Smoothieboard to a Duet" to be a reasonable thing to ask, especially when some are quite expensive or specialized, do you? In my case it adds about $500 to my "upgrade to a duet" project and negates the reasons I chose the heaters I did.



  • The reason for my suggestion is that properly sizing heaters is 100% failsafe. All other solutions are not - for instance what if the firmware hangs and doesn't shut off the PS_ON signal or the hotend's FET?

    If the heater will only get hot enough to cook the filament, that's a pretty tame result for something should happen basically never (FET failure or firmware hang).

    As for PEEK printers, that is likely an incredibly small slice of the market. Do you know anyone that is printing PEEK?

    Heaters are $7, less in bulk. To get to $500, that'd be ~80 hotends worth of printers. Are you genuinely talking about 40-80 printers? If so, that large of a bulk order would likely move the firmware feature request up in the queue.

    Either way, I'm sure that the firmware request will eventually get done - dc42 has already said as much. I am just proposing an interim (and to be honest, more complete/safe) solution to do in the meantime.

    If you don't wish to use appropriately sized heaters and want a solution against a stuck FET in the meantime, you could wire a second FET in series with the stock FET.

    Could also modify the firmware yourself, the beauty of open source! Looks like you could do something around line 200 of the PID.cpp to kill PS_ON. Looks like there's code for setting the state of PS_ON in Platform.cpp.



  • elmoret your answer is rather narrow minded…. no offense but there are plenty of people who want to print with filaments that just cannot be achieved with 30W heaters..... This is why E3D sells the copper heat blocks and PT100 sensors FOR PRINTING WITH HIGHER TEMPERATURES

    Not to mention that the OPs criteria for PEEK was just an example, how about some of the specialty filaments from 3DXTech like Firewire??? I have a couple rolls of this.... should I just throw it out and downgrade to 30W heater to appease people like you? or should we accept the fact that there is a reasonable risk in printing filaments like these with powerful heaters but work to bake in as many safety features as possible.

    How about instead of limiting everyones scope we work to bake in as many safety features as possible to make it SAFER for those who want the ability to print in specialty filaments instead of chastising us for wanting to do so.



  • @Whitewolf:

    How about instead of limiting everyones scope we work to bake in as many safety features as possible to make it SAFER for those who want the ability to print in specialty filaments instead of chastising us for wanting to do so.

    Where did I chastise anyone? Where did I say we shouldn't add this feature? Heck, I even pointed out how it could be added to the firmware. I'm just suggesting alternatives in the meantime until the feature is implemented.

    @Whitewolf:

    there are plenty of people who want to print with filaments that just cannot be achieved with 30W heaters….. This is why E3D sells the copper heat blocks and PT100 sensors FOR PRINTING WITH HIGHER TEMPERATURES Not to mention that the OPs criteria for PEEK was just an example, how about some of the specialty filaments from 3DXTech like Firewire??? I have a couple rolls of this....

    What filaments? PPS (Firewire) prints at 325C… which is achievable with a 30w heater like said previously in the thread.

    Autoignition of PLA/ABS is around 380C and 390C, respectively. So if the heater is sized such that 350C can't be exceeded, there's no more autoignition risk. A ~350C limit only precludes PEEK. I doubt "plenty of people" are printing PEEK. Even if you expand it to PPS/PEI, I doubt 99% of users will ever print those materials. So the heater sizing handles every possible controller issue, and works for 99% of folks. The other 1% could do a second FET while waiting for the firmware update.



  • Actually you are but we can disagree to disagree on that point… Your replies do not say hay I dont disagree with that feature.... your replies including the one that you just wrote to me are all justifications on why people should just not use 40W heaters.

    Why not use heaters that physically can't reach dangerous temperatures? A E3Dv6 with 30w heater shouldn't exceed 300C or so.

    I am not going to quote literally every reply you made but they are all attempting to shoot the idea down because it doesnt fit your 99% use case… But what I will admit, I read the part incorrectly on source code bit off from my lack of sleep last night, yes you were trying to be helpful there.

    Firewire temp range is Extruder Temp: 350 - 380°C (all-metal extruder)

    I do not print at the lowest end of the range, parts do not perform well doing so.... I did not buy a 3D printer to print toys, I own 0 rolls of ABS and 2 rolls of PLA.... PLA is only used for initial design testing, final prints are all done in specialty filaments.

    I did not spend a bunch of money upgrading to a DuetWifi, PT100, E3D copper heat block (good to 500C) so I could print toys.... Are all the filaments 330C+ ? no but that that is why they make the PT100 and Copper heat blocks... to make successful high temp prints on specialty filaments not PLA and ABS.... so yes while most happily print along with Toy filaments, most also do not need PT100's and Copper heat blocks but they are here for those of us that do.

    Plated Copper-Alloy Heater Block

    These blocks are engineered for ultimate high temperature performance. Made from a special high temperature copper-alloy with a softening point of well above 500C (compared to aluminium blocks which begin to lose integrity beyond 350C), and much-increased thermal conductivity these copper blocks are perfect for high temperature applications while working perfectly with everyday filaments like PLA, ABS and spoolWorks EDGE.

    In addition to high temperature performance these blocks have an advanced nickel based plating, this plating considerably reduces the adhesion of plastic to the block. This is great for everyday filaments keeping things clean and shiny, but is particularly important at temperatures above 300C where a silicone sock can't be used.

    Combine with our plated copper nozzles for the ultimate extrusion pairing.

    So yes while the majority is printing fine with 30W heaters, that does not mean that there is a small few that are otherwise e3d would not be making products catered to us. Those of us who are using filaments like these understand that there are inherent risks but that means we also need to put as many safety stops in as possible….

    I am glad that 30W heaters work for the majority, but I am also glad that we have the capability of printing at higher temps if we need to. Just like I am glad that while CNC machines running aluminum frames and toy steppers exist I am also glad we have access to more advanced industrial steel frames and high end servos. Each level coming with more and more risk, but along the way we do our best to mitigate it.... we don't say to everyone no Dont buy the steel frame and high powered servo you might kill yourself.... instead we say, hay lets bake as much failsafe into that machine as reasonably and economically possible, so that for those with a need for the high powered machines can be as safe as possible.

    Maybe instead of finding reasons for why people shouldnt use powerful machines, we brainstorm some ideas to create failsafes in the event that something does go wrong.



  • Notice that part of the quote from e3d where aluminum blocks begin to lose integrity above 350C and the sock cannot be used above 300C? So maybe your suggestions for people should be if you do not own a copper alloy heat block from e3d then you should not be using a 40W heater for safety reasons.



  • With that note, by upgrading my system to duetwifi and macro capability I am able to hot swap hotends from single extruder to dual extruder etc… for myself there is no reason i cannot print a another carriage that has a 30W heater so it is only powered by 40w when printing above 330C... now thats a good safety feature... lets brainstorm some more good ideas like the origional posters idea and this one.

    I am sure there is more that can be done 🙂



  • don't mean to be a butthead but… I don't want the machine limited by safety! if i can get parts that will work above 300C, i should be able to get safety at that level. Too many new filaments coming out and i can easily see the need to exceed 30 watts just for the high tech filaments that are in my future... These 2 items should be addressed separately. Safety is always a concern but the machine has to function 1st. just my 2 cents... IE polycarbonite and even some carbon fiber stuff are prime examples.



  • A couple more that benefit from 40w and copper block

    Carbon fiber Ultem (PEI) Extruder Temp: 330 - 350°C (all-metal extruder)

    Ultem 9085 (PEI) Extruder Temp: 330 - 350°C (all-metal extruder)



  • @Whitewolf:

    Your replies do not say hay I dont disagree with that feature….

    What? I said that I'm sure this request will get implemented, suggested implementing it (said "what about implement it anyway") and also pointed out how it could be done. I also never disagreed with implementing it, but if it helps:

    I don't disagree with implementing this feature.

    I have said it multiple times, and I'll say it again: My suggestion of 30w heaters is for the 99% of people that don't print over 330C. Quite simply, if you don't print over 330C, a 30w heater is the safest thing you can do because it covers every controller failure mode there is, including multiple FET failures (which the PS_ON feature would not protect against).

    For the other 1%, those people that do print over 330C, I am certain that DC42 will implement the requested changes, he has already said as much. But in the meantime, I offered some suggestions as temporary workarounds. (Adding a FET, implementing a temporary firmware change).

    @Whitewolf:

    Maybe instead of finding reasons for why people shouldnt use powerful machines, we brainstorm some ideas to create failsafes in the event that something does go wrong.

    Agreed. But those failsafes take time to implement (so it is worth discussing interim measures) and no failsafe is perfect (so if you don't need 40w heaters, don't use them).



  • agreed, steady as she goes… safely is a huge concern with my printer. current job estimates 60+ hours so no way to baby sit it that long. Fingers crossed LOL



  • @elmoret:

    Agreed. But those failsafes take time to implement (so it is worth discussing interim measures) and no failsafe is perfect (so if you don't need 40w heaters, don't use them).

    Agreed



  • The safest method would be swapping the 40w for the 30W when you dont need the extra power, but we definitely need some safety baked in when we do. Molex quick fittings for the heater cartridge should make it so it is not such a pain.



  • @elmoret:

    Heaters are $7, less in bulk. To get to $500, that'd be ~80 hotends worth of printers. Are you genuinely talking about 40-80 printers? If so, that large of a bulk order would likely move the firmware feature request up in the queue.

    It's also not 100% failsafe like you suggest. Internal shorting of heater coils (happened once to me on a common silicone bed heater) can produce higher temperatures than intended. It also existed for some time before I realized it, giving an opportunity for a mosfet to latch closed. It's also not at all practicable in my application (my goals are engineering around some bed mass vs losses near the edges, which require a particular watts per square inch, and are at odds with the goal of designing for a maximum attainable temp. I have a custom made bed that would need to be changed, as well as my goals for that bed.

    If I must do a firmware modification myself, I will. Luckily I have the skills to do this. Many people don't.

    My suggestion is to add a common and easy to fast track the additional layer of security for if all the others fail.

    A second fet requires a board modification that many users are not confident doing. I'd really much rather not make modifications to a perfectly working brand new board. It's an easy modification, just need to tap into the Gate signal, but still, I don't see this as a replacement for my suggestion. Infact, I may end up doing both, thermal fuses for this application are tricky to do well.

    I'm still requesting that if there's a compromise we can come to that can result in this being implemented for everyone across the board faster, we should do it.

    What do you all think about an Mcode that allows you to request the reason for a power-off event if you weren't connected to the machine to observe the gcode window?


Locked
 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.