Firmware speed extrusion multiplier = f(target extrusion rate)
-
Is there an emoticon for "yeah whatever…"
Hi Ian,
This is as close as I can find…. (rolling eyes)(◔_◔)
-
Very interesting…. God read
-
I wish I had time to test the core suggestion that increasing extrusion multiplier non linearly will result in better high speed extrusion. It's surely just a case of printing a rectangle of the type Ian and I have both played with that allows max speed to be attained and then nudging the speed up with each layer and applying the increased extrusion multiplier. Well soon see if it works. VP what do you suggest should be the factor for the multiplier? Your other thread suggests a square relationship so % new extrusion multipler=%increase in speed2?
-
Hi Dj, see here https://www.duet3d.com/forum/thread.php?id=3728 These curves are based on one of my "high-speed PLAs", that means it is flow improved. Other filaments start to increase much earlier/steeper.
I started with printing a cylinder in vase mode and increasing the speed and the extrusion multiplier together so far that it still worked out for me (the diagram in the link above was done differently, but that takes more time). For the beginning, a round object without corners should be fine. It should be big enough (e.g 150 -200 mm diameter) because in vase mode the layer time is really small and you will run into cooling troubles at higher speed. You need a constant flow, any acceleration is not welcome because you might get under extrusion. Or you are able to accelerate really fast. In this case, the extrusion rate disturbance is small enough to get filtered through the hot end/nozzle.
The curves shown in the link are "constant extrusion capacity" curves, without discontinuities of the flow rate.
-
What we have is your assumption of what might happen according to your theory(s) vs my knowledge of what does happen based on practical testing. If you want to convince me that your theory is right and that there is some flaw in my testing then you'll have to build a hot end based on your theory and present some "real world" test results. From what you say, this hot end would have an extremely short melt chamber because you claim that thermal capacity is not the limiting factor but friction is. So you can then present you findings to E3D who would be delighted to learn that their Volcano design, with it's long melt chamber is entirely the wrong thing to do.
I am sorry deckingman, english is obviously not my mother tongue, but i don´t know what your comments have to do with what i have written ?!?
1. You say you can print with one diamond nozzle with 120 mm. One diamond nozzle has multiple times the thermal surface area of a single e3D v6 nozzle and i have no problem at all to print with a single e3d v6 (no volcano) 120 mm/s . Isn´t it obvious that the "thermal surface/ residence time" cannot be the limitation in this case (small nozzle) ?!?
2. You say if you use 3 instead of 1 nozzle you can print faster - big surprise, what else should happen ?!? Did you ever think of that your limitation is the pressure because of the much too long small holes in the diamond hot end ? If you divide the flowrate by 3, the pressure drop will be reduced and you are able to print faster. But compare the thermal surface of all 3 nozzles to a single volcano nozzle. I didn´t calculate it, but bet 1 diamond nozzle has much more thermal surface than 1 volcano nozzle. In your opinion, you should have to able to print at about 2000 mm/s and not 300 mm/s, if the thermal surface would be the limitation.You did the tests already, just see the truth !
Another little flaw in your theory is this "you can assume the viscosity to be constant in the 3d printing speed range".
Just read/quote the whole sentence, " But compared to the temperature effect vs viscosity you can assume the viscosity to be constant in the 3d printing speed range. " And this is 100% correct. Besides this, this is not part of "my" theory.
That's not the case I'm afraid as PLA will hydrolyse (go less and less viscous). This process starts at about 170 degrees C and is a function of time as well as temperature. So at slow speeds, PLA is indeed much less viscous than at high print speeds due to time time that the filament has been heated. It's another reason why increasing the temperature helps with high speed printing.
I don´t want to discuss what hydrolyse is, but i guess you mean "polymerize" in this content and that means it will coke up, and coke is not really something with a low viscosity. You want a test ? Just heat your hot end, feed it with PLA and bake a PLA cookie…. To "crack" PLA it takes much more than a 1-2 seconds at 240 °C and if you don´t remove the cracked chains fast enough you bake them quickly.
The reason why a non-newton fluid like molten PLA has a smaller viscosity at higher speed has nothing at all to do with the residence time or temperature in the hot end. If you increase the temperature the viscosity will be reduced significantly. I measure the nozzle temperature directly at the tip of the nozzle. If the speed is increased the viscosity will be reduced (=> non-newton) and not increased (and i compare at same nozzle temperature and nothing else) ! That is the only interesting part of the non-newton PLA fluid - but as already mentioned, it is too small to matter.
It's another reason why increasing the temperature helps with high speed printing.
I am glad that we found something we agree;)
-
Why do I feel this sudden urge to start gnawing off my leg?
Just checked my calendar and it's not the first of April either.
(Deep breaths…......., stay calm)
VP,
You have no idea what a Diamond hot end is do you? It has 3 inputs but a single nozzle! A single filament goes through a single melt chamber which has roughly the same dimensions as an E3D volcano - not multiple times greater as you keep stating!When using all 3 inputs, each filament goes through a separate melt chamber but then into the same nozzle. So I'm NOT using 3 nozzles! It's still the same single nozzle! I say again, when I employ 3 inputs, it melts each filament in a separate chamber but then passes them all through the same single nozzle! If the nozzle is the same one, then the friction/resistance to flow is the same! In fact it's greater due to the restriction that each filament has to pass through before all 3 of them join and flow through the same single nozzle.
Only one nozzle is employed but the number of melt chambers feeding into that nozzle can be varied. I don't know how many different way I can state this. The only thing that changes when feeding 3 filaments into the single nozzle is the number of melt chambers employed before the filament enters this single nozzle.
And no, I do not mean Polymerize when I say Hydrolyse. I mean Hydrolyse when I say Hydrolyse. Do not twist my words then waffle on about Polymerisation because I never mentioned the word. Hydrolyse means become less and less viscous as I explained, and as I also explained, it is a function of time and temperature and so is relevant. It means that for PLA, viscosity is not a constant. Do not dismiss this just because you have never heard of it and assume that I mean something else.
-
@vp:
You need a constant flow, any acceleration is not welcome because you might get under extrusion. Or you are able to accelerate really fast. In this case, the extrusion rate disturbance is small enough to get filtered through the hot end/nozzle…..............
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?
-
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.