More strange pressure advance behaviour

  • I'm now printing real objects and getting some strange behaviour. Link to (very short) video here

    Two issues really.

    Number 1 is the carriage behaviour doing circular perimeters. I end up with a very lumpy and misshapen hole. Small holes are less misshapen than the larger hole in the middle which manifests itself during the print by what look like pauses then jerks in the carriage movement. The video is with pressure advance set to 0.4 which gives my the overall better finish on my machine. Reducing the pressure advance to 0.2 reduces the effect of the problem with the misshapen hole but then I get over/under extrusion at the ends of longer moves. Extruder jerk was set to 1200 but I've tried 2400 and 3600 - no noticeable improvement.

    Number 2 is a secondary issue in that pressure advance is being applied even with very short moves such as zigzag infill on 6mm thick walls (or even thinner walls), and of course the small segments forming circles. With these very short moves, I wonder if pressure advance is needed at all, or perhaps if it is only a very small amount because there isn't time for the pressure to build up, compared to longer moves? My concern is mainly about the long term effect on the extruder with the gears being driven rapidly in short sharp jerks like in the video. Maybe what is needed is for the pressure advance to be disabled or reduced for print moves that are under a certain threshold (say 10mm in length)? Or perhaps to decay the effect of pressure advance with short print moves. Maybe this could be done by adjusting the extruder acceleration settings but then that would affect retraction too? Dunno.

    For me, on my machine, the ideal situation would be to only apply pressure advance to print moves that are over about 5 to 10mm in length, but I appreciate other users with different machines will likely have different requirements. The thing with the misshapen holes needs looking at though.

    OH. Duet Ethernet plus Duex5. Firmware 1.19beta8. No step errors doing M122 while or after the misshapen hole is being formed


  • That is strange Ian but you are using large values for short tubes by conventional standards, even if there is the issue of whether 3 of them needs 3 times as much.

    Maybe start with 0 and go up in very small increments such as 0.0025. See what happens. This is what I meant about the long straight lines they're a test, but possibly unrepresentative of any other more normal moves.

  • What slicer are you using?

    The reason I ask: It looks like it doesn't think the circle is one piece, so once its done with a short section of the circle it looks like its trying to retract. Maybe try a small model that wont waste alot of filament and turn off your retraction to test the idea.

    Just an idea, most likely wrong but THATS AN AWESOME PRINTER!

  • Ian,

    I have not replied back to the other pressure advance thread in a moment because I have been running various tests and did not want to come back without repeatable results. I am sure you have because you are you, but have you turned retractions off all together and just ran pressure advance during a print, starting at 0 and working your way up in small increments 0.01 0.0125 0.02 etc.

    I have found that a half circle with the open side facing you is the easiest to dial this in as it goes front start to end of a move, closely watching the layer lines on each side for evenness.

    I am still testing this but my best results have come from doing so.

  • 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.

  • @Whitewolf:

    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).

  • @Whitewolf:

    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.

  • administrators

    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.

  • administrators

    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-B

    It'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?


  • administrators

    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.


Looks like your connection to Duet3D was lost, please wait while we try to reconnect.