Firmware speed extrusion multiplier = f(target extrusion rate)
-
So how does this have any value in real life printing which involves continuous changes of speed as well as acceleration\deceleration, to say nothing about retraction and un-retraction?
1. Yes of course, if you read and understand what this test is for, it should be clear. Before you tell your slicer which parameters are possible you have to know where the real limitations are. So you need to know what your 100 % baseline is. The "constant extrusion capacity " is a hard limit you cannot (without hardware or filament change) exceed. if you set you slicer to a limit above, you have to fail. To find out what your very hard limit is (the constant extrusion capacity), you have to have "constant "extrusion during the test, that is all.
2. Once you know how much you would have to adjust the extrusion multiplier, you are also fine with retracts (that means it won´t get better or worse). Of course, the extrusion multiplier has only to be increased in case you push and not pull.
3. If you know what is possible, you can start to think about how to utilize the real limits. The reason why i use 1-10 g (the higher the speed the more) of printing acceleration is to achieve an as much as possible constant extrusion flow rate - by that i don´t run too much into these problems. I set my extrusion multiplier to e.g. 1.5 for some features and because my average printing speed doesn´t drop too much it works.
If one print at 50 mm/s 0.5 g is enough to keep the absolute extrusion speed variance under a certain limit, which means the extrusion won´t be a problem. But at 200 mm/s you have to increase the acceleration. Otherwise, you will run into extrusion problems (without adjusting the extrusion multiplier). Retraction is the worst case. A lot of prints have huge sold bottom fills, there is no retraction and it takes a lot of time to print them slowly. It is no problem to print them fast - if the extrusion multiplier fits !4. To adjust the extrusion multiplier will give a lot of benefit at high (e.g. > 150 mm/s) printing speeds, but it will also improve quality below 100 mm/s. TPU is a very good example, but also PETG and even PLA can be improved.
5. The way i do it right now is to use a different setting for different features, e.g adjust the extrusion multiplier when i do solid infill, according to the max speed - but that is not a beautiful and by far not the optimal way.
-
I have recently been scratching my head trying to work out why I am getting under extrusion with a titan upgrade to my mini Kossel and this thread discusses the problem I am seeing. Before I found this thread, while searching for anything related to under extrusion vs feed rate, I discovered this very interesting article that was written over 4 years ago http://www.extrudable.me/2013/04/18/exploring-extrusion-variability-and-limits/.
Edit: I forgot to add that (as mentioned in the above article) this effect occurs at very low feedrates. I did a very quick test with PLA at 200C using the titan and a 0.4mm JHead hot end and got the following extrusion factors:
[[language]] mm^3/s %extruded 2.4 97.5 4.8 95.5 7.2 92.5 12 90
With the hot end not connected (just the bowden tube) I get 100%
So my current solution (not so optimal) is to up the extruder steps by 5% in the Duet config and then in the slicer (Cura), I reduce the first layer flow to 95% to avoid over extrusion due to the low speeds used for the first layer.
-
There is a similar nobservation at http://forums.reprap.org/read.php?262,802277,803224#msg-803224.
I am seriously considering adding a feature to make extruder_drive_speed = f(requested_extrusion_speed) where f(x) = x + ax^2 + bx^3 for some values of a and b. The values of a and b will depend on filament and extrusion temperature. Calibrating them would be done automatically with the help of a Duet3D filament monitor.
-
That would be really interesting to try out. I don't have a filament monitor - would it still be possible to plug values for a and b manually? Even if not entirely optimal, I still think it would be good to have some kind of "curve" by which the feedrate could be influenced by the feedrate (and hot end temp).
-
I have just implemented this and it will be released in firmware 1.20.1. See https://duet3d.com/wiki/G-code#M592:_Configure_nonlinear_extrusion.
I am waiting for more feedback on firmware 1.20.1RC1 before I do another release.
-
Where can someone get the duet filament monitor?
-
It's not available yet, because we are prototyping a laser filament sensor as a possible production alternative to the rotating wheel one we have now. In any, case the implementation I have just done for nonlinear extrusion doesn't support automatic calibration.
-
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)