Controlling only extrusion with G-Code/WebInterface
hatoff last edited by
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
G1 E1000 F1000
G1 E-1000 F2000 (retract)
I hope I could describe my idea,
Thanks for your help!
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?
hatoff last edited by
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?
RRF3 should be available as an official beta before the end of this month. News features may take a little longer to implement.