Controlling only extrusion with G-Code/WebInterface



  • Hi,

    im am using a Duet3d Maestro board to control a DyzeDesign extruder. I actually do not need the X,Y and Z drivers and only connected the extruder stepper. The kinematics are controlled by a different system and I am having problems synchronizing the extrusion with the movements of the kinematic system.
    Currently I am sending the full G-Code via HTTP requests to the Maestro so that the necessary extrusion speed (/feedrate) is calculated by the firmware using the given extrusion length and the distance (X,Y,(Z)) between the waypoints (just like conventional fff printers). I also set the speed factor over 100 %, so that the Maestro is just a tiny bit ahead of the kinematic system every step. I also only send the next 2 G-Code commands in the command chain to the Maestro, so that it can never "outrun" my kinematic system entirely. So far the results look quiet promising despite the lack of "realtime" communication between the two systems.

    What I would like to do is control the extruder by continuosly sending extrusion speeds and running it "infinitely".

    I thought about just sending commands with very high E values like "G1 E1000 F1200" and then "G1 F1000" to change the speed. But as I understand it G-Code is processed step-by-step so that the "G1 E1000 F1200" command would block the command queue until it is finished. Is there maybe a way to stop the current movement and clear the command buffer? Like this (pseudo code):
    G1 E1000 F1200
    Stop (immediately)
    G1 E1000 F1000
    Stop (immediately)
    G1 E-1000 F2000 (retract)
    Stop (immediately)

    I hope I could describe my idea,
    Thanks for your help!


  • administrators

    There isn't currently a command to terminate the current move without doing an emergency stop, but I plan to add one in RRF 3.

    How do you plan to synchronise the acceleration of the extruder with the acceleration of the mechanical positioning system?



  • Thanks alot for your fast answer.
    I am able to get the current cartesian velocity (maybe also the acceleration) of my kinematic system (an industrial robot) every 4 ms. So I could continously update the extruder speed according to the current robot speed.

    For now my solution (as described above) works okay. I will wait for RRF 3 and try it again with your new additions. Is there a (rough) timeframe for the release of RRF 3?


  • administrators

    RRF3 should be available as an official beta before the end of this month. News features may take a little longer to implement.


 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.