Extrude without tool selection?



  • Is there a GCODE I can use to drive a specific extruder motor without selecting a tool using Tn?


  • administrators

    @SpoonUnit said in Extrude without tool selection?:

    Is there a GCODE I can use to drive a specific extruder motor without selecting a tool using Tn?

    You can do that by creating a new axis assigned to that motor using M584, and commanding that axis to move. Hide the axis (M584 P parameter) when you are done moving it.



  • Thanks for the pointer @dc42

    I just managed to get it to move, but it wasn't quite as simple as it sounded, and I may have uncovered a bug.

    In my case, extruders are defined with M584 E3:4:5:6. I wanted to control motor 6 then, so assigned this to the U axes with M584 U6. This immediately alters DWC UI to display the additional axes as expected. This is then an unhomed axes so I know I would need to take that into account when requesting motion. G0 H2 U-30 resulted in no motion. At this point I suspected that motor 6 was probably not going to initialise itself with the motor control definitions defined for motor 6 so I went into config.g and configured the U axes fully, specifying current, accelerations, microstepping etc. Once done, I was able to get the desired motion.

    On this point then, if I wish to have a predefined axes to perform extrusion independently for any given extruder, will I need to have an axes predefined for each one along with appropriate motor control definitions?

    When attempting to control the new U axes, I appeared to be unable to control it without it being shown on the UI. I thought I would be able to keep it hidden from the UI using M584 P, but it seems it won't move unless shown. Therefore, I assume I'll need to show all 4 mapped secondary extruder axes if I want to be able to guarantee control of any one individually. So, I'll be yoyo-ing between M584 P4 and M584 P8?

    Finally, to the potential bug. Upon booting the machine after configuring the axes, DWC showed the new U axes. When I executed M584 P4, the U axes disappeared. When I showed it again using M584 P5 the assigned letter (U) was not shown; the axes was simply blank. Regardless, the axes did work when instructed to move.

    Overally, this seems like a heavy setup simply to gain control of a motor which the system can already see. Axes are simply controlled but the assumption deep down seems to be that there is only every one extruder active, even if it's a composite extruder with multiple axes. The complex workaround could be avoided by overloading G0 further by permitting something like G0 E100:3 to specify extrusion right now for the extruder mapped to motor 3, rather than one being controlled by the active tool.


  • administrators

    @SpoonUnit said in Extrude without tool selection?:

    On this point then, if I wish to have a predefined axes to perform extrusion independently for any given extruder, will I need to have an axes predefined for each one along with appropriate motor control definitions?

    You can use one additional axis, switched between the extruders.

    When attempting to control the new U axes, I appeared to be unable to control it without it being shown on the UI. I thought I would be able to keep it hidden from the UI using M584 P, but it seems it won't move unless shown. Therefore, I assume I'll need to show all 4 mapped secondary extruder axes if I want to be able to guarantee control of any one individually. So, I'll be yoyo-ing between M584 P4 and M584 P8?

    You can un-hide the additional axis exactly when you want to move an extruder, and hide it again afterwards. But this brings me to an important point: why do you want to move an extruder with no associated tool selected?

    Finally, to the potential bug. Upon booting the machine after configuring the axes, DWC showed the new U axes. When I executed M584 P4, the U axes disappeared. When I showed it again using M584 P5 the assigned letter (U) was not shown; the axes was simply blank. Regardless, the axes did work when instructed to move.

    You mean it was blank in DWC? Or something else?

    Overally, this seems like a heavy setup simply to gain control of a motor which the system can already see. Axes are simply controlled but the assumption deep down seems to be that there is only every one extruder active, even if it's a composite extruder with multiple axes. The complex workaround could be avoided by overloading G0 further by permitting something like G0 E100:3 to specify extrusion right now for the extruder mapped to motor 3, rather than one being controlled by the active tool.

    Again I ask: why do you want to do this? When does it make any sense, other than while commissioning a printer?

    If you really do need to move an extruder motor independently of selecting a tool that uses it, have you considered alternatives, such as setting up for this purpose a special tool that uses all the extruders (and perhaps no heaters)?



  • @dc42 said in Extrude without tool selection?:

    You can use one additional axis, switched between the extruders.

    OK in theory, but not all my tools have the same extruder motor. The titan control is based on a 0.9 degree step and the Hemera on 1.8 degree. So I would still need an axes per motor type I guess.

    @dc42 said in Extrude without tool selection?:

    why do you want to move an extruder with no associated tool selected?

    Let's say I want to change the filament in all 4 extruders for the next job. Without the ability to extrude without tool selection I've got to send the tool head around, picking up each head, with conditional logic to not run prime.g which is setup in tpostN.g, and switch through all tools one at a time, just to change filaments.

    If I can control the extruders specifically, I can heat them all to a point for a cold pull and automate the entire set of extruders to eject at the same time.

    Blank in DWC, like this:

    2a04bc69-12a6-40ca-85cc-7901431a9b79-image.png


Log in to reply