Pressure Advance smooth time
-
This may already be on the RRF development radar, but I'd like to request that Pressure Advance be extended with the option of a smoothing factor like Klipper's pa smooth time that takes the edge off extrusion rate slams under accel/decel.
So far as I can tell, RRF PA commands instant E feedrate changes that can be quite large, and speed caps printing if E jerk can't meet those. However, E jerk is very hardware-intensive with gear reductions involved, and that makes it quite challenging to spec a workable extruder for high accel on any length of bowden.
(For context, I have been working on a couple of extruder designs for short, medium, and long bowdens on my 6WD delta (Duet 3 6HC + 3HC toolboard), and generally finding good success with getting high extrusion quality and reasonable PA values, but the E jerk demands just get untenable with PA enabled into 5 figure accel ranges. Given that I've hit the same wall with every commercial extruder I've run before now in bowden configuration, I'm coming to the conclusion that this is not a fully hardware-solvable challenge and hoping RRF can gain more levers to pull so printing accel doesn't have to be capped by E jerk limits.)
-
@Kiolia For some additional
pleadingbackground on why PA smoothing would be an impactful addition to RRF, I'd like to commend this video from Eddie The Engineer, which has been around for a while but only just came to my attention. The linked timestamp 13:37 is where he starts into the specific issue of extreme E stepper acceleration demands from unsmoothed PA, but I'd suggest backing to 11:00 (if not the beginning) for context. https://youtu.be/rj8VOEHXXII?si=Bb2XWAm71EXZqfDv&t=817 -
@Kiolia You may want to keep any eye on these two threads:
https://klipper.discourse.group/t/modification-of-pressure-advance-for-high-speed-bowden-printers/13053/13
https://klipper.discourse.group/t/pressure-advance-smooth-time-skews-pressure-advance/13451It would seem that the jury is still out on PA smoothing at higher speeds....
-
@gloomyandy Thanks for those links! I do have the general sense that smoothing might cause PA to become progressively less accurate as smooth time increases -- i.e., that RRF's 0 smooth time might be "ideal" -- and those discussions seem to align with that generally. (My own experiments with bowden suggest that most people using it don't realize how steep the extruder demands are, smoothing or no smoothing, and don't realize how bad fittings and unsupported PTFE are for stretch -- I would not take any data re: bowdens to try chasing issues with PA unless all fitting and PTFE stretch have been mechanically eliminated on the test rig, e.g., with aramid sheathing (which works extremely well).)
In any case, even if no smoothing were proven to be the "ideal" case, I believe it's fair to say it's not mechanically realistic, and that adding a smoothing parameter would still (in that case) be a highly useful tool for tuning extrusion. I believe most people would prefer "printing fast might cause slight blobbing to be tuned out" vs the current "printing fast might be impossible because the stepper will overheat/skip/underextrude if config has uncapped the E limits enough for the PA demands"
I understand that implementation is probably nontrivial, especially re: IS interactions ...
-
@Kiolia A few additional points that may be worth making towards this conversation re: what the ask is and is not:
-
PA smoothing may not address any root source of extrusion inaccuracy. My take is that it's a more of a "compromise slider" for extrusion accuracy vs extent of the usable acceleration envelope.
-
PA smoothing can (and often does, by all appearances, in the klipper community) compensate for inadequate extrusion system hardware. By the same token, however, it may obscure those inadequacies and make it harder to identify poorly spec'd extruders and related issues (friction, bowden stretch, etc.) as root causes of extrusion performance problems.
-
Hypothesis: Ultimately, PA smoothing might be called a bandaid fix for the fact that the instantaneous E demands derive from instantaneous acceleration changes. It might be more accurate printing-wise to eliminate those at the source by allowing a smoothing factor on acceleration changes instead. However, I'm pretty sure that easing on acceleration is a darkly nontrivial kettle of fish, and I'd rather ask for a bandaid than a low-level rework of the whole motion control scheme.
-
-
@Kiolia If I understand correctly, this all hinges on the assumption that PA as implemented in RRF uses an instant extruder feed rate change. How sound is that assumption and does it respect or ignore the jerk value set by M566? If not an instantaneous feed rate change (which in practice is impossible) then does the extruder acceleration under PA conditions respect or ignore the maximum acceleration set by M201? Do we know for sure that RRF uses the same PA algorithm as Klipper?
-
@deckingman To try and answer your question... My understanding is that the extra acceleration applied is limited by both extruder jerk and acceleration settings. However these are often set to high values so may not really limit things very much. The RRF implementation is certainly very different to that used by Klipper.
An interesting side effect of the Klipper implementation (from my reading of the Klipper code and docs) is that it in effect moves forward (in time) the start of the PA acceleration, to the extent that it may even start to build extra pressure before the extruder actually starts to move in x/y (if it has had to stop completely at a corner). Similarly I think the end of the deceleration will be slightly later. I'm not sure if this is good or bad though!
-
@deckingman All of this is based on my printing and extruder development experience (hopefully a dev weighs in eventually; I'd like "real" answers to your questions, too): yes, the M566 jerk config is respected and defines the functional speed/acceleration cap for printing moves in RRF. If you cap E jerk too low for your combination of print accel and PA, RRF caps print accel; if you set E jerk too high, the extruder skips. M201 accel limits for E do not seem to play a major role in PA performance, at least in that setting a low E jerk and high E accel does not appear to resolve the "pick speed cap or skips" conundrum, and DC has posted someplace here about how you should actually not set E accel too high (the limit being factored from the jerk and PA settings).
From this I deduce that RRF is commanding instant or near-instant E demands for PA, because otherwise E acceleration would be a more meaningful term. I also worked to this conclusion from another direction in tuning a bowden extruder design, in that I could tune retractions to skip or not skip based on E speed + E accel config limits, but E jerk settings could be anything within reason and cause no issues until moving to actual print testing with PA enabled.
The Klipper implementation of PA does not (to my understanding, but I'm not an expert) cap print moves based on the E limits, so there is at least that difference. I don't understand how it gets away with doing this, and maybe it doesn't actually get away with it.
-
@gloomyandy I do wonder about the Klipper implementation and how it may slide the start of pressure build forward. Physically, there must be some delay between the start of an E move and extrusion actually starting, so presumably if smoothing is correct this would be right. However, that gap would be disconnected from the smoothing time required solely for the extruder's sake. If klipper users are complaining about accuracy issues with high smooth time, perhaps that is partly because of moving that buildup too early?
-- And this toward what I mentioned before about smoothing time papering over extrusion system inadequacies: if you have to set a high smooth time because you're trying to run bowden PA with a 4:1 Mobius (for example), the smooth time isn't helping your extrusion quality, it's compensating for that poor stepper trying to deliver 4x the E demand. That's why I think it's worth being critical of complaints about smooth time in Klipper from users who may not be setting themselves up for success from the hardware perspective. It's still a fudge factor (probably), but outcomes depend a lot on how much you're trying to fudge
-
@Kiolia some background on investigations in PA:
https://www.duet3d.com/blog/duet3d-research-extrusion-behaviour-and-pressure-advance
-
@T3P3Tony That looks like some meaty reading and I'm excited to look through it! Thanks!
This is a sidebar, but on a skim, I don't see any obvious mentions of physical effects besides filament spring factor -- which is fine, of course, especially in a "Part 1: Theory" -- but I do think that a full examination of long bowden behavior and corrections would benefit from also considering overall path friction and the spring behavior of PTFE (which, afaik, has anisotropic stretch/return rates?). I have seen great improvements in print crispness and reductions in tuned PA values (by 20+%) by controlling the PTFE stretch with aramid sheathing anchored to the fittings and lightly preloaded. Path friction, meanwhile, scales with bowden length and (since PA also scales with path length) it presents a nonlinear punishment factor on the extruder -- not only must it move faster for higher PA, it must fight even more resistance to do so!
-
@Kiolia that's correct. The variety of bowden configurations and hardware (and what can be done mechanically to help) was not part of what was considered. What the work focuses on is acknowledging that this is a black box, and seeing if we can characterise it. There is more work to do after the third post in the series, but we had to take a break from that work for various reasons.
-
@T3P3Tony I'm glad to hear the work is/has been happening, either way! I could type all day about this, but I'm pulling my own topic off into the weeds. Ahem: Extrusion and Extruders are complex, and I think RRF would benefit from more levers to pull for tuning them
-
@T3P3Tony PS, though: this blog series is awesome! I hope those involved can pick it back up sooner than later. What a cliffhanger!