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

    Advice on implementing variable feedrate extrusion

    Scheduled Pinned Locked Moved Unsolved
    Firmware developers
    2
    4
    242
    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.
    • soccerpaulundefined
      soccerpaul
      last edited by

      Hi,

      As part of my master's project, I'm using a Fanuc 6-axis robot to print parts. I'd like to control the print heads using a Duet 3 controller. So far heater & fan control from the robot via the serial port works fine, but I need to sync extrusion commands to the robot's motion. The robot can output an analog signal proportional to it's current speed, so I'd like to use that to modulate the extrusion speed. Our current proprietary printhead controller uses the same method and it works pretty well.

      Unless I'm mistaken, the Duet doesn't have a way of doing that right now (unless meta commands can do this?), so I've been looking at modifying the firmware to do so. I took a quick look at the code and was thinking of defining a new gcode command similar to G1 and make it work with a modified version of DoStraightMove. I noticed M594 and M951 do something similar to modify the z height real-time and use the auxDDAring, so I thought I might take a look at that as well.

      Do you have any advice on how to implement this? Am I on the right track or is there a much better (easier) way?

      Thanks for your help.

      PCRundefined 1 Reply Last reply Reply Quote 0
      • soccerpaulundefined soccerpaul marked this topic as a question
      • PCRundefined
        PCR @soccerpaul
        last edited by

        @soccerpaul nonlinear extrusion does not work??

        soccerpaulundefined 1 Reply Last reply Reply Quote 0
        • soccerpaulundefined
          soccerpaul @PCR
          last edited by

          @pcr Unless there's something I haven't seen, I don't think so. Nonlinear extrusion allows you to compensate for back pressure in the nozzle but doesn't allow you to actively modify your extrusion speed to match an input. The 6 axis robot moves pretty differently to a printer, acceleration/jerk values vary based on the printed geometry and it typically slows down in curves more than a printer would. I couldn't predict any of that ahead of time. I've also tried sending short extrusion commands over serial at a reasonably high frequency with different feedrates to match the robot's speed but (as expected) it doesn't work particularly well.

          1 Reply Last reply Reply Quote 0
          • soccerpaulundefined
            soccerpaul
            last edited by

            @dc42 Do you have any recommendations for this? Ideally I'd like to implement this in a way that's coherent with the rest of the code and potentially useful for other applications.

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