More strange pressure advance behaviour
-
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
-
-
Here were my settings for the second photo the clear x carriage:
-
The speed override for small layers was also unchecked for both prints
-
I also ran these prints with firmware settings similar to yours:
[c]M92 X80.00 Y80.00 Z2560.00 E97.009 ; Set steps per mm
M566 X833 Y583 Z3000 E1800:1800 ; Set maximum instantaneous speed changes (mm/min)
M203 X18000 Y18000 Z400 E3600:3600 ; Set maximum speeds (mm/min)
M201 X833 Y583 Z3000 E1800:1800 ; Set accelerations (mm/s^2)
M906 X765 Y850 Z850 E850 I30 ; Set motor currents (mA) and motor idle factor in per cent[/c]Obviously none of these firmware settings or slicer settings are ideal, its just how I have been testing pressure advance in an unrestricted way….. eventually I will move my accelerations to be 3000mm/m to be in line with the 300mm/s printing speed test article but I wanted to align everything with what you had to see the kind of results I could achieve with it.
-
Previously I had much higher maximum speed changes and still had great results but not into the 120mm/s range…. So I lowered those for now but will eventually see how high I can push them.
-
Also one of the reasons I dont want the slicer getting in the way of my printer tuning is because i dont want the printers optimum performance to be reliant on the slicer. In my opinion the slicer should only compensate for different filaments. By tuning the printer to a baseline on ABS or PLA for best quality at the highest speed possible then the slicer can then be brought into the picture for minor tweaks when needed between filaments and the same gcode could theoretically be used across a number of printers if they were all tuned in the same fashion and hence all giving the same great results regardless of kinematics.