Issue with absolute extrusion in dual extruder setup
-
So we have we a system with 5 axes: XYZ and two separate extruder axes U and V. These are btw not filament extruders but piston extruders that have a real absolute position.
What we would like to do is to be able to control them completely separately. I know we can do this by using U and V, but we have reasons to try to do this with a tool change and setting E for extrusion. In addition we would like to be able to issue a G92 E0 for each extruder separately when needed.
So now we run into a problem. I’ll explain with some manually entered Gcode and M114 commands to show the position of each extruder axis.
We start with a fully initialized and homed machine:
M114 --> X:0.000 Y:0.000 Z:50.000 U:0.000 V:0.000 E:0.000 E0:-0.0 E1:-0.0
M82; Make sure we extrude in absolute mode
T0; choose first tool
G1 E12 F500; extrude 12 mm on the first tool
M114 --> X:0.000 Y:0.000 Z:50.000 U:0.000 V:0.000 E:12.000 E0:12.0 E1:-0.0So far it looks ok-ish, i.e.: E0 is at 12 mm as expected, E1 is still at 0; it is unclear to me how to interpret the value of ‘E’ but it is also set to 12.
T1; switch to second tool
G1 E28 F500; extrude 28 mm on the second tool
M114 --> X:0.000 Y:0.000 Z:50.000 U:0.000 V:0.000 E:28.000 E0:12.0 E1:16.0Now it gets weird. I would have expected E1 to be at 28, but it is only at 16. And we have indeed verified that this tool has only moved 16 and not 28. The ‘E’ value is 28, whatever that means.
T0; switch back to the first tool
G92 E0; set its position to 0
M114 --> X:0.000 Y:0.000 Z:50.000 U:0.000 V:0.000 E:0.000 E0:12.0 E1:16.0Now it gets even more confusing. I was hoping to set the position of the left extruder to 0, but only the value of ‘E’ has been set to 0, while the E0 and E1 remain at their former values.
T1; switch to the second tool
G92 E0; set its position to 0
M114 --> X:0.000 Y:0.000 Z:50.000 U:0.000 V:0.000 E:0.000 E0:12.0 E1:16.0Same problem as with T0.
So the big question is: how do I control both extruders separately in absolute mode whilst using the tool change commands?
Thanks for any insights into this behaviour.
-
@TNO_Marc said in Issue with absolute extrusion in dual extruder setup:
So far it looks ok-ish, i.e.: E0 is at 12 mm as expected, E1 is still at 0; it is unclear to me how to interpret the value of ‘E’ but it is also set to 12.
from the documentation for M114:
"The first E value (without an extruder number) is the current virtual extruder position, and is included for the benefit of GCode senders that don't understand multiple extruders."It looks like we are running into an odd behaviour for absolute extrusion. It may not have been picked up previously because generally relative extrusion makes more sense so its more commonly used.
What firmware version are you running?
-
@TNO_Marc After some investigation and clarification I have updated the documentation for M114 and M82
The multi extruder example should explain whats happening with the virtual extruder. this functionality was implemented to allow old slicers and other clients which did not understand multiple extruder machines and insisted on using absolute extrusion.
As suggested in the updated documentation for M82. If you have to use absolute mode with multiple tools, then you need to reset the virtual extruder between each tool change using M92 E0.
-
@TNO_Marc said in Issue with absolute extrusion in dual extruder setup:
So we have we a system with 5 axes: XYZ and two separate extruder axes U and V. These are btw not filament extruders but piston extruders that have a real absolute position.
What we would like to do is to be able to control them completely separately. I know we can do this by using U and V, but we have reasons to try to do this with a tool change and setting E for extrusion. In addition we would like to be able to issue a G92 E0 for each extruder separately when needed.
So now we run into a problem. I’ll explain with some manually entered Gcode and M114 commands to show the position of each extruder axis.
We start with a fully initialized and homed machine:
M114 --> X:0.000 Y:0.000 Z:50.000 U:0.000 V:0.000 E:0.000 E0:-0.0 E1:-0.0
M82; Make sure we extrude in absolute mode
T0; choose first tool
G1 E12 F500; extrude 12 mm on the first tool
M114 --> X:0.000 Y:0.000 Z:50.000 U:0.000 V:0.000 E:12.000 E0:12.0 E1:-0.0So far it looks ok-ish, i.e.: E0 is at 12 mm as expected, E1 is still at 0; it is unclear to me how to interpret the value of ‘E’ but it is also set to 12.
T1; switch to second tool
G1 E28 F500; extrude 28 mm on the second tool
M114 --> X:0.000 Y:0.000 Z:50.000 U:0.000 V:0.000 E:28.000 E0:12.0 E1:16.0Now it gets weird. I would have expected E1 to be at 28, but it is only at 16. And we have indeed verified that this tool has only moved 16 and not 28. The ‘E’ value is 28, whatever that means.
T0; switch back to the first tool
G92 E0; set its position to 0
M114 --> X:0.000 Y:0.000 Z:50.000 U:0.000 V:0.000 E:0.000 E0:12.0 E1:16.0Now it gets even more confusing. I was hoping to set the position of the left extruder to 0, but only the value of ‘E’ has been set to 0, while the E0 and E1 remain at their former values.
T1; switch to the second tool
G92 E0; set its position to 0
M114 --> X:0.000 Y:0.000 Z:50.000 U:0.000 V:0.000 E:0.000 E0:12.0 E1:16.0Same problem as with T0.
So the big question is: how do I control both extruders separately in absolute mode whilst using the tool change commands?
Thanks for any insights into this behaviour.
Absolute extrusion is an abomination in FDM printers. Don't use it. If you can't avoid it, do what the slicers do and send G92 E0 whenever you change tool.
-
@T3P3Tony
I'm sorry, you suggest M92 E0. But M92 sets axis steps/mm -
@dc42
As you can see half way through the code, we did use G92 E0. But apparently it only resets 'E'. But I want it to reset E0 or E1 depending on the tool I have chosen. How do i do that? -
@TNO_Marc sorry , typo G92 E0
-
@TNO_Marc also why do you want to reset E1 and E2? Are you using these values outside of reprap firmware? They are predominantly there dort the firmware to keep track of extrusion.