Can 'pressure advance' cause negative filament feed ?
-
@jens55 said in Can 'pressure advance' cause negative filament feed ?:
I have increased E steps from 128 to 256 microsteps
128x microstepping may already be too high for your retraction speed which may be losing steps. If you send M122 after the print has finished, do you see a number of hiccups reported?
It sounds like you're using absolute extrusion. You should be using relative extrusion. The setting can be found in Cura under the special moves menu. It may be hidden by default.
-
@jens55 said in Can 'pressure advance' cause negative filament feed ?:
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 rightI missed this before I made my previous replies.....
-
Sticking my head out ever so carefully ....
I have done two prints with a pressure advance of 0.4 - both failed at the teeth. The failure is slightly different in that the net extrusion is positive but it is well below what is required for the teeth to be printed (virtual zero extrusion). The counter for the extruder 'seems' to report correct amounts but what I see as far as the extruder turning is concerned it is quite a bit short of what the extruder counter reports. The result is that the teeth do not print because there is not enough filament.
I have printed one print so far with the pressure advance turned off and the teeth printed just fine (although not as nice as I had hoped for).
I am in the process of printing the second model without pressure advance.So, it would appear that my initial issue was valid - pressure advance causes extrusion issues.
I will attach the corrected gcode file as well as the .3mf file.
Yes, I am using absolute extrusion. I have not tried relative extrusion because I do not know enough about how to set that up yet.
M122 reports no hiccups but this is after I started the new print so I am not sure if the hiccups number is correct.0_1566272573372_CFFFP_reduced hirth.gcode [0_1566272599436_CFFFP_reduced hirth.3mf](Uploading 100%) -
hmmmm, not sure if the upload worked so I am re-doing it
The gcode:
0_1566272710536_CFFFP_reduced hirth.gcodethe .3mf file: ..... I had to stick on a .txt in order for the system to accept the .3mf file
[0_1566272789447_CFFFP_reduced hirth.3mf](Uploading 100%) 0_1566272850068_CFFFP_reduced hirth.3mf.txt -
Cura appears to be doing some awful things to the teeth. I would suggest trying to slice it in Prusa Slicer for a sanity check.
Also, I don't think that .3mf worked quite right. It's still just the sliced gcode.
I may have misled you by saying Export. To get the proper 3mf simply go to File, Save in Cura to produce a .3mf archive of the entire platter including STL, printer settings, and print settings.
And yes you'll have to change the extension to post it to the forum.
-
M122 reports no hiccups, the print completed just fine.
I have a wipe of 0.1 mm for the outer wall and 0.0575 on the infill
Here is the 'saved' version of the 3mf file:
0_1566274537842_reduced hirth.3mf.txt -
Ok that one worked properly. I can see your printer setup and print settings as well as the STL. It slices ok and the gcode preview looks acceptable now.
@jens55 said in Can 'pressure advance' cause negative filament feed ?:
I have a wipe of 0.1 mm for the outer wall and 0.0575 on the infill
I would recommend disabling wipe and coast when using pressure advance. They can interact in strange ways. Wipe and coast are basically the slicer attempting to do what pressure advance is meant to do, so use one or the other.
0.4 is quite a large amount of pressure advance. I'm not sure how well the model functions at that range. Things may start to break down? I'm not sure. How did you arrive at 0.4? Have you tested less?
Can you post your config.g as well so we can see what your overall setup is?
-
I am working with a bowden tube that is approximately 650 mm long so pressure advance will be a bit on the high side. Having said that, with this particular configuration of nozzle, speed and temperature I can easily go to zero on pressure advance. I have used numbers as high as 1.0. At this point it is more about trying to find out if there is a bug in pressure advance or if things are working as they should.
config. g:
0_1566314419755_config.g -
@jens55 Your instantaneous speed change (jerk) for the extruder is set to 120mm/min (2mm/sec). This will play havoc with pressure advance (and likely slow down all your print moves). I use 3,000 but that's with a geared extruder. Even so, try it or at least use 1,000. And for now, put you extruder steps per mm back to 16X with interpolation.
BTW, if you M350 after your M92, the firmware will re- calculate the steps per mm for you. It's a useful way of trying different micro-stepping because you can then change it "on the fly" and not have to worry about re-calculating the steps per mm.
-
Thank you, I have changed extruder jerk to 1000 and switched M350 and M92 (I was going to investigate why I had to recalculate ... but you solved that for me). I also went back to 16X microstepping with interpolation.
The next print was a mess with all kinds of over extrusion and weird periods of more extrusions than normal. I went back to 256 microsteps and the over extrusion issues went away. The interesting thing .... the reverse feed for the teeth issue seems to have been masked by the over extrusion but was back when I reverted to 256 microsteps on the extruder. -
@jens55 when you swtiched back to x16 microstepping did you also change your steps per mm to match?
-
@phaedrux said in Can 'pressure advance' cause negative filament feed ?:
@jens55 when you swtiched back to x16 microstepping did you also change your steps per mm to match?
Yes. Looking at what was happening, it appeared like the extruder was taking larger steps which was reflected in occasional periods of over extrusion.
I don't quite understand the business with 16X and interpolation .... but it seemed to behave as if it was doing the 16 steps business. Does interpolation mean 256 steps or does it do 16 steps and only calculate at 256 steps ? -
It means the cpu calculates steps at x16 and the drive takes those steps and sends x256 pulses to the motorsfor smoother quieter motion.
-
@phaedrux said in Can 'pressure advance' cause negative filament feed ?:
It means the cpu calculates steps at x16 and the drive takes those steps and sends x256 pulses to the motorsfor smoother quieter motion.
So when the cpu says 'do one step' the drive in fact takes 16 tiny steps. So resolution is the same as 16 microsteps just smoother. So when I need a single 1/256 of extruder motion it sits and does nothing and when I get to 9/256 for extruder steps it then sends 16 tiny steps.
If I understand that right then I can see why it makes a mess out of tiny details alternately under extruding and over extruding ..... -
Possibly. @deckingman has a few blog posts exploring this topic for mixing extruders where one color may be at single digit steps compared to the other colors. Using higher microstepping can resolve the issue.
It's also been theorized that it would have an impact on printing very small things with low layer Heights and small nozzles and slow speeds where the extrusion amount is very low.
Your case may be a good example of requiring x128 or x256 natural steps.
-
@phaedrux said in Can 'pressure advance' cause negative filament feed ?:
It's also been theorized that it would have an impact on printing very small things with low layer Heights and small nozzles and slow speeds where the extrusion amount is very low.
That is exactly what I am doing !
So, is there a possibility that the logic behind pressure advance does not function properly with tiny amounts of extrusion ?
-
Well I think it may be a case where your pressure advance value needs to be very well tuned. Such a large value coupled with such tiny movements is an odd corner case for pressure advance to deal with. Usually it's dealing with long movements that build up a lot of pressure. But since you have such a long bowden tube, you need large amounts of pressure advance, but you're printing very tiny things, so you only maybe need very small amounts of pressure advance.
In this case, I think the right tool for the job is a geared direct drive extruder rather than a bowden system.
The tiny movements required for making those fine details is getting gobbled up by the slack and play in the bowden tube. In other words, you're trying to tie your shoes with chopsticks while standing on stilts.
Here's what I would do to try and get the best of the setup as it is.
- Switch to relative extrusion. Absolute extrusion has been out of style since the early days. This may help avoid some rounding errors.
- use x256 microsteps on the extruder. But be aware this will limit your maximum retraction speed due to step pulse generation limits. You can use this tool to figure out what your max retraction speed without missing steps will be: https://wilriker.github.io/microstep-calculator/ Based on what I see, I think your retraction speed limit at x256 would be 1200mm/min.
- I would then re calibrate the esteps at your printing temperature using x256 microsteps, because at such fine features you need it to be spot on.
- Then I would retune retraction for that nozzle size and print speed to get it as low as possible.
- then try retuning pressure advance with that nozzle size. This may allow you to reduce retraction even further. Bear in mind the advice from deckingman on the extruder jerk. It will need to be high enough to allow pressure advance to function properly.
Other things to try involving hardware swaps. Switch to capricorn tubing, move the extruder to allow it to be shorter, or switch to a direct drive geared extruder.
-
@phaedrux said in Can 'pressure advance' cause negative filament feed ?:
In other words, you're trying to tie your shoes with chopsticks while standing on stilts.
LMAO .... I like it !
- Switch to relative extrusion. Absolute extrusion has been out of style since the early days. This may help avoid some rounding errors.
Do I need to do anything besides selecting relative extrusion in Cura ? Do I need to do anything in the Duet setup ?
- use x256 microsteps on the extruder. But be aware this will limit your maximum retraction speed due to step pulse generation limits. You can use this tool to figure out what your max retraction speed without missing steps will be: https://wilriker.github.io/microstep-calculator/ Based on what I see, I think your retraction speed limit at x256 would be 1200mm/min.
My current retraction speed is 30 mm/s, I will drop that to 20 m/s based on your suggestion even though I 'think' I am ok with 30 mm/s based on the tool.
- I would then re calibrate the esteps at your printing temperature using x256 microsteps, because at such fine features you need it to be spot on.
OK
- Then I would retune retraction for that nozzle size and print speed to get it as low as possible.
As I said, I can go down to zero and I was just trying to figure out if there was an issue with the pressure advance feature.
- then try retuning pressure advance with that nozzle size. This may allow you to reduce retraction even further. Bear in mind the advice from deckingman on the extruder jerk. It will need to be high enough to allow pressure advance to function properly.
Extruder jerk has been increased to 1000 as per advise received.
Other things to try involving hardware swaps. Switch to capricorn tubing, move the extruder to allow it to be shorter, or switch to a direct drive geared extruder.
I am already running capricorn tubing. Swapping the extruder to direct drive is not an option at this point.
-
@jens55 said in Can 'pressure advance' cause negative filament feed ?:
Do I need to do anything besides selecting relative extrusion in Cura ? Do I need to do anything in the Duet setup ?
Nope. All that happens is that Cura inserts M83 into the gcode. There's probably already an M83 in your config.g since it's the default for the Duet, but Cura still uses absolute by default so it inserts M82.
https://duet3d.dozuki.com/Wiki/Gcode#Section_M82_Set_extruder_to_absolute_mode
https://duet3d.dozuki.com/Wiki/Gcode#Section_M83_Set_extruder_to_relative_modeGood luck. I'm interested to see if that helps at all.
Oh and I forgot to mention to disable wipe when using PA.
I'd also give Prusa Slicer a try if you have it up and running. Sometimes the way cura behaves for very small features can be rather problematic. Sometimes the thin wall detection in Prusa Slicer is much better, or at least you can disable it. You're already using a 0.2mm nozzle so that should help.
-
@jens55 Just to add to everything that @Phaedrux has said, I note from your steps per mm that it looks like you have an ungeared extruder (94.5@16x). If that is the case then you might benefit more than most from using higher micro-stepping. As has been said, the thing to watch out for is the maximum step pulse frequency which I believe is currently around 120kHz. But with an ungeared extruder, you are unlikely to run into those problems. If you divide your steps per mm into 120,000 that will give you the maximum speed that you can run your extruder at. So e.g. using 16X micro stepping, your steps per mm are 94.5 giving you a maximum extrusion rate of 1268 mm/sec but if you go to 256x, your steps per mm will be 1512 so the maximum extrusion speed drops to 79mm/sec.
Note that the maximum extruder speed will be during retraction moves so as long as you don't retract faster than 79mm/sec you should be fine.
Having said all that, I'd strongly urge you to consider getting a geared extruder as and when funds allow.