More strange pressure advance behaviour
-
Pressure advance is great, but keep in mind that it is not perfect. It's an approximation of a solution to the problem of constantly varying nozzle pressure. The ideal scenario will show reduced effects of varying pressure – not the elimination of all varying pressures. I think with this in mind, you should simply tune it to be the best middle ground that you can find. At the moment, there don't appear to be any bugs popping up, merely a limitation of the algorithm itself. I'd say you're best to work with what you have.
I had the best luck tuning pressure advance by looking at the perimeter extrusion lines from the top on a print that was cancelled half-way). You can see the points where the extrusion line is thick and touches its neighbors, or becomes too thin and leaves a gap. This indicates too much pressure advance.
-
Guys,
Smaller pressure advance values help shorter moves in terms of the misshapen inner hole but completely screw up the over extrusion/under extrusion that I get on longer moves. I really don't see the point of setting pressure advance on short moves leaving all the longer moves to be screwed up.
I'm getting some of the best prints ever using 0.4mm pressure advance on my machine apart from the misshapen larger hole. Reducing pressure advance 0.2 which is deemed to be "normal" for Bowden setups reduces the misshapen hole effect somewhat but does not eliminate it.
The start of the print was at 50 mm/sec. If you do the maths, you'll find that a pressure advance value of 0.4 gives about 0.99 mm of filament movement. I don't think that's at all unusual for Bowden tubes and can well envisage the filament buckling within the tube by that amount. Reducing it to 0.1 gives 0.24 mm of filament movement and values of 0.01 reduce it right down to 0.024mm of filament movement. How is that going to compensate for the pressure of the filament buckling in the tube? In fact, on my machine it doesn't.
If you take the Wiki values of 0.1 to 0.2 for Bowden set ups, then do the maths you find that at 50mm/sec the extra "E" amount is around 0.24mm and 0.49mm. I don't think that's anything like enough for a (say) 600mm long Bowden tube and would argue that my value of 0.4 giving 0.99mm of movement is actually more realistic.
-
@bot:
…................... At the moment, there don't appear to be any bugs popping up, merely a limitation of the algorithm itself. I'd say you're best to work with what you have.
................................................
.There was a bug in 1.18.1 - see my other thread. 1.19beta8 has fixed that but now I think there is new one, because I don't believe that pressure advance should affect the movement of the XY gantry which is my primary cause of concern.
-
I agree with you on those points – I wasn't suggesting you MUST reduce it... I was suggesting that you may wish to choose the value which you prefer. Because it seems like this is the way the algorithm functions... it's fairly simple. Unless there are still some bugs lurking, which of course might be the case, we might have to live with the current realities of the system. Without developing a NEW algorithm, I don't think you'll get drastically different results than you are seeing.
Edit: you posted while I did. I guess there could be a bug. Is there actually verifiable X/Y movement happening? Disturbances in X/Y surfaces can easily be caused by extrusion artifacts.
-
@bot:
Pressure advance is great, but keep in mind that it is not perfect. It's an approximation of a solution to the problem of constantly varying nozzle pressure. …..............................
This kind of brings me back to what I was saying in the second part of my post. It seems you guys are all setting pressure advance to be correct for tiny little segmented moves where there isn't time for pressure build up as it does on longer moves, then just accepting or ignoring the over/under extrusion on longer moves. Which is why I suggested that maybe we need the pressure advance to lessen as moves become shorter
Edit. We both seem to be typing at the same time. If I turn off pressure advance by setting it to zero, I get perfect circles.
-
I was just saying have you tried calibrating pressure advance with retractions off. Its hard for me to tell because our setups are drastically different with you having a diamond hotend and short but regular PTFE tubes.
I am running an e3d v6 with Capricorn 400mm PTFE tubes which are much better than standard PTFE tubes (tighter tolerences and stiffer tubes) and changing to them caused me to have to re-calibrate everything. I also had read a thread where DC42 recommended turning off retraction and tuning pressure advance then slowly upping retractions once satisfied with the pressure advance settings.
-
I was just saying have you tried calibrating pressure advance with retractions off. …...........
Quick answer - yes.
-
I'm not really good with mathematics, so I don;'t know how easy that is to implement. I think at the moment, pressure advance is a fairly simple formula. Is there a way to simply add a term to the formula to produce the results you're suggesting?
-
If I understand you correctly that might be interesting, a way to calibrate pressure advance for different lengths. my longest moves I have calibrated to are 40mm x 40mm cube my smallest being a half of a LM8uu bearing. I understand that pressure does not build up a lot over the smaller moves but pressure advance definitely affects the print quality on these smaller parts.
I just printed a new X carriage yesterday playing with pressure advance in small steps from 0 to 0.3 just to see the difference…. honestly on the main body i could not see much of a change between pressure advance settings but once printing the area that snaps onto the lm8uu bearings each little change showed a difference in behavior.
I need to setup firmware retraction next so I can change it on the fly as well.
-
@bot:
I'm not really good with mathematics, so I don;'t know how easy that is to implement. I think at the moment, pressure advance is a fairly simple formula. Is there a way to simply add a term to the formula to produce the results you're suggesting?
Dunno - that's one for David. If the theory that filament compresses by forming a helical shape is correct, then it seems logical that the pressure will not build up instantaneously but will build up over some period of time (maybe a second or two or five). The pressure build up in the nozzle will be in the form of a curve, rather than a sudden step change. If that is the case (and it's only conjecture like all the other theories), then what I suspect is happening is that with short moves, the pressure in the nozzle is somewhere along that curve - i.e it hasn't had time to build up to full pressure. Therefore less pressure advance compensation would be required. For longer moves, there is more time for the pressure to build up so it reaches the top of the pressure curve and therefore needs more compensation.
For me, it's about small settings to pressure advance showing very small subtle improvements to short segmented moves such as curves but have no effect on over/under extrusion with moves of 20mm or longer. Whereas, bigger changes show dramatic benefits on moves of 20mm or longer. So I prefer the dramatic benefits over the subtly ones (or at least I would if it didn't screw up circular moves).
-
…................................
I need to setup firmware retraction next so I can change it on the fly as well.I have to use firmware retraction because with a mixing hot end, it's the only way to retract multiple inputs concurrently. If you don't retract all inputs together, then all that happens is filament is drawn from one of the unused inputs instead of the nozzle tip. But yes, it does make it a doddle to play around with it on the fly.
-
Ian, when you print a series of short segmented moves to approximate a curve, ideally the change in angle between segments will be small enough that the velocity change is within the allowed XY jerk. In this situation, if the slicer has done its job properly the segments will be printed at constant speed, the extrusion rate will be constant, and there will be no pressure advance movement.
As it appears that you are not achieving constant speed, you may wish to either adjust the model to have more segments so that there is a smaller change in angle at the segment boundaries, or use a higher XY jerk setting.
HTH David
-
Ahh. Thanks David. It's a bit late now but I'll give that a go tomorrow night. If I remember rightly, the model was created with 100 segments (at least $fn set to 100 in OpenScad) and I do usually set that to 300. X and Y jerk are set to 1200 (mm/min) does that sound low to you? Given my heavy carriage I felt it might be necessary to set it low.
-
I would have thought that 100 segments ought to be sufficient. Some slicers may combine short segments when generating the gcode. I suggest you examine some of the gcode for perimeters of small holes that are showing the problem, to see whether the number of segments has been reduced.
Another possibility is that move queue underrun is occurring. You can check this in the M122 report.
-
David,
OK so I've gone right back to basics with this. Rendered the object again using $fn=300 (300 segments) and re-sliced it. Turned off pressure advance and started to print. Using a tool with a mix ratio of 90:05:05 i.e 90% extruder 0, 5% extruders 1 and 2.
1st layer all at 45mm/sec printed fine - small circles, large circles all perfect.
2nd layer "normal speed" for me - that is 75mm/sec external perimeters, 90mm/sec internal perimeters and infill, small perimeters 25mm/sec. Again, all circles perfect but signs of under/over extrusion at the ends of long moves.
3rd layer. Pressure advance set to 0.1 (all 3 extruders). Small circles OK but slightly slower perhaps - difficult to be sure. Large circle showing definite pauses or jerkiness and signs of lumpiness (i,e faceted finish). Ends of long moves slightly better.
4th Layer. Pressure advance 0.2. Small circles showing sign of pauses/jerks -looks just like it does if I'm printing a hexagonal nut trap but the finish is only slightly faceted - certainly not as much as being a hexagon. Large circle jerkier and more faceted finish. Long move ends better still.
5th Layer. Pressure advance set to 0.4. Small circles very jerky and slow but finish only marginally faceted. Large circle likewise. Ends of long moves perfect.
6th and 7th layers still with 0.4 pressure advance. All jerk values doubled from 1200 to 2400. No difference to print quality large and small circles still slow, jerky and with faceted finish. BUT, drastic change to non-print move speed - see separate thread.
8th and 10 layers. Lower jerk settings. Same XY jerk but higher E jerk. No change
11th Layer. Pressure advance set to zero. All circles, large and small printed perfect and fast.
12th layer onwards - 0.4 pressure advance then doing M122 at various times.
What seem to be significant is running M122 while it is printing the big circle with pressure advance. What smacks me in the face is the Driver status. e.g.
Driver 4: stalled open-load-B
Driver 5: stalled open-load-A open load-BIt's usually drivers 4 and 5 which are extruders but I've also seen it drive 1 which is one of the XY motors. It can also be open-load-A or open-load-B or both.
All the M122 reports showed step errors of 32 but I'm fairly sure this happened when the jerk was high and it tried to do instantaneous high speed non-print moves (scary to watch with my 3kgs being thrown around).
I've also got error status: 2 - don't know if that has any significance. Code queue is empty. Is that what you meant by move queue under run?
I did video that print (or at least the circular perimeters with and without the various pressure advance settings - do you want me render and upload it? Anything else you need from M122?
Ian
-
Ian, thanks for doing those tests. Can you look at that gcode file to see whether the extrusion speed really is constant? If the slicer is slightly mis-calculating the extrusion amounts so that they are not exactly proportional to the segment lengths, that could cause a problem.
I guess some sort of rounding error in the firmware is another possibility.
I'm tied up with other things for the rest of this week, so please remind me to look at it next weekend.
-
Ian I think you might have something else at play here…. I do not have circle issues regardless of pressure advance setting.
Here are some photos (I printed these at 45mm/s with no reductions in speed regardless of feature because i like calibrating the printer without the slicer getting in the way)
and here was a half circle at 65mm/s
the first image was running pressure advance 0.2 with no retraction and the second was changed twice from 0.2 to 0.1 to 0.132
-
I dont have a photo of it but the small holes for the M3 screws came out perfect for that 65mm/s print as well
-
@Whitewolf. That's interesting. If pressure advance is working normally for you then in a way that makes me feel better. At least we know it works differently for different setups so maybe we are in with a chance of finding what's causing my issues.
Could you do one quick test when you get chance? Print something with circles using 0.4 pressure advance just to see. I know that might be a high setting for your machine but if you get good circles, then we can be sure it's something else interacting with pressure advance. You don't have to print the entire object - you'll know straight away if it's screwy so you can abort after the first layer or two.
Off hand I can think of 3 possibilities
It could be slicer related as David has said - I'll check that out but which slicer are you using? I'm using slic3r.
It could be something to do with machine kinematics - mine is CoreXY, what is yours?
It could be firmware - I first noticed this with 1.19beta8. At the moment I'm unable to revert back to 1.18.1. to check if the problem is present there. Which version are you using?
Ian
Edit. There is a forth possibility. I'm using 3 extruders and I guess you just have the one?
-
Yes just a single extruder, as far as slicer goes its S3D… that is what i was hinting at... open your slicer up do not do any reductions or optimizations this way the slicer does not get in the way of calibrating.
My printer is a Cartesan and much less weight than yours which could also be a factor.
Link an object you want me to print so you can do a side by side comparison... something with circles and long runs.
Ill print it at 0.1 0.2 0.3 0.4 pressure advance with retraction off