Pressure advance causing underextrusion/motor madness
-
@bberger I've had a thought. It's just a theory. Could it be with your high accelerations that you are hitting the step pulse frequency limit with the extruders (they have high steps per mm compared to axes)? Maybe what happens is that with PA enabled, during the acceleration phase the extruder speeds up to the point where it misses steps so you don't get the extra extrusion at the start of a move, but the steady state and deceleration phases are below the step pulse frequency limit so you do get the retardation?
It's just a wild guess. But you could test it by using your high acceleration and jerk, then sending M122 and looking at the hiccup count. If it's high then reduce the acceleration or jerk, run it again then see if the hiccup count comes down.
-
@Dezdoghound said in Pressure advance causing underextrusion/motor madness:
So you're suggesting that setting extruder jerk low is just mitigating the problem and isn't actually solving it, as extruder jerk shouldn't be the limiting factor?
That was my original hypothesis but having read @bbergers' post, now I'm not so sure.
-
@deckingman I've just done a run of a print where it's been doing the blobbing, and didn't get any hiccups recorded
Just a shot in the dark really, what setting do you have the thumbscrew on for your BMGs with PLA? The instructions said to tighten all the way and undo 1.5 turns, but that seems far too tight?
-
@Dezdoghound said in Pressure advance causing underextrusion/motor madness:
Just a shot in the dark really, what setting do you have the thumbscrew on for your BMGs with PLA? The instructions said to tighten all the way and undo 1.5 turns, but that seems far too tight?
It doesn't seem to make much difference. Unlike say an E3D Titan where too much tension combined with multiple retractions will grind through the filament, the distance between the two hobbed bolts on a BMG is pretty much fixed. So tension is far less important.
I did an extreme retraction torture test back in 2018 https://somei3deas.wordpress.com/2018/05/11/bondtech-bmg-vs-e3d-titan-extreme-retraction-torture-test/
The Titan completely ground though the filament after about 7,000 cycles but the BMGs showed hardly any sign of filament "grinding" after 26,000 cycles. -
@deckingman said in Pressure advance causing underextrusion/motor madness:
@bberger I've had a thought. It's just a theory. Could it be with your high accelerations that you are hitting the step pulse frequency limit with the extruders (they have high steps per mm compared to axes)? Maybe what happens is that with PA enabled, during the acceleration phase the extruder speeds up to the point where it misses steps so you don't get the extra extrusion at the start of a move, but the steady state and deceleration phases are below the step pulse frequency limit so you do get the retardation?
It's just a wild guess. But you could test it by using your high acceleration and jerk, then sending M122 and looking at the hiccup count. If it's high then reduce the acceleration or jerk, run it again then see if the hiccup count comes down.
It's an interesting idea, but I don't think at that shape and speeds it's near the limit of what the Duet can handle.
Afaik it should be able to handle up to 150kHz, so assuming the following:
160 steps / mm on XYZ @ say an average of 120mm/s over all 3 axes (we're pretty much in the middle of the printbed, so not too much movement at all): 160 * 120 * 3 = 57.3kHz
415 esteps/mm at it's absolute limit (100mms): 41.5kHzEven in that absolute worst case scenario I'm not even above 100kHz, so I'd say it's unlikely. I'm also not seeing any hiccups in movement that would support that.
That being said: I'll keep an eye on it and report back.
-
Sorry, can't edit the formatting of the post above - Akismet is acting up..
-
@bberger Yes - and no. It was the extruders hitting the step pulse frequency limit that I was wondering about. The steps per mm are much higher than axes, For "normal" printing it's never a problem because extrusion amounts are typically single digit percentages of axes travel, so extruders run much slower. BUT, when you do extruder only moves such as retractions, they do move a lot faster. So I was wondering if the extruder advance that PA uses pushes the extruder speed up to the limit. If you observe what the extruders do with PA enabled and fairly high value, they make some pretty alarming moves.
With a mixing hot end, it is necessary to run high extruder micro-stepping to get the desired resolution, because one or more extruders might only be single digit percentages of the entire amount of material to be extruded. With earlier firmwares, I could run micro stepping at 128x and still use 60mm/sec retraction, but this is much less now because the step pulse frequency has been reduced significantly (although nobody will tell me what it actually is now).
But doing the maths, my wild theory is probably wrong. With 415 steps per mm and assuming the step pulse frequency limit is as low as 100k, then extruders would still be able to hit 241 mm/sec and I doubt that PA is causing them to get anywhere near that.
But it might be interesting just for the hell of it, to change the micro-stepping for the extruder to (say) 8X and see what happens?
-
IMO your E jerk is way too high.
I run a bowden extruder, sometimes with PA as high as 1.4. My E jerk has to be down in the area of 4 (mm/s), but I can run the acceleration high at 4000 (mm/s/s). This is a custom design, geared stepper using Bondtech gears.
-
@CCS86 doesn't a jerk setting that low really slow down your print? I see lots of other people using 3000 jerk on the same extruder is the thing too.
-
@Dezdoghound there is a balance to be found between stepper jerk and real-world capability. IE stepper motors attached to extruders can't accurately "jerk" as fast as some people wish them to. So, if speed is your main concern, and slightly inaccurate movement is acceptable to you, go for higher jerk. The inaccuracy of the movement is quite low -- it's still gonna be pretty damn close to what you asked for, perhaps just a bit noisy and sloppy.
If accuracy is your main concern, then slow the jerk down to the point that you are guaranteed accurate movement every time, with little noise.
-
@Dezdoghound said in Pressure advance causing underextrusion/motor madness:
@CCS86 doesn't a jerk setting that low really slow down your print? I see lots of other people using 3000 jerk on the same extruder is the thing too.
If you are specifying jerk with M566, it is in mm/min. So, 3000 mm/min = 50 mm/s; which is still very high. It is probably higher than the max speed for E, so that effectively disables any attempt for planned acceleration.
I don't see how that is a benefit at any time. It just increases the chances of skipping E steps and chewing up filament.
Once you turn on PA, the demands on E change dramatically. High jerk is even less appropriate.
-
@CCS86 exactly this. To make matters worse, with the standard jerk policy (and perhaps even jerk policy 1, I'm not sure) the E axis almost never uses the jerk value. Jerk normally ONLY comes into play with pressure advance. So, having an excessively high E jerk value can be hidden until PA is enabled.
-
I still struggle to find a use case other than pressure advance, when extruder jerk actually gets applied - unless it's set really low so that it is the limiting factor in any G1 XY E move. Extruders generally run a lot slower than axes during print moves, so it's likely that the lower of either X or Y jerk would determine the speed at direction change - unless extruder jerk is really low and the combined XY E move has to slow down to the extruder jerk speed, rather the X or Y jerk speed. That's mainly why I set extruder jerk "silly high" - so that it doesn't impact on carriage speed. One could say that extruder jerk gets applied to retraction moves. BUT, in RRF (at least until very recently) jerk is/was never applied to the start of a move from rest - only on direction change. I seem to recall having this discussion with DC and I think (but could be wrong) that jerk does not get applied to retraction moves. If all of that is true (and it may not be), then extruder jerk is never used unless it is so low that it affects XY E direction changes. BUT, something strange happens with the interaction between extruder jerk and PA which cannot be explained by the "normal rules" for instantaneous speed threshold (jerk), because even a moderately low value will slow down the overall print speed more than can be explained by the application of extruder jerk alone.
-
@bot Yes, I think we are in agreement on this.
-
I think so. Except, the slowdown of E jerk in combination with PA is exactly calculable and accurately applied. It is a pretty sharp slowdown that happens, once it begins happening. It's at that point that the user must balance the noise of the extruder vs the speed needed and if that noisiness of the extruder affects the print quality in any way. Usually it doesn't seem to affect anything, but at extremely "precise" extrusion rates (IE tiny amounts for tiny traces) the inaccuracy of the system can begin introducing noticeable artifacts.
Also, of course, if the E stepper is stalling out, the Jerk is impossibly too high. But I figured that goes without saying...
-
@bot TBH, my printer has been pretty much out of action since about last August when I started to convert to Duet 3, and more recently since I started trying to develop a new hot end. So any findings I have are a few firmware versions old (to say nothing of the hardware - much of which has also changed). Way back then, it appeared that setting extruder jerk "silly high" had no adverse affect on PA (or anything else), but setting it low (or even what would be considered "normal") had detrimental affects - especially carriage randomly "stuttering" during arcs or curves when using PA. This was all with multi-input, multi extruder, mixing hot ends, which are strange and fickle beasts at the best of times). But a lot has changed since I last attempted any sort of in depth testing or analysis.
-
@deckingman I think you'll find not much has changed in that regard (I don't think). The behaviour of PA has remained unchanged since early 2.0x versions, if not earlier.
With some stepper/extruder combos, the achievable jerk speed without stalling the motor may indeed be incredibly high. For setups like mine, with high gear ratios and relatively small stepper motors, the actual achievable jerk speed is quite low compared to values typically found in users' config.g files. Thankfully, it's not quite low enough to be ridiculous, but I'm certainly balancing the thin line.
-
@bot said in Pressure advance causing underextrusion/motor madness:
@deckingman .................The behaviour of PA has remained unchanged since early 2.0x versions, if not earlier.
Hah - my cynical side won't let me believe that I'm afraid. (Unintended consequences and all that stuff.....)
-
@deckingman True, something may indirectly affect the behaviour. The added jerk policy 1 may affect it.
-
@bot said in Pressure advance causing underextrusion/motor madness:
The added jerk policy 1 may affect it.
Yes I've found that I must lower my extruder jerk a bit more now with P1, but I haven't done any deep testing.