Can 'pressure advance' cause negative filament feed ?
-
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.
-
@phaedrux said in Can 'pressure advance' cause negative filament feed ?:
@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.
Ok, done and yes, my config.g already had an M83 in it.
Good luck. I'm interested to see if that helps at all.
Oh and I forgot to mention to disable wipe when using PA.
Wipe has already been set to 0
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.
I have never tried Prusa Slicer ... not sure I want to learn yet another software package
Net outcome: Printer still doesn't print the teeth with pressure advance turned on, printer had issues printing the teeth with pressure advance turned off (not as much as with pressure advance on but more than before)
Deckingman, thanks for confirming the maximum feed rate at 256 microstepping - I was nowhere near there.
I was thinking about a geared extruder while still staying with a bowden setup but I believe that with the overall inaccuracy in a bowden setup, a geared extruder will probably not help me much (Comment ?)Since printing tiny stuff is not something I plan to do on a frequent basis (maybe my next printer ?), I will make do with what I have.
I also have many other issues I can use if I want to bash my head against a wall and feel the joy of painThanks everybody for helping me understand what is going on here !!!! I learned a fair bit with all that messing about !
I have also discovered that if I print the model tilted at a 45 degree angle, I can get noticeably nicer teeth.
So, does anybody think that a 0.1 mm nozzle has any chance of working with a long bowden tube ?
-
@jens55 This is just a theory but it might explain the symptoms you are seeing. Firstly, it might be best to start with an explanation of how pressure advance works just in case you aren't fully familiar with the mechanics involved. If you have ever used a sealant gun such as this, https://www.screwfix.com/p/p-c-cox-easiflow-gun/79714 then you would understand what I'm about to say.
It takes time to melt plastic and push it through a small hole. The molten plastic itself acts a bit like a sponge so when you start to push, you get a build up of pressure before anything much starts to come out of the nozzle. When you stop pushing, that pressure continues to force filament out of the nozzle as it slowly decays. So, at the start of a move, the print head accelerates up to speed but flow for the filament does not accelerate at the same rate. So you can get under extrusion at the start of a move. Conversely, at the end of a move the print head starts to decelerate but because of the pressure that has built up, the flow of filament out of the nozzle does not decelerate at the same rate. So you get over extrusion at the end of a move. Pressure advance works by accelerating the extruder more at the start of move to compensate for the "lag", and decelerating the extruder more at the end of a move to compensate for the pressure build up. For any given move, the extrusion amount should be the same as if no pressure advance had been applied.
That is a simplistic explanation which applies to a single, relatively long move. But where there are a series of very small segments, such as an arc or circle, each individual segment is too short for pressure to build up but because instantaneous speed change is applied between each small segment (so there is limited deceleration and acceleration) , then there will be a cumulative build up of pressure after a number of these small segments. So pressure advance has to operate on the principle that a series of small segments need to be treated as one longer move rather than trying to apply compensation to each individual move.
What might be happening (emphasis on "might") in your situation is that there could be some extruder slippage. This might be because the motor cannot cope with the sudden increase in extruder flow rate that pressure advance applies to the start of a move (or series of small segments). This is more likely to happen with a smaller nozzle because there is more restriction to flow. Also, an ungeared extruder has less torque available to push the filament than a geared extruder. So your small nozzle combined with an ungeared extruder might be the "perfect storm". Another possible reason could be the hobbed bolt grinding away the filament rather than pushing it.
So if the extruder accelerates faster than "normal" as required by pressure advance, but because of slippage this does not translate into actual filament extrusion then that might explain the problem that you are seeing.
If that is correct, then a larger nozzle would help rather than a smaller one because a larger nozzle causes less of a restriction than a smaller one. This also brings me back to the case for using a geared extruder which will have more torque.
Another thing to check would be that the Bowden tube is tight with no movement whatsoever in the couplings.
-
As well as the spring effect of filament and motor there is also backlash if using gearing or a Bowden tube that has to be slightly bigger diameter than the filament. @dc42 does the pressure advance separate these two effects and compensate for them independently? I.e. to get over backlash you would want a very fast movement and then a slower accelerating speed once the filament is engaged.