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.



  • Hi,

    I've just seen that the first RRF3 beta has been released: Github
    Has the above mentioned feature been implemented yet?
    I couldn't find it in the RRF3 firmware overview section.

    Another question: Does the M220 command (speed override) work during a G1 motion command? Or is it executed in the normal command chain after the motion command and only used for the following motions?



  • @hatoff said in Controlling only extrusion with G-Code/WebInterface:

    Hi,

    I've just seen that the first RRF3 beta has been released: Github
    Has the above mentioned feature been implemented yet?
    I couldn't find it in the RRF3 firmware overview section.

    Another question: Does the M220 command (speed override) work during a G1 motion command? Or is it executed in the normal command chain after the motion command and only used for the following motions?

    You can easily determine this from the console (web or whatever). Start a long move with a very low feedrate (so you have time to type). Watch as you issue an M220.


Log in to reply