Firmware speed extrusion multiplier = f(target extrusion rate)
-
I've just done some measurements on my delta printer, which uses an E3Dv6 hot end and Titan extruder. I used RigidInk PLA at an extrusion temperature of 200C. I recorded the filament monitor mm/rev calibration data at extrusion speeds form 1mm/sec to 7mm/sec. Here is the data:
At 6mm/sec extrusion rate, extrusion is 11.5% down compared to 1mm/sec. At 7mm/sec I heard something slipping, I'm not sure whether it was the stepper motor missing a step or the extruder grinding the filament.
It looks like setting M592 parameters A=0.015 and B=0.0012 should compensate for the non-linear drive quite well.
-
Hi David, that's very useful info, thanks. I will initially be trying this feature on a titan+jhead combo using similar filament and temperature as you and so will use those values as a starting point. Will report back when I have some data.
-
Nice feature and a feature not present in other firmware. It will be quite interesting to tie this to the/a filament monitor.
-
I'd be interested to know what effect this has on print quality.
If I understand the theory correctly, we have a build up of pressure in the hot end as we increase the extrusion speed and try and force more and more filament through it. This causes the extruder to perhaps not bite into the filament quite so well so we increase the the extrusion rate to compensate.
The bit that makes me sceptical is that it is essentially positive feedback because increasing the extrusion multiplier will increase the pressure even more, which will need higher extrusion multiplier ad infinitum. Also, at some point, this built up pressure will need to be relieved and this will happen when the extruder stops or moves more slowly. I'd have thought that this would then show as oozing\blobs on non-print moves or over extrusion on short (and thus) lower speed moves. I'd guess that those would be the things to look out for when testing.
The other thing that makes me sceptical is that it is the complete opposite of pressure advance which we've seen can be beneficial. With pressure advance, we increase the rate of change of extrusion at low speed at the start of a move but with this, we will be increasing the extrusion amount during the high speed portion of a move.
Personally, I'd need to see some with and without prints to be convinced that it is beneficial.
-
If I understand the theory correctly, we have a build up of pressure in the hot end as we increase the extrusion speed and try and force more and more filament through it. This causes the extruder to perhaps not bite into the filament quite so well so we increase the the extrusion rate to compensate.
That's the theory I have. It may not be correct, but it is a plausible explanation for the observed effect, i.e. extruder drive steps/mm increases a little with extrusion speed, when extruding through the hot end.
The bit that makes me sceptical is that it is essentially positive feedback because increasing the extrusion multiplier will increase the pressure even more, which will need higher extrusion multiplier ad infinitum.
From my tests, it looks like we're talking about a maximum of a little over 10% additional extruder steps/mm. If a move commands an extrusion rate of 5mm/sec, the steps/mm might increase by 10% compared to extruding at very slow speeds. So we increase the steps/mm for this move by 10%. Then we need another 10% of that (assuming the compensation is linear, which it almost is), and so on. In the end, to compensate for 10% under extrusion, we need to increase the extruder drive speed by 11.11111…%. So it's not ad infinitum, as long as we don't attempt to apply large amounts of compensation, e.g. more than 50%.
Also, at some point, this built up pressure will need to be relieved and this will happen when the extruder stops or moves more slowly. I'd have thought that this would then show as oozing\blobs on non-print moves or over extrusion on short (and thus) lower speed moves. I'd guess that those would be the things to look out for when testing.
The pressure will be relieved when the extrusion rate slows down in the usual way. It's likely that the optimum amount of pressure advance will be a little higher - or rather, that the amount of pressure advance used before compensation was applied was actually too low, because the hot end was under-extruding at high extrusion rates.
The other thing that makes me sceptical is that it is the complete opposite of pressure advance which we've seen can be beneficial. With pressure advance, we increase the rate of change of extrusion at low speed at the start of a move but with this, we will be increasing the extrusion amount during the high speed portion of a move.
The aim is to restore the extrusion rate to what the slicer asked for, not to increase it to beyond what the slicer asked for.
Personally, I'd need to see some with and without prints to be convinced that it is beneficial.
Quite so. That's why I have done only a basic implementation of it, for example there is no adjustment of the compensation with temperature yet, it isn't tied in with the filament management system, and the comparisons done by the filament monitor don't take account of it yet (that is likely to need additional memory, which isn't available on the older Duets). The printing moves with the highest speeds - which will be the ones most affected by compensation - tend to be interior infill moves, and 10% under-extrusion of those moves isn't really noticeable.
If you can spare the time, it would be interesting to see how the extruder steps/mm of your own machine varies with extrusion speed.
-
If you can spare the time, it would be interesting to see how the extruder steps/mm of your own machine varies with extrusion speed.
I'll give it a go if I find time. TBH though, as I have to have all 3 (or 5) inputs loaded with filament, I tend to just set mixing ratio to roughly 33% (or 20%) for each one. Which means that for any given speed, each of my 3 (or 5) extruders will be running at 1/3 (or 1/5) of the speed that a single extruder would run at. So I doubt if my findings would be of much use. For the same reason, I doubt that I'd see the problem that this is supposed to cure.
If you recall, I did some work on high speed printing https://somei3deas.wordpress.com/2017/06/22/exploration-of-print-speeds-with-a-diamond-hot-end/. The biggest problem I've seen with higher speeds is over extrusion at the end of moves as the print head slows down, for which I need a lot of pressure advance compensation. If you recall on the tests I did, without pressure advance this caused huge blobs at the start of the next move or during a non print moves. https://somei3deas.wordpress.com/2017/06/25/duet-pressure-advance-experiments/ and I needed 0.4 to 0.5 pressure advance to compensate.
I don't see any observable effects of under extrusion at the beginning of moves, nor during a move - just very obvious signs of over extrusion at the end. I'm guessing this is because the increased pressure is sustained or decays slowly which serves to maintain a high extrusion flow rate while the head itself is decelerating. I can only repeat that for sure, I see over extrusion after long high(ish) speed moves but not under extrusion at the start or during a move and present the evidence again https://www.youtube.com/watch?v=lnYYNfVoxmQ&t=352s. We have had this discussion before but it's clear that I'm never going to convince anyone else that this is what happens. It seems strange to me that people readily dismiss such empirical evidence of what does happen if it doesn't fit with what theory dictates should happen.
However, I know for sure that at least on machine, this is indeed what happens. That is why increasing the extruder pressure during the higher speed part of the move is counter intuitive to me.
Personally I'd like the ability to be able to reduce the extrusion multiplier (and hence pressure) at the end of long high speed moves but without increasing it again at the start of the next move, but I can see that's never going to happen. Probably because my empirical test results don't fit the theory.
-
Hi Ian,
1. I have implemented nonlinear extrusion because of what I and others have measured, not because of any particular theory;
2. May I suggest that you do some single-layer test prints with both long and short high speed moves (with the same peak speed) and an appropriate amount of pressure advance, and publish the results here, so that we can see whether there is over-extrusion at the end that depends on the length of the move.
[Edited]
-
Hi David,
I think we are both grown up enough to be able to agree to disagree.
Ref 2. Already done it. The over extrusion is the same at the start of both long and short moves as per the video evidence. At the extremities of the moves, there are raised ridges (over extrusion) but no "valleys" (under extrusion). This confirms my belief that at high print speeds, the pressure builds up quickly but decays at a slower rate, which is what I expect to happen if, as I suspect, the pressure isn't fully dissipated at the end of the move. Also, as I concluded in my tests, the same high pressure advance setting was needed for both the long and the short moves adding further weight to that idea. i.e. that it's mostly a function of how fast you try and cram the filament in, rather than how fast you move the print head.
-
Just to throw my 2p in here (covers head) do you think Ian you did not observe the under extrusion as you were using multiple extruders to push the filament through, running each at below its maximum capabilities? You were printing at 400mm/s which is impressive in its own right, but using 3 (5) titans, I was under extruding at 180mm/s using one titan.
I did watch/read your results, and partially participate in that testing, but using a single extruder, I certainly hit a limit, whether that was my nozzle size (0.4mm) or my extruder's ability to continue to push enough filament at these high speeds to extrude what was expected, or an inability to heat the filament fast enough (or some combination) I did not pursue the issue enough to determine. But I am keen to try this new idea and compare 180, 200, 220 mm/s with and without this (what are we calling it - "high speed-extrusion-boost"?).
-
Hi Simon,
Always happy to hear your input. We are all adults here.
No I don't believe that using multiple extruders is the reason why I don't get the under extrusion. I believe that it is far more likely to be the fact that I'm employing multiple melt chambers.
The OP's theory is that the reason why there is pressure build up is due to friction in the nozzle and has nothing to do with melt rate. Yet when I employ 3 melt chambers on my Diamond hot end I should, according to that theory be increasing the friction which ought to make matters worse. Instead it offers an almost 3 fold increase in the print speed potential. So to my mind, the reason for that has to be the increased melting capability.
It could well be that there is some merit in what is being proposed but it goes against all my test results, which is why I am highly sceptical. The reason I get a bit hot under the collar is that no one has produced a single print showing that there is a problem - just a theory. This theory has subsequently been demonstrated by doing some static tests but I can immediately think of several reasons why they may not be valid. On the other hand I have empirical evidence gained through real testing which shows issues
with over extrusion.From my practical testing, I can only conclude that increasing the extrusion multiplier will make this over extrusion worse but these real world test results are simply being ignored. Which begs the question why? Is it because they don't fit the theory I ask myself?
My training has always been to do controlled tests to identify a problem and then devise a solution. Then maybe find a theory that fits. To my mind what we have here is a theory first, then a few tests which aren't representative of actual usage conditions, then a solution, but nobody has as yet produced a single print to demonstrate or identify a problem during normal printing.
The OP reckons that 30 to 50% more extrusion is needed at high speed and David reckons on around 11% at only 6mm/sec but if under extrusion of these amounts is prevalent and needs compensating for, I'd have thought that forums would be flooded with posts by people complaining about this issue. Yet I see none.
Just putting across my point of view here.
-
My training has always been to do controlled tests to identify a problem and then devise a solution. Then maybe find a theory that fits. To my mind what we have here is a theory first, then a few tests which aren't representative of actual usage conditions, then a solution, but nobody has as yet produced a single print to demonstrate or identify a problem during normal printing.
Well, I noticed that I was getting underextrusion which I could not explain because I had calibrated my extruder. It was only when I did some googling and found this very interesting page that I realised what was happening.
http://www.extrudable.me/2013/04/18/exploring-extrusion-variability-and-limits/
My "simple tests" verified that I was seeing this effect occurring.
The OP reckons that 30 to 50% more extrusion is needed at high speed and David reckons on around 11% at only 6mm/sec but if under extrusion of these amounts is prevalent and needs compensating for, I'd have thought that forums would be flooded with posts by people complaining about this issue. Yet I see none.
It is true that it hasn't received a lot of discussion but I think it is a recognised phenomena. Cura has some code in it that appears to make the printer aware of a compensation factor which is dependent on the extrusion rate but that solution is for Ultimaker printers only (I think, not studied it in great detail).
Anyway, I shall try David's new feature with an open mind. If it fixes the underextrusion and doesn't introduce any new problems, I will continue to use it.
-
With regard to pressure advance (which I do not use). Am I right in thinking that it tweaks the extruder rate at the begin/end of extruded segments where the extrusion rate changes so as to try and avoid over/underextrusion when the rate is reduced/increased? If that's the case then it should not have any effect in the middle of a long extrude where the extrusion rate is not changing. By contrast, M592 will modify the extrusion rate for the whole length of the extrude. It seems to me that although both of these features (pressure advance and non-linear extrusion) modify the extrusion rate, they are not mutually exclusive. They do very different jobs. I could imagine both being used if the user determined that print quality was improved by using both.
-
Anyway, I shall try David's new feature with an open mind. If it fixes the underextrusion and doesn't introduce any new problems, I will continue to use it.
For sure so will I, and I will try very hard not to allow my expectation of what will happen to cloud any evidence before me.
Ref pressure advance, my understanding is that it works as you describe. Although speed related extrusion would seem to do a different job, there be interaction between the two. For short moves without a sustained period of constant speed, pressure advance will act as it's name implies during the acceleration and deceleration phases but as speed increases, then this additional multiplier will be added. On the one hand, this would seem to indicate that less pressure advance may be needed during the acceleration phase due to the boost given by increasing the extrusion multiplier as the speed increases. On the other hand the increase in extrusion multiplier may lead to an increase in pressure, resulting in a need for more pressure advance (actually retardation) compensation at the end of the move. But, we can't have asymmetric pressure compensation (which kind of lead me back to a point that I've been trying to make)
-
The problem I see with asymmetric pressure advance is that it will inevitably lead to overall under or over extrusion over the acceleration and deceleration segments combined, compared to the steady-speed segment. But we can try it if you like. Can you point me to your video evidence?
It may be that what we actually need is nonlinear pressure advance, i.e. build up the advance distance quickly at the start of the acceleration segment and more slowly at the end; and the reverse during deceleration. My reasoning is that I suspect the increase in pressure with compression of the filament isn't linear, especially if a long Bowden tube is involved.
-
Its a shame there has not yet been any successful work on actually measuring pressure in the hotend, that would make determining how much pressure is needed by turning the extruder, much more straightforward (and remove the need to calibrate extruders).
-
Took dogs for a walk and while brain was in neutral it occurred to me that there's another variable here apart from print speed (x/y speed, not extruder speed) and that is layer height. Obviously, the amount of plastic that is extruded at any one time is derived from not just the x/y speed but the layer height and line width. Cura will soon be supporting variable layer heights and other slicers have provided this feature for some time so you do have the situation that although the print head is moving at the same x/y speed, on different layers, the extrusion rate can differ due to the variation in layer height and so without the non-linear compensation you would find that the layers that occur at the regions in the model that have the least slope (in z) would have fatter lines than the other layers due to the variation in layer height (the lower the slope, the thinner the layers). It could be that the non-linear extrude feature will help reduce the visual difference that naturally occurs between the regions on parts printed using variable layer heights.
Related to that is the situation where the speed is reduced to extend the layer print time so that the plastic has more time to harden before the next layer arrives. Without non-linear extrusion, if the extruder has been calibrated at, say, 5mm/S extrusion rate then, when the x/y rate is reduced by the slicer to extend the layer times, there's a possibility that it will overextrude at, say, 2mm/S. -
The problem I see with asymmetric pressure advance is that it will inevitably lead to overall under or over extrusion over the acceleration and deceleration segments combined, compared to the steady-speed segment. But we can try it if you like. Can you point me to your video evidence?
It may be that what we actually need is nonlinear pressure advance, i.e. build up the advance distance quickly at the start of the acceleration segment and more slowly at the end; and the reverse during deceleration. My reasoning is that I suspect the increase in pressure with compression of the filament isn't linear, especially if a long Bowden tube is involved.
Video testing is here https://www.youtube.com/watch?v=lnYYNfVoxmQ&t=358s but it may not be obvious that there are ridges only but no valleys. It probably ought to be viewed along with this https://www.youtube.com/watch?v=NAFd3Hj9Wmc&t=13s which clearly shows the huge blogs caused by pressure build up at high speed which then get deposited on the subsequent non-print and which no amount of retraction will compensate for.
I agree that asymmetric pressure advance would lead to the sum of all the increased extrusion being unequal to the sum of all the deceased extrusion but how significant would that be to the overall amount of filament needed to complete a print? It's hard to quantify. Maybe it would be in the region of 1 or 2 percent and we already deviate from the theoretical amount of filament needed whenever we set an extrusion multiplier that is anything other than unity. We don't often question why we need to this, we make assumptions and carry on regardless because it gives us better prints.
I think we are beginning to agree that the rate of increase in pressure at the start of a move may not be equal to the rate of decrease in pressure at the end. Although, because I see problems with over extrusion at the ends of moves without a corresponding under extrusion problem at the start of a move, I think what would be needed is to build up the pressure more slowly at the start but decay it more quickly at the end.
-
Took dogs for a walk and while brain was in neutral it occurred to me that there's another variable here apart from print speed (x/y speed, not extruder speed) and that is layer height…..................
I'd guess by the same reasoning, nozzle diameter might also be a factor.
-
Its a shame there has not yet been any successful work on actually measuring pressure in the hotend, that would make determining how much pressure is needed by turning the extruder, much more straightforward (and remove the need to calibrate extruders).
I couldn't agree more Simon. Everything we do regarding pressure compensation (and more besides) is based on theories about what we think is happening, rather than on what we know to be fact. I've looked long and hard at fitting a pressure transducer into a hot end so that we can measure what is really going on. With a Diamond hot end, it wouldn't be too difficult to fit a transducer into one of the 3 inputs and load filament into the other 2. But suitable transducers aren't cheap - at least for an individual like myself who would get no return on the investment. IMO this is the sort of research that companies such as E3D ought to be doing. They make both hot ends and extruders so have a vested interest in applying some scientific analysis with real measurements.
-
Took dogs for a walk and while brain was in neutral it occurred to me that there's another variable here apart from print speed (x/y speed, not extruder speed) and that is layer height…..................
I'd guess by the same reasoning, nozzle diameter might also be a factor.
A larger nozzle diameter should give reduced back pressure, so at a given extrusion speed the under-feeding of filament should be reduced. But with a large nozzle you would probably be using a higher extrusion speed anyway.