RRF 2.03 pressure advance causes 20% overextrusion
-
Does Duet configure the trinamics in rising edge or falling edge mode?
With PA at 1.0, as counted by a python script analyzing the output of my Saleae (assuming rising edge mode):
fwd_count 6334445
rev_count 5157566
net_count 1176879
mm 2979.440506Slicer says 2.48m filament use. Duet web interface confirms, says the file has 2481.7 mm filament use.
Next up, PA at 0.0. If this comes out correct, it will be incontrovertible proof that there is a firmware issue with PA causing overextrusion.
-
The python script: step_counter.py.txt
The data with PA: https://drive.google.com/file/d/16LW2Xb2MWsUTvyCdSjDqBvFwDXq1xOuR/view?usp=sharing -
Ah, the TMC 2660 doesn't have a falling edge mode, only rising edge and both edges. I misread the datasheet.
-
With no pressure advance: https://drive.google.com/file/d/1oFvrJnxZc6fvLlGZqTdCqO7GB4Zfzdy_/view?usp=sharing
Python script output:
fwd_count 1942964
rev_count 961423
net_count 981541
mm 2484.9139242.48m, dead on what the slicer expected.
Proof positive that PA causes overextrusion and that this is a firmware bug, NOT a mechanical or configuration issue.
-
@Phaedrux said in RRF 2.03 pressure advance causes 20% overextrusion:
Why 8x microstepping on the extruders?
What is recommended?
-
x16 with interpolation enabled.
also your thermistor config is wrong.
Your bed is 4138 which is the default and very likely wrong.
Your hotends are 4388
So you might be printing at the wrong temperature.E3D uses 104-GT2 thermistors which is B4725 C7.060000e-8
-
@Veti said in RRF 2.03 pressure advance causes 20% overextrusion:
x16 with interpolation enabled.
also your thermistor config is wrong.
Your bed is 4138 which is the default and very likely wrong.
Your hotends are 4388
So you might be printing at the wrong temperature.E3D uses 104-GT2 thermistors which is B4725 C7.060000e-8
Set to 260C/120C. Seems fine to me.
-
I've done more research and 4725 is the wrong B value. The right number is 4267. I might update my config to match, I don't fully trust the thermal camera's accuracy and it doesn't make sense that the hotends and bed are different when the bed uses the same thermistor.
But I'd need to do some verification on that change regardless.
-
Regarding underruns: I'm running the file again now to determine if there are any, but it is most of the way through and there have been no underruns.
-
@jschall said in RRF 2.03 pressure advance causes 20% overextrusion:
I've done more research and 4725 is the wrong B value. The right number is 4267.
No its B4725 and C7.060000e-8 if you Specify B and C you switch to the Steinhart–Hart equation which is more accurate over a wider temperature range.
This is documented here
https://duet3d.dozuki.com/Wiki/Connecting_thermistors_or_PT1000_temperature_sensors -
@Veti
Thanks, will correct that, then. -
-
Well, this is interesting thank you for doing this.
-
@bot said in RRF 2.03 pressure advance causes 20% overextrusion:
Well, this is interesting thank you for doing this.
Any suggestions where to go from here?
-
please do upgrade to the latest firmware.
even if there is a bug in 2.03 i doubt that we will see a rrf2 bugfix.
so it would be good if you could retry this in rrf3.
-
Ok, I need to upgrade anyway.
-
I had analyzed this issue multiple times before as well and 2.05.1 had only minor improvements related to PA. Based on my findings something happens on the step generation level, probably CPU running out, causing moves to be done before reverse motion (there is some code in there that basically aborts moves before they are done, you'd need to analyze it yourself as I've wasted more time than I'd like already and I have no means of analyzing stepper control). I eventually gave up using PA on my printer as it ALWAYS overextrudes for me and I've ruled out every mechanical issue, too.
I think that it will get worse, if you upgrade to 3.x, as it probably uses more CPU.
-
@Edgars-Batna said in RRF 2.03 pressure advance causes 20% overextrusion:
I had analyzed this issue multiple times before as well and 2.05.1 had only minor improvements related to PA. Based on my findings something happens on the step generation level, probably CPU running out, causing moves to be done before reverse motion (there is some code in there that basically aborts moves before they are done, you'd need to analyze it yourself as I've wasted more time than I'd like already and I have no means of analyzing stepper control). I eventually gave up using PA on my printer as it ALWAYS overextrudes for me and I've ruled out every mechanical issue, too.
Interesting. How did you come to your conclusions? Did you ever write them up?
-
@Edgars-Batna said in RRF 2.03 pressure advance causes 20% overextrusion:
I think that it will get worse, if you upgrade to 3.x, as it probably uses more CPU.
Think the main changes for RRF3 were around making it more configurable at runtime, currently making the jump myself. Guess there are more advance features available, but not sure if CPU use will be effected. Interested to learn more there.
-
@jschall Yeah, I created various topics, but it wasn't easy separating printer from firmware, as my build wasn't as polished back then. It was mostly treated as a printer hardware issue. Just look at topics created by me and you'll see multiple threads.
This is the latest one: https://forum.duet3d.com/topic/16840/printer-refuses-to-do-a-certain-print
I added detailed logging to the firmware in the meantime and wrote a program which counts how much extrusion the movement planning actually wants to command and it added up. The only thing left were the step interrupts themselves and the barely understandable second part of DriveMovement::PrepareExtruder (PA step computation) in the code. Without means to analyze stepper signals I stopped debugging.