Extruder motors skip steps with pressure advance enabled
-
I'm confused, I assumed that I'll need pressure advance in order to reduce slight blobbing on corners when running on low XY jerk for slow, high quality prints to avoid ringing. If the print doesn't require high quality I just crank XY jerk all the way up. I use same max speeds for high and low quality prints.
It appears that it simply doesn't work as I intended to use it - it fails to equalize pressure in the low jerk scenario. Did I misunderstand this feature? The Volcano does work better, but extruders are still skipping when pressure advance is enabled at 0.05 or more, unless I set the extruder jerk and accel to incredibly low values of 100mm/min.
-
@edgars-batna
You probably need to understand how and why pressure builds up, then you'll understand what the compensation can do for you. Pressure builds up relatively slowly (compared to axis travel). So the effect is more noticeable the longer a move. Or in the case of small segmented arc moves, it takes a number of these short moves to happen consecutively for pressure to build up. A single arc segment on it's own will be too short a time for pressure to build up. Pressure compensation therefore does not get applied to short individual arc moves - only at the end of an arc.The effect of the pressure build up is that, at the end of a move when the extruder stops, or as the axes slow down, filament is still forced out of nozzle at higher rate. Retracting the filament at the end of these moves becomes less and less effective as print speed and/or move length are increased. The net result is that blobs can form at the end of a move where say layer change occurs. Or if the next move is a non- print move, some stringing can happen (just as if insufficient retraction was used). Conversely at high print speeds, the axes accelerate faster than the rate at which filament can be forced out of the nozzle. The extruder may accelerate fast but the pool of molten filament acts like a sponge so what you get is a sudden build up of pressure as more filament is rammed in (because it takes time to melt the incoming filament), before the rate of change of extruded filament catches up with the axes. The net result of that is that there will be under extrusion at the start of a move. So in summary, without pressure compensation once you reach a certain speed, you get under extrusion at the start of a move but over extrusion at the end of a move. If one move rapidly follows another, you may not see the under extrusion at the start because it will be masked by the over extrusion from the previous move. So it follows that the effect on print quality due to pressure build up is very much dependent on what happens between moves, as well as the length and speed of those moves. There really isn't a way of saying that you need pressure compensation to (quote) "reduce slight blobbing on corners when running low XY jerk" . It might help - it might not. You really need to tune everything else first. Then, once you are sure that you've optimised all other parameters, try pressure compensation to see if it gives you any further improvement.
To calibrate pressure advance, one way that works well for me is to print the largest cuboid that will fit on my bed, then print that at the highest speed I can with 100% infill. While it is printing, observe the start and end portions of the long infill moves. Actually I've found that a finger tip is more sensitive than the eye - one can feel the roughness. Then gradually increase pressure advance and observes the improvement in roughness at the start and end points. Keep increasing pressure advance until it feels smooth. Be aware that a layer can be affected by the previous layer so you may have to print a few layers. Once you found the optimum value, it will work at any print speed.
-
@deckingman Thanks for the detailed explanation. I do not observe visible under or overextrusion (except for smallish blobs on corners due to low XY jerk) ever since I switched to the Volcano today. It now appears to print fine without pressure advance at 120mm/s and this is considering a longish Bowden tube. Maybe I don't need it after all...
Regarding calibrating the pressure advance, the Python script did work for me during the calibration itself. The straight lines got very consistent, even considering it slowed the prints down, but I knew it would happen and thought all is well. Then I tried to print with more than a single straight segment and that's where extruders started attempting impossible speed changes, skipping steps...
I've been working on calibrating the thing for the past 6 months as time allowed it. I've reduced Extrusion-related slack significantly and it is then that the pressure advance "stopped working".
-
@edgars-batna said in Extruder motors skip steps with pressure advance enabled:
................ and that's where extruders started attempting impossible speed changes, skipping steps...
I really don't understand what you mean by that. How do you evaluate that the extruder is attempting impossible speed change? Do you see any step errors or hiccups when you run M122? The rate of change of speed is called acceleration. So given that any move will take place at the lowest acceleration of X, Y or E, then the extruders should easily keep up with whatever the hot end carriage is trying to do, because the extruders have a much lower mass to move and also E moves are in the order of single digit percentages of the distance of any given X or Y move.
I just think that you are simply trying to cram filament into the hot end, faster than you can melt it. Very few people can print much above 100mm/sec - certainly not with a standard E3d V6. Yet you are trying to get to 300 mm/sec. You've had filament being ground away (due to the resistance). You've been down the road of using two extruders in a push-pull arrangement to try and cram it in. Then you've upped the motor specs to give you 3 times more torque. Doesn't all that tell you something?
Maybe those motors and double extruder arrangement can force filament out of the nozzle at print speeds of 300mm/sec but I'll bet the filament isn't melted through to the core and the pressure build up must be horrendous.
For sure with pressure advance enabled, the extruders will accelerate faster than the axes at the start of a move, but not by much. Maybe it's enough to cause skipped steps? But the root cause isn't any fault with the pressure advance algorithm - you are just trying to push filament through the hot end faster than it can be melted.
Edit. If the cause of the filament being ground down is the "normal" blockage caused by molten filament being drawn into the heat break and solidifying, then enabling pressure advance without also reducing retraction, or setting the pressure advance too high, might make the problem worse because more molten filament will be drawn back into the heat break area.
-
@deckingman I don't need 300mm/s. There was severe filament grinding prior to using double extruders even at 60mm/s and I simply experimented with higher speeds from there, all while using the pressure advance (at various values from 0.15 to 0.7). You were right that I should have calibrated the machine without pressure advance first, as it just totally diluted my findings with these sporadic step skips. This is my typical error of doing many things at once, as I'm just impatient.
30-120mm/s are the speeds that I print at. It somehow struggled even at low speeds, at 40mm/s during the first layers in the gcode files I uploaded. This confused me further. If I took the filament and pushed by hand, it would work fine. If I printed, it would skip so hard that it sometimes would basically retract 10 cm of filament. I'm saying retract, which implies no resistance, so the steps must've been generated wrong. These "wrong" steps would persist unless I reduce E jerk to 100mm/min. It's reproducible on my machine. With so many parameters it's hard to pinpoint the fault exactly, thus I started this topic.
Anyway, the Volcano is now much better. Less oozing, less stringing, less pressure. It's great. If only I could somehow reduce blobbing on low XY jerk...
I'll do another test and check M122 soon. Maybe I even make a video, but it's late Sunday, so it'll take a bit.
-
@edgars-batna If you were getting filament being ground away even at 60mm/sec, then something is wrong with your hot end. It means there is a restriction somewhere and filament can't come out of the nozzle as fast as you are trying to cram it in. Maybe yo have a partial blockage. Maybe your thermistor is reading the wrong temperature. There are numerous reasons why you might have a problem but IMO, doubling up on extruders or fitting bigger motors is only masking that problem - you need to fix it not find ways around it.
I'm really struggling to understand what your symptoms are. Maybe I'm just being thick but what does this mean?
Quote.......
"If I printed, it would skip so hard that it sometimes would basically retract 10 cm of filament. I'm saying retract, which implies no resistance, so the steps must've been generated wrong.........."
.......end of quoteThat implies that when you printed 100mm (10cm) of filament came back out of the hot end, rather than being fed into it. That's what retraction is. Is that what really happened?
-
Mmmm...
Pressure in advance, it is not well tuned. Can cause under extrusion?
Since a days ago.... I start printing, and after some lines, aprox 300mm.... The extruder motor start skiping steps....
I clean nozzle, and with DWC, extrude manual, and works.... But if I try to print... The same.
PLA at 210 degrees
-
@peirof See my reply in the other thread that you started.
@Edgars-Batna I've edited my post of 20 Jan 2019, 19:36 and added some information at the end.
-
@deckingman said in Extruder motors skip steps with pressure advance enabled:
That implies that when you printed 100mm (10cm) of filament came back out of the hot end, rather than being fed into it. That's what retraction is. Is that what really happened?
This is exactly what happened. The skips were that hard. It would make an impression of a successful print start, then at some point it would yell "NOW" to itself and start skipping like terrible music. Then it would come back, then it would start again. Retrying the print always yielded exactly the same results.
@deckingman said in Extruder motors skip steps with pressure advance enabled:
@peirof See my reply in the other thread that you started.
@Edgars-Batna I've edited my post of 20 Jan 2019, 19:36 and added some information at the end.
Retraction is at 3mm, tried setting to 2mm but it didn't affect it. If the filament was retracted by that much (e.g. 10cm) randomly, obviously it would clog itself up.
-
@edgars-batna said in Extruder motors skip steps with pressure advance enabled:
This is exactly what happened. The skips were that hard. It would make an impression of a successful print start, then at some point it would yell "NOW" to itself and start skipping like terrible music. Then it would come back, then it would start again. Retrying the print always yielded exactly the same results.
......................>Then there is something seriously wrong. For 100mm of filament to come back out of the hot end as you describe, the extruder must run backwards. Could you make a video of it by any chance?
Are you using relative or absolute extrusion in your slicer and is the Duet board configured to use the same as your slicer? Has the gcode file got corrupted? Look through and see if there are any negative E moves. The only negative moves should be the 3mm retractions you are using. For the extruder to run backwards by 100 mm, there must be a G1 E-100 command, or series of negative E commands that add up to 100 mm. Do you get any driver errors when you run M122? Are there any erroneous M569 commands anywhere - especially any Pn Sn which could reverse the motor direction?
I've never heard of it myself, but could the driver chip fail in such as way as to reverse the step direction?
-
hi,
first, thanks all for help.
At the end, i have find it...
The most cheap piece.... Termistor.
I suppose must be read a wrong temperature....10/20 degrees minus realone..., and this causes that the printer will cost to extrude, that's why the loss of steps of the motor.
How to avoid this next time?
maybe use a PT100 as a temperature sensor, but the Heatblock I use, has no physical place to mount itSugestions, please.
-
@peirof It's going to confuse people a lot less if you stick to one thread rather than dodging about between them. You started this thread https://forum.duet3d.com/topic/8714/pressure-in-advance-newbie-guide but now you seem to be replying on this other thread. I'm having trouble keeping track.......
-
Sorry....
the post its similar/duplicated.
-
@deckingman I did a video below.
I've been looking at my config and now I'm wondering if the values I use even make sense:
M203 E4500:4500 ; Set maximum speeds (mm/min)
M201 E1000:1000 ; Set accelerations (mm/s^2)
M906 E2500:2500 I40 ; Set motor currents (mA) and motor idle factor in per cent
M566 E1000:1000 ; Set maximum instantaneous speed changes (mm/min)Are those even sane E values for around 0.2-0.5 pressure advance? They translate to 16.67mm/s jerk and acceleration.
This file has behaved the worst with pressure advance so far: 0_1548187611613_Top+Lid+2.gcode (file cut in half so I can upload it, problem during first layer)
I admit that I had to crank extruder jerk and accel a bit higher so that the problem is better visible:
M572 D0:1 S0.5
M201 E2000:2000
M566 X500 Y500 E2000:2000The motors skip steps to different degree unless I reduce E jerk and accel to below 250. The loud knock sounds are extruder motors skipping steps. The filament grind that you see is due to skipping. XY accel varies as per gcode file.
Video: https://youtu.be/6T6nCv26wXk
There it retracted like 10-15mm while doing extrusion. This was during the first layer at around 30-40mm/s. Any pressure buildup can be ruled out. I stopped the machine and checked - filament was able to move freely. It feels like it attempts to do instantaneous speed changes during transition from one segment to another instead of slowing down the head. PA of 0.5 seems to otherwise produce the best results based on some other tests, but occasional step skip still occured, causing inconsistent layer widths. I can see the widths oscillate a bit, so the skips are probably related to pressure, but, also probably, are not the root cause.
Disclaimer: I still can't rule out my own error, tho.
-
@edgars-batna I've just watched your video - several times. It's insane behaviour!!
It's as if the extruders are fighting against each other. Are you sure both extruder motors are turning in the right direction?
Also, are the steps per mm (M92) correct and the same for both extruders? Make sure there is a colon separating the values - not a semi colon or comma.
Suggest you remove the filament, then try doing a manual extrude move through DWC or by inputting something like G1 Ennn Fnn. Observe the extruders are see if they both move in the correct direction and by the same amount. Also if you can, isolate one extruder at a time and try some manual extrusions. Disconnecting one motor at a time might work (turn power to board off first) - depends on how hard it is to feed filaments through an unpowered extruder which depends a bit on gearing.
-
@deckingman I've been there, done all of that multiple times. I'm losing my mind... it happens even if I press the release button on one of the extruders and regardless of motor count or connection. I've tried single motor, tried two in series, tried mixing, tried changing the amps, microstepping, the motors, speeds... I only installed the second motor because it was losing steps like this all along, but I didn't know why and then I installed one big fat Nema 23 out of desperation, then changed from V6 to Volcano.
-
@edgars-batna One other thing. The gcode file is sliced using relative extruder moves (which is good). But just check that you config.g and any config-overide, g has an M83 command somewhere to tell the board to expect relative extruder coordinates. Make sure there are no M82 (use absolute extrusion) commands anywhere in your configuration files.
-
@edgars-batna I can see why you would be thinking that you are losing your mind - I would too watching that video. Humour me - try running ta print but with no filament loaded and observe the motors. (check the M83 thing first).
-
@deckingman Don't see M82 anywhere. This video sums up last 3 months of my life: https://www.youtube.com/watch?time_continue=6&v=KjCO0thvlNY
I'll try without filament, but I think I already tried it. I need to make a list...
-
@edgars-batna said in Extruder motors skip steps with pressure advance enabled:
@deckingman Don't see M82 anywhere. ......................
OK - but tell me that you do see an M83. I have this nasty feeling that without either M82 or M83, the board will default to M82 (absolute) extrusion.