Results of Testing Heater Fault Interlocks / PS_ON
-
I announced back in mid 2017 that I was stopping support for Duet 06 and 085 (see for example https://forum.duet3d.com/post/21969). I have never received any financial benefit from the sale of those older Duets. In fact I continued to do builds for Duet 06 and 085 for another two and a half years, although I relied on others to test them. But I have to draw the line somewhere.
Of course it is open to anyone to back-port changes in RRF3 to RRF2 where they are relevant.
-
@droftarts no worries.
-
@dc42 I understand you rely on others to test them. That is what I have done, and shared the results with you. However, my specific question to the Duet staff was; "Can you confirm if the three main bugs identified here have been resolved in RRF3?" ...as I suspected these bugs may have persisted through the newer versions of RRF. Basically a heads up to check for some odd behaviours.
-
@DocTrucker, can you elaborate on the PS_ON aspects of your experiments? For example, did the PS_ON output changed state on heater fault? Did you have any PS_ON specific configuration? (the documentation of the M570 command doesn't mention any PS_ON configuration). The video doesn't seem to have a visual indication of the state of PS_ON.
[if PS_ON reacts automatically to heater fault, I would like to reproduce it on my machine and then use it to cut heaters power using a mechanical relay]
-
@zapta Sure. I was running a four channel Arduino mechanical relay board for these tests, which was driven by PS_ON. I didn't need to configure this in an special way other than putting M80 as the last line of the config.
M570 H0 P10 T10 S0 ; Allow a heat bed anomaly to persist for 10 seconds (P10) ; on the before raising a heater fault. Allow a 10C ; deviation from set point (T10) After 0 minutes of heater ; fault cancel the build (S0). M570 H1 P10 T10 S0 ; Allow a hot end anomaly to persist for 10 seconds (P10) ; on the before raising a heater fault. Allow a ; 10C deviation from set point (T10) After 0 ; minute of heater fault cancel the build (S0).
With the heater fault detection setup as above the PS_ON was triggered as the build process was cancelled. The S parameter controlled the time between the heater fault bring raised and the build being cancelled. I tried setting it to 0.17 (10 seconds) but that was just treated as 0. I assume this input is integer, but to be fair I didn't try decimals above 1. With 1 as expected the delay between fault raised and PS_ON interlock was 1 minute.
The upper and lower deviations in the above example allow the temerature to deviate by 10 degrees from set point without error. It also states that the temp can exceed this range for 10 seconds before tripping out. I assumed this is to hrlp in situations like the part cooling fan reflecting of a part and crash cooling the head, or electrical noise. The 10 second parameter behaved as expected for the deviation faults, but not for the upper/lower limit alarms.
The responce time for the exceefing maximum/minimum limits appeared a little inconsistent, but was generally close to instantly raising the fault, before waiting with the fault for the time defined in the S parameter of M570 before PS_ON interlock.
The heater not warming as quickly as expected alarm behaved similarly to the exceeding upper or lower limits alarm.
Essentially all behaved broadly as expected with regards the PS_ON control of a mechanical relay. The only surprises were you could cause the upper deviation and upper limit alarms to fail to trigger by starting a build process above these points. There was also indication that semseor noise is likely to cause artefacts on printed parts as dropping low causes the extruder to lock.
With my relays they were rated high enough to interlock the posative feed directly to the heaters. This is the least fuss way of interlocking as you need not worry about fans. If you interlock the mains side of the VIN supply then you need an additional 5V supply to the board, and should consider a seperate supply for the fans too or a heater interlock could wuickly result in a jammed hotend.
Post written from phone, so many typos expected! I'll correct thrm as I spot them!
-
I've got a Duet 3 and will run these tests as soon as practical (machine not ready yet) as it appears the exact behaviour of RRF3 is not clear. I would assume it is no worse than RRF1, but tests will verify.
-
@DocTrucker said in Results of Testing Heater Fault Interlocks / PS_ON:
I've got a Duet 3 and will run these tests as soon as practical (machine not ready yet) as it appears the exact behaviour of RRF3 is not clear. I would assume it is no worse than RRF1, but tests will verify.
Thanks, but I suggest you hold off doing that until RRF3.01-RC4 is released, so that I know that the results you report are up to date. Please note that M143 parameters have changed in RRF3. The simple case of just setting a temperature limit has not changed, but the more complex cases have.
-
@dc42 will do. I expect you will have that ready before I am, or at least before I've got my head around the RRF1/2 to RRF3 config changes!
-
Thanks @DocTrucker, this is very useful. I will try to replicate the triggering of PS_ON by heater failure. Having a relay switching off the heaters is a good idea and straight forward.
-
@zapta I've just got the standard 30W heater and 100W heatbed, so they are well within the capacity of the arduino relay boards and they come with the added perk of being conveniently mounted with all necessary flywheel diodes. I doubled up two sets if contacts per heater and added fuses below the rating of the relays.
-
@DocTrucker, my bed heater is 24V 350W so I need a larger relay. DC relays are harder to find but this one seems to be a good fit https://www.digikey.com/short/z8wc8f
What kind of relay do I need, NO or NC ?
Good point about the diode, PS_ON doesn't have a protection diode so I will add it on the coil. I presume also that a SPST relay can also work since the +24V ends of the nozzle and bed heaters can be tied together.
-
Visit your local car parts store (or dumpster). They have plenty 12V & 24V relays capable of switching 30Amps, and starter solenoids capable of switching a whole lot more.
-
@DaBit, you are right, and at much better prices than Digikey. E.g. https://www.amazon.com/Ehdis-Automotive-Starter-Footprint-Terminal/dp/B01IV7D1Q8
-
@zapta Use the NO contacts, pass a permanent posative to one side of the coil and the ground side to PS_ON. If the permanent posative comes from a seperate power supply to VIN and/or external 5V supply to the board ensure the negative poles of all the power supplies are tied. Some automotive relays have flywheel/flyback diodes but not many.
-
@DocTrucker, I was able to replicate the PS_ON trigger on heater exception but only while printing. In a non printing state PS_ON failed to respond to a heater exception. Can you try replicating on your machine? I think this is a safety issue.
-
While in idle, set the nozzle temperature to 200C. (I used the PanelDue to do this, can be done also with the Web UI).
-
Let the nozzle reach it's target temp.
-
Short the nozzle power mosfet (e.g short the E0 (-) output to the ground of the power supply), and watch how the nozzle temperature keep rising above 200C.
-
At some point, the duet will try to stop the heaters and give a failure message. Disconnect the mosfet short immediatly.
-
Observe if PS_ON got triggered (that is, your relays will go off).
-
-
@zapta PS_ON interlock while idle has been om the wishlist for a long time. The argument is you are expected to be by your machine while idle. In my books that doesn't hold because if you're away from the machine during a build, then you are unlikely to be by it at the instant it finishes.
Another interesting observation. People on here can get twitchy when running more than 30W on the hot end. Slice Engineering's Mosquito has a default 50W offering!