Can 'pressure advance' cause negative filament feed ?



  • I am printing something tiny. I am down to a 0.2 mm nozzle, 0.08 mm layer height and the features are less than 1 mm squared. and decreasing in size. I have a pressure advance of 0.4 set because of a very long bowden tube.
    The model prints fine before it gets to the tiny features but once it hits those features, the aggregate filament feed is actually negative.
    I am aware that pressure advance can cause a negative feed at the end of a section (and see it quite often). I was however under the assumption that given let's say a straight line run where the printer was extruding, the net feed (between initial extra feed and the reduction or reversal of feed at the end) would always be a positive amount.
    Looking at the g code file, the extruder is only advancing. Looking at the extruder feed gear, the extruder gear is actually going backwards a bit.
    As I said, this only happens when there is a long string of very tiny features that each require a tiny bit of material. I am pretty much at the limits of resolution on my extruder stepper motor with the steps being so tiny.
    Retraction is disabled and I can't think of anything else that would cause negative feed.

    Thoughts ?



  • @jens55 Yes that's normal. At the beginning a move, pressure advance will cause the extruder to accelerate faster than it would otherwise do, so one doesn't tend to notice this. At the end of move, the extruder will decelerate faster than it would otherwise do - even to the point where it passes 0 speed, so it can run backwards. The net extrusion amount for the move will be the same as if no pressure adavnce was being employed, it's just that you get more at the start and less at the end. Things do work slightly differently when you have a series of small segmented moves such as arcs or circles because each move is too small for pressure to be build up but there would be a cumulative effect when several small segments are printed. DC42 will tell you exactly how that works.



  • I am aware of the faster feed at the beginning and slower feed (or even reverse feed) at the end. What I was trying to figure out was if the overall feed (total amount fed during an entire feed sequence) could actually be negative. When I say 'total amount' I mean the faster feed at the start plus the main section of feed plus the reduced (or possibly negative) feed at the end.![0_1565625127565_IMG_9322.jpg
    I tried uploading an image of what I am printing ... not sure if it will show. This print is 15 mm in diameter and has 26 little teeth around the outside.

    Anyway, I thought that I might have run into extruder resolution issues (no gearing on extruder motor). I set the extruder to 128 micro steps instead of 16 with interpolation and turned pressure advance off and got what you see in the attached picture. I then turned pressure advance back on and the print failed shortly after getting to the teeth of the model (ie feeding backwards).
    I should point out that failing on the teeth portion of the print is NOT a clogging issue as I can feel that the filament is no longer in the nozzle at the end of the print and there is no retraction turned on. I am guessing I can feed 10 mm of filament manually before I hit the nozzle.



  • @jens55 Depending on your speed, you might have been hitting the step pulse frequency limit at 128x which would have led to missed steps. Dunno - just a guess. But PA shouldn't affect the total amount of filament extruded.


  • administrators

    If the speed at the start of a very short line segment is much greater than the speed at the end, then with pressure advance enabled it is possible that the overall extrusion amount could be negative. But if the speeds are similar or both zero, then the net extrusion commanded must be positive.



  • I assume you already checked if the feeder motors lose steps? Feel the feeder motors, there could be distinguishable vibration when this occurs.

    Can you post the gcode?



  • @deckingman said in Can 'pressure advance' cause negative filament feed ?:

    @jens55 Depending on your speed, you might have been hitting the step pulse frequency limit at 128x which would have led to missed steps. Dunno - just a guess. But PA shouldn't affect the total amount of filament extruded.

    I went from a 16X microstep (with interpolation) to 128X microstepping and there was no change. In desperation I tried to run the part with no pressure advance and it no longer had the issue of feeding backwards. To me that seems to indicate that it was not a problem with nozzle clogging or other similar issues (which were my first guess).

    I did not try upping the microsteps to 255X



  • @edgars-batna said in Can 'pressure advance' cause negative filament feed ?:

    I assume you already checked if the feeder motors lose steps? Feel the feeder motors, there could be distinguishable vibration when this occurs.

    Can you post the gcode?

    See my comment re feeder motor not loosing steps in my previous reply.

    I attached a recreated gcode file ... I am not sure all the settings in Cura are in fact the same as on the model I was working with earlier but it should produce similar backwards feed at the end when it prints the tiny teeth if pressure advance is enabled.

    0_1566107245562_CFFFP_reduced hirth.gcode



  • @dc42 said in Can 'pressure advance' cause negative filament feed ?:

    If the speed at the start of a very short line segment is much greater than the speed at the end, then with pressure advance enabled it is possible that the overall extrusion amount could be negative. But if the speeds are similar or both zero, then the net extrusion commanded must be positive.

    I was printing fairly slow (either 60 or 40 mm/sec) but travel speed was up at 200 mm/sec. The line segments would have been in the order of 1/2 to 3/4 of a mm. Pressure advance was at 0.4.



  • My apologies for the late reply - I had set the topic to 'watched' but for some reason was not notified of any replies. Today I decided to check the actual thread and sure enough there were three replies.

    On thinking a bit more on this issue, I can live with the issue as I can turn off pressure advance for models of this nature but I think the documentation should make mention of the possibility of retraction happening. There is a clear mention that motion of the extruder can be in reverse towards the end of a line segment but it never occurred to me that there was a possibility of the total feed of a particular line segment (the accelerated feed at the beginning, the main feed and then the reduced feed at the end) could all add up to a negative amount (negative feed doesn't make sense). I was always under the impression that the total filament feed during the printing of a line segment would reflect the actual Gcode sent .... it does not in this situation .... the gcode shows positive filament feed but the extruder's total feed is negative.
    I am thinking that there might be a bug of some kind in that feature but I don't know. In any case, the particular model I was trying to print was well outside of what FDM printers are expected to achieve so this particular set of conditions was probably never tested for.



  • @jens55 said in Can 'pressure advance' cause negative filament feed ?:

    negative feed doesn't make sense

    It does if the line segment is a very short part of a decelerating sequence as dc42 explained. During deceleration the pressure has to be reduced and that means feeding less filament in than is coming out. The amount extruded during the line should always be positive and proportional to its length but that isn't the same as what is feed into the extruder while accelerating and decelerating with pressure advance.

    However, in any sequence of segments from a start to a stop the total fed in should equal the total out, so that should always be positive and match the sum of the E values in the G-code.



  • @nophead said in Can 'pressure advance' cause negative filament feed ?:

    @jens55 said in Can 'pressure advance' cause negative filament feed ?:

    negative feed doesn't make sense

    However, in any sequence of segments from a start to a stop the total fed in should equal the total out, so that should always be positive and match the sum of the E values in the G-code.

    .... and that is exactly what I would think 'should' happen but it is not what is happening when I print the part in question. Gcode says to extrude filament (very small sections) but when pressure advance is on, the extruder ends up retracting more than it advances giving a net negative feed.



  • @jens55 Well, I tried this print. I'm definitely hearing those loud "click" sounds as I usually do when losing steps on the extruder. On my printer it happens when the head is doing the top and bottom fill with the back-and-forth moves. But, having discussed this thing multiple times and implementing dirty hacks in the firmware already, I don't know what to think of it.

    The infill looks borked, but it's probably just the unfitting 0.4 nozzle.

    Have you tried scaling the model up 5x or 10x to see if the issue changes?



  • @jens55 I talked too early. Layers ~64-77 are just retracting indefinitely on my printer without losing many steps...



  • @edgars-batna said in Can 'pressure advance' cause negative filament feed ?:

    @jens55 Well, I tried this print. I'm definitely hearing those loud "click" sounds as I usually do when losing steps on the extruder. On my printer it happens when the head is doing the top and bottom fill with the back-and-forth moves. But, having discussed this thing multiple times and implementing dirty hacks in the firmware already, I don't know what to think of it.

    The infill looks borked, but it's probably just the unfitting 0.4 nozzle.

    Have you tried scaling the model up 5x or 10x to see if the issue changes?

    Something is amiss here .... first of, you are talking about a 0.4 mm nozzle - I am using a 0.2 mm nozzle.
    I also don't understand how you could get over feeding on a nozzle that is twice the size this print was made for.
    I can only guess that when I recreated the gcode file (I didn't have the original any more), I messed up someplace.
    The model prints fine here (actually not just fine but perfect) until I get to the little teeth on the top. Even those print fine with no pressure advance. With 0.4 pressure advance the teeth start printing for maybe one layer and then stop as the extruder starts going backwards. If I recall, it doesn't go backwards continuously but I don't think I ever watched it well enough to be sure about that. All I know for sure is that the print works with no pressure advance but doesn't with 0.4 pressure advance. I also know that the when the print is finished the filament is no longer in the nozzle. I can disengage the pressure on the feed wheel and manually advance the filament an inch or two before it hits the nozzle area.



  • Oh, the model started out about twice the size and the teeth reached further towards the center of the model. I printed it with a 0.4 mm nozzle and 0.08 mm layer height and it was a bit of a mess. The mess part was caused by a bit of a stringing issue on this printer that I am still fighting but also because the resolution with the larger nozzle. I decided that the model was too large for it's purpose and scaled it down and altered the teeth. This was when I switched to the 0.2 mm nozzle and 0.08 layers. As I indicated though, the model prints fine until the printer gets to the teeth.



  • I decided to print the gcode I posted here and so far (I am at layer 18) all is looking good .... but that is with a 0.2mm nozzle.



  • So it seems I have a bit of egg on my face here ....
    First attempt at printing with pressure advance failed about 3/4 the way up the main section.
    Attempt two, without pressure advance, printed fine until it got to the teeth and then the RETRACTION screwed up. The extruder went back and forth but the NET effect was a negative filament feed. Something I had previously attributed to pressure advance. I should point out that I believe I changed retraction from 1.5 mm to 2 mm somewhere very recently and this may have affected the outcome because I did in fact print the model fine without pressure advance before. Maybe some unknown interaction, maybe something I am doing .... who knows. I don't want to re-slice the model for fear of introducing some other oddity. I did verify that the E count went up in the gcode so going backwards is not supposed to happen.
    Next attempt, again without pressure advance, I have increased E steps from 128 to 256 microsteps to see if that makes a difference.
    Update ... still turning backwards in this configuration.
    A couple of odd observations not verified yet .... at level 57, the extruder drive numbers gradually go down but later on the numbers inexplicably gradually go up. By the time the print finishes, the extruder number shows about the same as they were on level 57. Lastly, the web interface tells me it is at level 57 out of 77 when the print is finished. It also shows 166 mm out of 166 mm of filament used. I have no idea what this means or why it is happening .....



  • Looks like besides having egg on my face, I need to eat some crow 😞
    I just re-sliced the model and discovered that Cura had a negative 'retraction extra prime amount' set up for the current profile. I have no idea if that was there when I originally recreated the gcode file.
    I will now crawl in my hole and keep my head low until I can maybe get something right 😞



  • Can you export a .3MF from Cura so we can see your cura settings as well?

    Do you have wipe enabled? In the gcode preview in Cura is appears there is a slowdown at the ends of some lines.


Log in to reply