Process Control with Duet

  • 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,


  • 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.

  • 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}
    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

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

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

  • @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,

  • administrators

    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.

  • administrators

    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.

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

  • @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.

Log in to reply