Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    High Power Safety : Fault Correction via Contactor

    Scheduled Pinned Locked Moved
    Duet Hardware and wiring
    3
    9
    291
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • TLASundefined
      TLAS
      last edited by

      I feel like I should know this…. But is there any heater enable / fault functionality built into the Duet to enable a contactor?

      From what I’ve read recently, SSRs with mains voltage can be dangerous for two reasons: 1) because these often fail to the “on” state, and 2) even when off there is a possibility of enough ‘leakage’ current to kill someone.

      I would like to add in a contactor that would function as follows:

      For heaters 1 and 2, a contactor is placed after the SSR on each wire, but before the heater load. The first time heater 1 or 2 is turned on, the duet energizes the contactor and enables the heaters. When a fault is detected by the software, the duet de-energizes the contactor, cutting any power even if the SSR failed to the ‘on’ state.

      Does anyone have experience doing this? Seems like a necessary precaution for safety using SSRs.

      TLASundefined 1 Reply Last reply Reply Quote 0
      • TLASundefined
        TLAS @TLAS
        last edited by

        Anyone know if conditional G-code can do something like this with a preheat command or something?

        deckingmanundefined 1 Reply Last reply Reply Quote 0
        • deckingmanundefined
          deckingman @TLAS
          last edited by

          @TLAS It's 5:30 a.m in my part of the world and the caffeine hasn't kicked in yet, so take the following with a pinch of salt. But I guess you could use a gpio pin to switch an optically isolated relay. Not sure what the logic level is, probably 3.3v so you might need a level shifter to switch the relay. Then you could query the object model to see if the state of heater 0 is active and if it is, make the gpio pin high, which would activate the relay.

          Of course, nothing is ever 100% failsafe as the relay itself could fail on if there was any arcing across the contacts, but it's another level of protection.

          A simpler solution that a lot of people use is a thermal fuse. Wire it to the feed of the SSR, then if it fails in the on state, the temperature will rise and trigger the fuse which will cut power.

          Ian
          https://somei3deas.wordpress.com/
          https://www.youtube.com/@deckingman

          TLASundefined 1 Reply Last reply Reply Quote 1
          • TLASundefined
            TLAS @deckingman
            last edited by

            @deckingman

            Good thoughts. On the gpio pin, is there something that is looped / checked more continuously? I haven’t looked at GPiO pins since the duet 1 days.

            deckingmanundefined 1 Reply Last reply Reply Quote 0
            • deckingmanundefined
              deckingman @TLAS
              last edited by

              @TLAS said in High Power Safety : Fault Correction via Contactor:

              @deckingman

              Good thoughts. On the gpio pin, is there something that is looped / checked more continuously? I haven’t looked at GPiO pins since the duet 1 days.

              That's a good point - I told you I wasn't awake. TBH, I'm no expert on conditional gcode so someone with more knowledge than I needs to jump in here. There is something called daemon.g or some such which runs continuously in the background but the polling/update frequency might be a bit too slow for what you are trying to do.

              Ian
              https://somei3deas.wordpress.com/
              https://www.youtube.com/@deckingman

              TLASundefined 1 Reply Last reply Reply Quote 0
              • TLASundefined
                TLAS @deckingman
                last edited by

                @deckingman
                That might still be a good solution to look into. I’ll do some digging.

                alankilianundefined 1 Reply Last reply Reply Quote 0
                • alankilianundefined
                  alankilian @TLAS
                  last edited by

                  @TLAS For things that will kill people if not properly managed, I've used a "Watch dog".

                  For this application, you could attach a timed-relay set to something like 5 seconds to the coil of your contactor.

                  Then, have a GPIO that pokes the timer and it will stay closed for 5 seconds.
                  If you poke it every 4.99 seconds (or anything faster than that) the heater will stay enabled.

                  If you ever miss a time slot, the heater will be automatically disabled. This could be because the Duet crashed (unlikely!) or your code noticed the heater fault and stopped poking the GPIO pin.

                  There are a million time delay relay boards on that Jungle website.

                  If you want to discuss this in more detail, just reply here.

                  SeemeCNC Rostock Max V3 converted to V3.2 with a Duet2 Ethernet Firmware 3.2 and SE300

                  TLASundefined 2 Replies Last reply Reply Quote 2
                  • TLASundefined
                    TLAS @alankilian
                    last edited by

                    @alankilian
                    That’s a great application and approach! I used a timer previously on a project back in college but kind of forgot about them in the digital age.

                    In regard to the duet side of the timer - is that something to do via conditional gcode in daemon.g or more pi-based functionality?

                    1 Reply Last reply Reply Quote 0
                    • TLASundefined
                      TLAS @alankilian
                      last edited by

                      @alankilian @deckingman
                      Looks like daemon.g with a G4 command should do the trick. Thanks for the tip on the timers!

                      1 Reply Last reply Reply Quote 1
                      • First post
                        Last post
                      Unless otherwise noted, all forum content is licensed under CC-BY-SA