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

    Process Control with Duet

    Scheduled Pinned Locked Moved
    General Discussion
    5
    10
    433
    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.
    • Garth_42undefined
      Garth_42
      last edited by

      Hello everyone, my company is working with printing thermoset resins out of a mixing extruder. Since the resin is time-reactive, once X amount of time passes, the static mixing tip clogs.

      I was wondering if there is a way to implement a process control so the printer knows to purge the mixing tip every X seconds since the last extrusion. This way G-code doesn't need to be post-processed to add purges from simulating the g-code.

      Now that I am thinking about it, the DSF would potentially let me stream G-Code to the printer and the python program streaming the G-Code could take care of this?

      Thanks for your responses,

      Best,
      Garth

      1 Reply Last reply Reply Quote 0
      • A Former User?
        A Former User
        last edited by

        you might be able to do some voodoo with daemon.g on the duet itself, but a bit how-do-you-do until a firmware supporting user variables is released.

        dsf is probably less pain

        is the "extruder" piston type pump or rotational ala peristaltic? in case you want a belt and suspenders type solution that can be more or less an independent watchdog.

        Garth_42undefined 1 Reply Last reply Reply Quote 0
        • jay_s_ukundefined
          jay_s_uk
          last edited by

          I think the difficulty you'll have it knowing when the extruder last extruded.

          Something like this may work but you would need to edit the gcode.
          If after every extrusion move you set

          G10 L9 Z1
          

          and then in daemon.g run

          ; daemon.g
          while {move.axes[2].workplaceOffsets[8]<60}
               G10 L2 P9 Z{move.axes[2].workplaceOffsets[8]+1}
               break
          if {move.axes[2].workplaceOffsets[8]==X}
              add extrusion move here
          

          This basically increments the value every second or so and then when the magic number X is reached, whatever your added will happen

          Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

          Garth_42undefined 1 Reply Last reply Reply Quote 0
          • Garth_42undefined
            Garth_42 @A Former User
            last edited by

            @bearer the pump is a ViscoTec extruder, it is a screw type pump. Thanks for the thoughts!

            A Former User? 1 Reply Last reply Reply Quote 0
            • Garth_42undefined
              Garth_42 @jay_s_uk
              last edited by

              @jay_s_uk oh that is really interesting! Thanks for the idea.

              1 Reply Last reply Reply Quote 0
              • A Former User?
                A Former User @Garth_42
                last edited by

                @Garth_42 said in Process Control with Duet:

                it is a screw type pump

                if you can get to rotational bits then an encoder might be able to provide out of band monitoring with something like and arduino like board,

                Garth_42undefined 1 Reply Last reply Reply Quote 0
                • dc42undefined
                  dc42 administrators
                  last edited by

                  We could add an item in the object model to give the time when an extruder last moved. That would allow you to use a Gcode command to do a conditional purge.

                  Duet WiFi hardware designer and firmware engineer
                  Please do not ask me for Duet support via PM or email, use the forum
                  http://www.escher3d.com, https://miscsolutions.wordpress.com

                  1 Reply Last reply Reply Quote 0
                  • chrishammundefined
                    chrishamm administrators
                    last edited by

                    Or you could write a DSF plugin that monitors the total amount of extruded filament. Whenever it changes, you could reset a timer and send a purge command when it expires.

                    Duet software engineer

                    1 Reply Last reply Reply Quote 0
                    • Garth_42undefined
                      Garth_42 @A Former User
                      last edited by

                      @bearer Unfortunately, I can't although this would be a good work-around that requires little firmware alteration.

                      1 Reply Last reply Reply Quote 0
                      • Garth_42undefined
                        Garth_42
                        last edited by

                        @dc42, that would be great but if it isn't quick don't worry about it. We have other workarounds to the issue and while what you proposed is the most elegant solution, it isn't necessary yet. In the future it may become more important though.
                        @chrishamm thanks for the suggestion, I will keep that in mind as we are currently using the DSF for some other functions.

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