@rflulling said in Reset Extruder Ignored in DWC, and other observations.:
I do understand the whole, virtual versus literal value argument.
In the early days of 3D printing, extruders were treated just like axes for simplicity. So the E parameter in a G1 command was translated directly into a position of the extruder motor.
Now we have the M221 extrusion multiplier command, mixing extruders, pressure advance, and nonlinear extrusion. Each one of these features means that a direct translation is not possible. As all extruder movements have to be calculated in relative terms, using relative extruder motion makes the calculations simpler. But some slicers still default to absolute extrusion So the firmware maintains a "virtual extruder coordinate". When slicers use absolute extrusion, this is simply the last E value that was seen in a G1 or G92 command. Then when a new G1 command with an E parameter is received, the firmware subtracts the virtual extruder position to see how much filament should be extruded, and then updates the virtual extruder position.
It gets more complicated when a pause is commanded or a power fail pause occurs, because then the firmware needs to know what the virtual extruder coordinate should be when the print is resumed. This means that all the moves in the movement queue have to be tagged with their virtual extruder position. This wouldn't be necessary if we only needed to support relative extrusion values in G1 commands.
HTH David