Firmware speed extrusion multiplier = f(target extrusion rate)
-
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.
-
But the point I was hoping to make was that if the layer height can vary from layer to layer then you need a dynamic mechanism to adjust for the different extrusion rates on each layer (non-linear extrusion being a possible candidate) if you are expecting the lines to come out the same width. Printers can't yet change nozzles on the fly (can they?) so the nozzle hole size is effectively constant throughout the print.
-
But the point I was hoping to make was that if the layer height can vary from layer to layer then you need a dynamic mechanism to adjust for the different extrusion rates on each layer (non-linear extrusion being a possible candidate) if you are expecting the lines to come out the same width. Printers can't yet change nozzles on the fly (can they?) so the nozzle hole size is effectively constant throughout the print.
Ah I see. Sorry, I misunderstood the point you were trying to make about the transition from one layer height to another for different sections of a model. I thought that all the parts of a print that need to be printed at one layer height would be printed consecutively, then the layer height changed and the other sections printed. I didn't realise that the layer height would be dynamically changing as the head moves across the print surface. I doubt that would be any good for my printer though, as the bed is both big and heavy so my Z axis speed and acceleration are really slow. I'd have to reduce the print speed by quite a bit for the Z axis to keep up. I have enough trouble with one change per layer
-
Nozzle size at any given fixed volumetric rate is relevant, but as David said, each nozzle size tested will have an extrusion volume/second at which it begins to under extrude, it would be interesting to know if this is linear, so is the pressure related to the nozzle orifice surface area?
But if the relationship is not linear between nozzle orifice area and maximum volumetric extrusion rate, then perhaps what E3D allude to in their interview with Tom, that wider filaments (3mm) suffer with more problems getting heat into the core of the filament, also applies. Maybe a 1.0mm nozzle doesnt melt the filament as well as a 0.4, even if it is larger and creates less back pressure for an equivalent volumetric rate.
Layer height might matter to some degree, in the sense that the more obstruction that is present at the nozzle orifice whilst printing the more back pressure must develop, but the nozzle is hot and melts its way through obstructions at low speed, less so at high speed. The excess material tends to pile up.
Surely there are plastic extrusion experts in industry who could just answer these questions, people have been squirting molten plastic out of nozzles for a long time before someone thought to attach the squirter to an etch-a-sketch with a z axis and print objects with it?
-
….................. But with a large nozzle you would probably be using a higher extrusion speed anyway.
Er well sort of but on the other hand no. Because with a larger nozzle one tends to use taller layer heights as well as wider extrusion width which means that for sure you run the extruder faster, but then rapidly run into the melt rate limit so have to slow the entire print down. So one tends to extrude the same volume of filament, but as it is being forced through a larger orifice, I would expect the pressure to be less.
That could of course be a factor in why I don't see the under extrusion issues. I don't run with a nozzle diameter of less that 0.5mm whereas many people seem to use 0.4mm. It's only 0.1mm but it equates to almost 50% difference in area. It may also explain why I do get more over extrusion as pressure eventually builds up, because with the larger orifice there is less resistance, so the pressure is able to force filament out of the nozzle more freely. Of course, this is all conjecture and hypothesis.
-
Maybe a 1.0mm nozzle doesnt melt the filament as well as a 0.4, …..........
Could be but in my experience with a 0.9mm nozzle, it came down the size of the melt chamber (again) rather than nozzle diameter. The general consensus is that with layer widths in the region of 1 mm and layer heights of around 0.7 to 0.8 mm you need to slow the print speed down from a "normal" print speed of around 60mm/sec to around 10mm/sec because of the 6 fold increase in nozzle area. When I tested using all 3 melt chambers and equal mixing ratios, I had no trouble at all at 30mm/sec using 1.0mm layer width and 0.7mm layer height. I thought this was pushing my luck so when I printed the coffee table (https://somei3deas.wordpress.com/2017/12/28/t-glass-petg-coffee-table/) I ran the printer at 20mm/sec but I reckon I could push it to 30 without any undue problems. As I'll need about 6 reels of filament to print another, I'm not likely to try it though :).
-
You know you can get 2.2kg reels? Might be worth considering.
-
I buy mine from this place.
-
You know you can get 2.2kg reels? Might be worth considering.
Yeh. I bought 2.2. kg of E3D Edge once. Trouble is the damned reel is 300mm in diameter and wouldn't fit my machine. I ended up re-winding it onto 1kg spools and what a PITA that was! Anyway, it's not the length or weight that's the issue - it's the cost. 6 kg of T glass would likely buy several coffee tables from IKEA. In 7 months time, I'll be in receipt of the state pension so I need to start thinking about economising :).
-
I just ran some quick tests on my machine using a single filament\extruder. I'll publish the results when I get time to tidy them up. I did repeated tests by marking the filament, extruding 50mm and measuring the actual distance extruded. This was all done using my default temperature for PLA which is 185 deg C. Yes, I know that this temperature is low but over many hundreds if not thousands of hours of printing, using a variety of filaments, the Diamond hot end on my machine, always gives the best results at or even slightly below the manufacturers recommended minimum temperature.
In summary, on my machine, using the above test methodology, I didn't notice any difference between actual filament moved and filament demanded that was outside test to test repeatability at any feed rate up to 5mm/sec. Over that there was a difference which increased with extruder speed. I saw about 5% difference at 8mm/sec. Higher than that, the extruder was clearly trying to grind away the filament.
Interestingly, at the end of these higher flow rate moves, there was noticeably much more oozing of filament from the nozzle. Oozing is something that is much more prevalent with the Diamond hot end, especially at the start of a print when the hot end is heating up. I have a theory that this is down to thermal expansion due to having 3 large melt chambers, but this is purely conjecture.
I then repeated a couple of the tests at 4m/sec with an extrusion multiplier of unity and at 8mm/sec with an extrusion multiplier of 5%. The 4mm/sec result was the same as before as I would expect. But the 8mm/sec using an extrusion multiplier of 1.05 was also the same - i.e. still about 5% low. In fact, I'd say the results indicate that it is slightly worse at around 6% but I'll put that down to measurement error.
From these tests, my conclusion is that, on my machine, using a single filament input on a Diamond hot end with 0.5mm diameter nozzle, extruding 50mm of filament in one continuous move, into air, there are signs that at high extrusion speeds, the amount fed in to the extruder is slightly less than the amount demanded. However, increasing the extrusion multiplier does not compensate (on my machine).
We don't really know what happens. We could surmise that there must be some slippage of the filament drive train due to pressure build up in the hot end, but from the tests I ran, it seems that increasing the extruder drive speed does not compensate. We can probably also surmise that at 0.5mm diameter nozzle is not affected the same way as a 0.4 mm diameter nozzle but this would be a dangerous assumption, as there are many differences between a Diamond hot end and say, an E3D V6 - including melt chamber size. Also, the sample size of tests results is very low (about 3 others apart from my own at the time of writing, only one of which has been quantified in a meaningful fashion ).
Can anyone who has done those static tests repeat them by using an extrusion multiplier of unity at slow speed, and then their expected extrusion multiplier at high speed, to see if running the extruder faster works for them. We have very little data on which to base any informed judgement.
-
Ian, thanks for running those tests. It sounds like your Diamond + 5 (or is it now 3?) Titans suffers from this effect much less than an E3Dv6 or J-head + 1 Titan. Perhaps this is due to the larger melt chambers in the Diamond and the fact that the filament flow through each of them is reduced to 1/3 or 1/5 of the total.
I am surprised that increasing the extrusion factor didn't compensate. I did wonder whether the extrusion factor wasn't being applied to extrusion-only moves, but I just checked the code, and it appears that it should be. Perhaps at 8mm/sec your Titans are on the verge of losing grip or missing steps.
Both I and Burtgoogle have repeated our tests with nonlinear extrusion compensation applied, and found that it is effective at keeping the actual extrusion rate close to the commanded rate. See the 1.20.1RC2 thread.