Reset Extruder Ignored in DWC, and other observations.
-
In testing startup code by hand, I found that when I enter G92 E0.00 nothing happens. On screen the Extruder count will remain at 20, -100, 80, etc. Only a G28 command resets this number. No errors are given.
-
This was noticed in troubleshooting after realizing that the one time I used the baby step command (to help find a best start offset for a material in use), baby steps were shown in their own box but did not show in the global absolute values above.
-
I decided to run through my startup script by hand, only to discover that the when entered by hand the extruder does not reset. I should wonder if this happens when in normal operation too.
-
I do not know if this behavior is normal, or if it is a big to the beta RepRap, or a bug to DWC.
-
E0.00 is a value I have used since Marlin 1.04 as some how using E0 allowed floating values to escape being zeroed out. So this value is deliberate.
-
When testing against other instances of this behavior in RepRap and DWC, I can confirm that G92 E0, G92 E100, G92 E0.0 all have no effect at all, DWC does not reflect the command.
Further testing uncovered something interesting:
-
- When DWC already shows a value of 10 or greater for a driver. ex DWC shows Y28. Then entering G92 Y100, DWC will show Y100. But if you use a G92 Y0, DWC will show Y0. Then although if G92 Y100 is sent, it will be accepted, but no change is shown in DWC. However if G92 Y9 is sent, DWC will show Y9. In other words, once reset, only 0-9 is accepted. This is true of X and Y axis in the DWC. Not tested with Z in DWC.
-
- When G92 E0 is issued. The DWC will not show any change. No mater what value is used. However if G92 X0 is sent, then both E and X will go to Zero. However, unlike the X and Y where once reset they can be given a single digit number, E will not accept any new numbers no mater how this trick is applied. This applies to both X and Y in the DWC. Not tested with Z the DWC.
-
- after seeing this, I cannot accept that this is normal, and must be a bug resulting of a patch to some other part of the firmware.
For me it is important that the values shown in the DWC are current, an exact always, for troubleshooting. If they read false, I will make incorrect conclusions about the work. If they read false normally, I will be unable to trust the readout in the DWC.
-
-
I'm unable to duplicate the G92 X Y Z behaviour you describe on a Duet Wifi and firmware 2.02 and DWC 1.22.6 . However, the G92 E does not change the extruder position display at all, as you describe.
Can you confirm if the behaviour still exists if you return to firmware 2.02?
-
G92 E0 resets the virtual extruder position. This command is generated by slicers frequently when they use absolute extrusion, to avoid the build up of rounding error. However, the virtual extruder position is not useful to an end user, so DWC shows the total net extrusion instead, separately for each extruder. If you really want to check the virtual extruder position, use M114.
-
I will try reverting the firmware to test. But have had a print running so cannot test more just at this time.
Thank you for looking into this. I hope I was thorough in testing and reporting the observations.
I would suggest to test, G28, then G90, then M104 S210 T0 (assuming you have PLA loaded), then G1 Z10 F200, then G0 X20 Y20 Z20. Now in DWC enter G92 X100. See it change? Now enter G92 E100, see a change? Nope should not. Try G92 E0, still nothing right? Now run G92 X0, notice both X and E go to Zero. Now, see if you can change it back. Try, G92 E100, then G92 X100, nothing right? Try G92 X9, betcha it just changed. Try any value 0-9 and it will work, for both X and Y.@phaedrux said in Reset Extruder Ignored in DWC, and other observations.:
I'm unable to duplicate the G92 X Y Z behavior you describe on a Duet Wifi and firmware 2.02 and DWC 1.22.6 . However, the G92 E does not change the extruder position display at all, as you describe.
Can you confirm if the behavior still exists if you return to firmware 2.02?
I believe I understand your reasoning. I have gotten used to Clearing the Extrude data before starting a print. Otherwise risk the count stored at the beginning of a print interfering, and I suspect it has been but have not proven it yet. This is as because most of my work has been done on S3D for Marlin 1.04 not RepRap. I have worked hard to maintain an operation that is flexible between so that I do not need to literally toss everything learned out the window and start over.
@dc42 said in Reset Extruder Ignored in DWC, and other observations.:
G92 E0 resets the virtual extruder position. This command is generated by slicers frequently when they use absolute extrusion, to avoid the build up of rounding error. However, the virtual extruder position is not useful to an end user, so DWC shows the total net extrusion instead, separately for each extruder. If you really want to check the virtual extruder position, use M114.
-
Setting your slicer to use relative extrusion will guarantee that the initial extrusion count can't interfere with the print. Absolute extrusion is a throwback to the early days of 3D printing.
-
Thank you.
I stand by everything I have reported, as yes if you do as I have done you should repeatably get the same results. However, other than when putting in the codes manually. I have not demonstrated that they will have any effect on a normal user.
I do understand the whole, virtual versus literal value argument. Been through that one with M3D enough times when regarding the Z height and their calibration system in the Early days. That literal Z was below the build plate. But virtual Z was calibrated just above it.
-By default the Virtual Z values were the ONLY value a user would see, unless they were in manual calibration.So for me I always want to know where the Printer thinks it is, not where it should be. -Though both pieces of info are highly useful at the right times.
-
@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
-
This post is deleted! -
-