Issues with pressure advance since RRF 3.4
-
This problem can be replicated on Hbot and other similar Cartesian designs. Its only more obvious because CoreXY tends to have higher speeds thus requiring higher flow rates. Overall, its almost entirely a flow control issue instead of a kinematic issue.
Klipper has a feature called smoothing time which works with their pressure advance - My current belief is that this smoothing time is the key to fixing this issue. I am currently building a test machine that will use klipper for an apples to apples comparison between RRF and Klippers implementation. But ill be having to do it after SMRRF as time constraints are tight right now.
-
-
@PCR so do I (actually capable of triple play -- Marlin, RRF, and Klipper). I can't say I have these issues with bulging corners but I run quite high extruder jerk and acceleration (https://forum.duet3d.com/topic/33964/e-acceleration-has-to-be-limited-to-to-e-jerk-pa?_=1700602309451). I wonder what e jerk and acceleration the people heavily affected run; if jerk and accel aren't high enough I can see that PA may kick in "late" and not have (any) effect, especially at higher speeds.
-
@oliof said in Issues with pressure advance since RRF 3.4:
@PCR so do I (actually capable of triple play -- Marlin, RRF, and Klipper). I can't say I have these issues with bulging corners but I run quite high extruder jerk and acceleration (https://forum.duet3d.com/topic/33964/e-acceleration-has-to-be-limited-to-to-e-jerk-pa?_=1700602309451). I wonder what e jerk and acceleration the people heavily affected run; if jerk and accel aren't high enough I can see that PA may kick in "late" and not have (any) effect, especially at higher speeds.
So first of all we need to stop tuninig anything but testing the capability of the E motor.
Btw, any steps or details shown how to find out the value? -
@hestiahuang I simply increased extrusion speed into thin air until the extruder skipped, then backed off of that 20%, after that did firmware retrac/unretract with increased acceleration until the extruder screamed, and then backed that off 20%
There is a case to be made that you may need to redo this for PETG due to its difference in backpressure behavior, but I never bothered and it seems to work well enough.
In direct drive, my PA value is 0.02 to 0.03 and that seems to be good enough.
-
@oliof What extruder jerk are you currently running? After reading your other thread I tried increasing mine to the 3000 range (previously it was 300), but with that setting I started getting various odd noises at sharp corners and seemed to be losing extrusion.
-
@gloomyandy jerk in the 300 to 600 range, acceleration in the 3600 to 6000 range
-
@oliof Thanks, what sort of jerk and acceleration are you running on X, Y, Z? I must say I do find the entire jerk/acceleration thing very confusing having spent some time yesterday searching the forums it seems that values anywhere from high jerk/lowish acceleration to low jerk/high acceleration seem to be in use! There also seems to be some (unresolved) confusion as to when jerk is actually applied with some comments indicating it is only used between moves while others say it is applied (in mode 1) as an initial speed for moves that start at zero.
-
@gloomyandy jerk is a bit of black magic, I spent a weekend with a friend trying to read and understand how its applied in RRF, but I forgot all about it since then.
my jerk/accel on the IDEX are
M566 X360.00 Y210.00 Z18 E300.00 P1 ; Set maximum instantaneous speed changes (mm/min) M201 X7500.00 Y4000.00 U7500.00 Z100.00 E6000.00 ; Set accelerations (mm/s^2)
(this is an i3 style portal printer with a prusa bear like frame with a 220^3 print volume)
On the V-Minion my values are
M566 X900.00 Y900.00 Z60.00 E300.00 ; set maximum instantaneous speed changes (mm/min) M201 X3000.00 Y3000.00 Z200.00 E6000.00 ; set accelerations (mm/s^2)
(this is an Ormerod style cartesian cantilever printer with a 180^3 print volume)
Just a note that the accelerations on the V-Minion are quite low compared to the klipper config for it, it is on record with 6 minute speed benchies, but I haven't pushed that far yet.
-
@oliof Thanks! It's interesting that your two printers have such a big difference between them! I'm currently using something similar to your first example on my toolchanger with a jerk of 300 and acceleration of 15000, I do get a lot of ringing though so I'll probably be reducing the acceleration somewhat.
Don't want to disrupt this thread, but I wish there was a good way to determine good values for jerk and acceleration with RRF.
-
@gloomyandy the first printer isna glorified ender3 with a terrible y motion system that's dragging it down (also 6mm belts). The second is a very compact machine with 9mm belts designed for rigidity and speed.
To be fair, I haven't even started really tuning the V Minion for fast printing simply for lack of time, or the differences would be even more striking.
-
@oliof Can't resist taking this thread slightly more off topic! How did you select the Jerk speed for the V-Minion? Did you use any test prints to help? I seem to remember it has a big impact on how curves get printed...
-
@oliof
I currently am running a jerk of 1000mm/min with accelerations of 4000 mm/s/s Using a Hemera XS with a volcano style hotend.I used to run by the theory of low jerk high acceleration (J of 500mm/min and 7000mm/s/s) but im now just trying everything in order to isolate the issue
Edit: I should say I am only experiencing this issue on larger nozzles. On a 0.4mm nozzle the issue is imperceptible enough to not be an issue, but on a 0.6mm nozzle the issue is exceptionally bad.
-
I think everyone should learn to use one of these
You apply pressure at one end which forces a viscous fluid out of a restricted orifice. Just like a 3D printer extruder. You'll learn a lot about how the flow of a viscous fluid out of a small orifice reacts (or rather hardly reacts) to changes in pressure on the input and how difficult it is to get that flow rate to match the rate to change of movement of the nozzle through space.
Personally, I get best results by keeping the filament flow rate as near constant as possible which essentially means low(ish) acceleration and high(ish) jerk and using pretty much the same speed for all move types.
-
@gloomyandy re:jerk -- I increased it until I got skipping on the motion system, then backed off by 20%. It seems to be a good approach that gets me into a "usable, not too low" range.
@deckingman I had issues with too low acceleration causing print head inertia to be a factor on corner performance. So I tend to aim for low-ish jerk and higher acceleration.
-
@Notepad Are the jerk and acceleration figures you are quoting for the extruder, the movement axis or both?
@deckingman A similar question really what are the actual jerk/acceleration figures you have settled on both for the various axis and the extruder?
-
@gloomyandy I'll get back to you with my actual settings next time I'm at my computer. But given that any print move at any point in time runs at the slowest of XY or E (because they have the synchronised) then extruder jerk will only apply if it's so low that it will slow down X and/or Y. If extruder jerk is not applied to the start of a move, then it won't apply to retractions either, so I can't off hand think of any situation where extruder jerk does apply unless it's so low that it effectively overrides the X or Y axis jerk. For that reason, I set it silly high so that it won't override my X and Y jerk.
-
@gloomyandy With regard to jerk (instantaneous speed change), I look at it like this. If we didn't have it (or it was set to zero) then every move would start at zero speed, accelerate up to the print speed (if the move was long enough) then decelerate to zero speed before commencing the next move. Clearly this would be problematic with short segmented moves such as curves. Therefore it kind of follows that in order to print curves at the same speed as straight lines, the instantaneous speed change should be set to the same as the print speed. So in theory, if we want to print at (say) 60mm/sec, then jerk should be set to 3600 (mm/minute). But in practice, that seems to be too high and also (visually) speed around circular perimeters seems to be the same as the speed on long straight moves with much lower jerk settings. So something is amiss with my logic or the application of jerk. Are we sure that the units for M566 are mm/minute as per the documentation and not mm/sec?
-
@deckingman I think there is an error in your logic here. In the case of a curve the two movement vectors are relatively close to each other (they typically will have a shallow angle between them), so the actual delta change in speed of the X and Y component (lets keep things simple and assume easy kinematics), will be much less than jumping to full speed. Your example is true in the case of a 90 degree corner.
-
@gloomyandy I'm sure you are right in that the angle between line segments plays a part. The description of M566 states (quote) ....
"The model files and GCode files used by repraps generally render circles and other curves shapes as a sequence of straight line segments. If the motors were not allowed any instantaneous speed change, they would have to come to a stop at the junction between each pair of line segments. By allowing a certain amount of instantaneous speed change, printing speed can be maintained when the angle between the two line segments is small enough."
So if we knew how the algorithm worked, then maybe we can determine that the optimum jerk value would be the lowest value which maintains the print speed around a segmented curve? The question is, how many segments or more precisely the angle between them. Thoughts?