Automated method from CNC Kitchen to evalute the maximum volumetric speed.
Hello,
Stefan from CNC Kitchen posted there ( https://www.cnckitchen.com/blog/flow-rate-benchmarking-of-a-hotend ) a method to evaluate the maximum volumetric speed of the hotend.
I just wanted to do the same. And then I decided to put some automation in it as the gcode posted is kind of manual:
G-Code for the flow test (the speed is given in mm/min ==> here 450mm/min = 7.5mm/s):
M83 ;relative extrusions G1 F450 ;450mm/min speed G1 E20 ;prime with 20mm G1 F3 ;slow extrude for pause G1 E0.1 ;0.1mm extrusion G1 F450 ;450mm/min speed G1 E250 ;250mm extrusion x2 to G1 E250 ;trick max extrusion limit
I join some gcodes to test different volumetric speed at different temperature like on the photo:
ColorFabb XT @ 270°C. The different volumetric speeds:
Back
12mm3/s 14mm3/s 16mm3/s
10mm3/s 8mm3/s
3mm3/s 4mm3/s 6mm3/s
Front
There is sounds between each sequence of extrusion. The first is a prime (20mm of extrusion). You need to remove the prime after the sequence of 6 tones. You have 15s to do so. After the sequences are of 4 tones and a 15s pause. Then you can see if all is going well between sequences. With the two materials I tested, intervention wasn't necessary.
My results for the moment. My extruder is the standard one for a MK3S.
I will try to publish soon the raw values. And test more materials.
You are welcome to test the gcodes too and publish the data that will make a reference.
information on my printer:
- MK3S with standard E3Dv6.
- Silicon sock
- E3D Plated Copper Nozzle - V6 - 0.4mm (I think it is that one)
There are gcodes from 190°c to 280°C.
I hope I don't forget any interessting information.
RE: Automated method from CNC Kitchen to evalute the maximum volumetric speed.
I've got an (IMO) simpler procedure and results here. The linked google docs spreadsheet includes my results, including using the 3D Solex nozzles that Stefan refers to.
I'm a little baffled by Stefan's comment about a slicer using maximum volumetric flowrate being a neat idea. PrusaSlicer and Slic3r have done this for years, and it's the main reason I prefer PrusaSlicer over the competition.
and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan
RE: Automated method from CNC Kitchen to evalute the maximum volumetric speed.
I'm wondering how you can reach those values with a 0.4mm nozzle on E3D v6. Then I have few question. What are your tricks? What is OG R2 extruder setup? What are is your underextrusion rate at those speeds?
I prefer my method to chose upon consolidated measures.
Here two new materials. I'm surprised by how ABS behavior differ from other materials.
RE: Automated method from CNC Kitchen to evalute the maximum volumetric speed.
I'm wondering how you can reach those values with a 0.4mm nozzle on E3D v6.
The filament and the nozzle matter most. PETG flows much more easily than PLA, especially at higher temperatures. A larger nozzle reduces back flow. The 3D Solex Matchless nozzles increase throughput considerably.
Then I have few question. What are your tricks?
I don't use those results directly, but they give me a maximum to be used. For example, when doing COVID printing in bulk, I was using a combination of filament and PETG that would flow at 40mm^3/s+ but limited my Max volumetric speed to 32mm^3/s in actual printing. So long as I stayed within reasonable limits, there weren't any surprises.
What is OG R2 extruder setup?
Original R2 (pre R3/Mk3s) extruder setup.
What are is your underextrusion rate at those speeds?
None. Again, I stay well below the indicated upper limits. Depending on the filament, that may still be well above Prusa's default settings. Per someone at Prusa that I corresponded with, the limits for PETG that Prusa provides are for good infill. Since I wasn't using infill, I was able to safely ignore those considerations. You have to choose reasonable settings for what you're printing.
I prefer my method to chose upon consolidated measures.
Use what you prefer of course. I'm just showing a ready way of identifying appropriate values for the Max volumetric speed setting in PrusaSlicer.
and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan
RE: Automated method from CNC Kitchen to evalute the maximum volumetric speed.
@ron
I liked those graphs a lot, thanks for sharing and please add more if you have.
RE: Automated method from CNC Kitchen to evalute the maximum volumetric speed.
Next: weight samples @2mm3/s too and consider that the reference sample. Later I will consider the underextrusion rate to those reference samples. 2mm3/s will be considered 100% for each temperature. 2mm3/s is about 25mm/s for the standard 0.2mm layer height profile.
Make an extrusion multiplier calibration @2mm3/s. Here I try to have the perfect extrusion @2mm3/s. I do extrusion multiplier calibration with a 2 perimeter wall. Each perimeter have a spacing of 0.4mm to target 0.8mm wall width. The calculated perimeter width should be then 0.421mm.
After that I will choose what would be the maximum underextrusion rate I accept (3%, 5%,..). That will give me the maximum volumetric speed for a given temperature. For infill I may accept bigger underextrusion than for the perimeters.
I'm still wondering what will be the best way to share my raw data.
In a mean time, I will probably do nGen. After that it depends on what kind of project I will work on.
RE: Automated method from CNC Kitchen to evalute the maximum volumetric speed.
[...] After that I will choose what would be the maximum underextrusion rate I accept (3%, 5%,..). That will give me the maximum volumetric speed for a given temperature. For infill I may accept bigger underextrusion than for the perimeters.
If I'm understanding you correctly, you intend to use final print weight as a measure of quality. I've seen surface quality and part strength used to gauge print quality, but have never seen Benchys weighed to determine print quality! It's an interesting approach, and use what criteria matter most to you. A few notes based on my experiences:
- At best, you are measuring an average of the filament diameter and conditions that work best for the test spools. Filament does not remain static over time, absorbing moisture and suffering due to environmental conditions. Individual spools can vary even from the same manufacturer. Consider the impact of storage conditions.
- The estimates are based on the slicer's expectations. Unless you've very closely calibrated the slicer settings with a specific filament and your specific printer, expect some variation. I'd baseline with a bunch of test prints, confirming that even the same part printed with the same settings from the same spool on the same printer are within your acceptable ranges, particularly over time.
- If using print weight as a criteria, how critical is it relative to print finish and part strength? Better to have a strong part, good finish and/or an "accurate" weight?
I'm still wondering what will be the best way to share my raw data.
A google sheet allows others to filter and sort easily without a lot of work on your part. Just toss it out there. People will grab it and use it, then argue about it. 🙂
In a mean time, I will probably do nGen. After that it depends on what kind of project I will work on.
IME, nGen prints very nicely and has essentially the same traits as PETG. It's similar to other co-polyesters such as MatterHackers Ryno. It's very good for getting good tolerances and fidelity. I've been able to print 0.15mm clearance tolerance tests using nGen, whereas with PLA I can only get to 0.2mm routinely. I like it a lot, although it is a bit pricey.
and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan
RE: Automated method from CNC Kitchen to evalute the maximum volumetric speed.
The new gcodes: VolumetricSpeed-r03
The prime is happening 3mm from the bed making it better to distinguish if we later forget to remove.
- 6 tones when prime is finished.
- 1 tone when the extrusion begin
- 2 tones at the end of each extruded samples
Here the graph for nGen.
I decided to represent graph with underextrusion compared to 2mm3/s (except for PLA which is 3mm3/s because I didn't extrude for the moment samples at 2mm3/s) which is now my speed to calibrate the extrusion multiplier. For the different materials I tested:
We can see that if we want 5% maximum of underextrusion, for PET Prusa, we will go at 7mm3/s maximum @240°C and 4.5mm3/s maximum @220°C.
We may lack a bit of accuracy. Repeatability may be better. But for the time spent I think it is good information. Everyone may do its own test to confirm or infirm those figures.
External parameters that may affect the results:
- variability of the filament section
- ambiant temperature
- filament humidity
- extrusion wheel tension
- thermistor accuracy
- precision scale
- ...
It is better to do all extrusions in a row.
Here my raw data (I'm sensible to de-Google-ifing):
RE: Automated method from CNC Kitchen to evalute the maximum volumetric speed.
Here the results for PP - FormFutura Centaur PP which is for the moment the more fluid at high extrusion speed. The temperature has not so much impact on the underextrusion.
I had to increase the extrusion length by 50% (750mm per samples) for that material as it is lighter (0.9 density). To get a better accuracy we could have done even more extrusion.
For 5% maximum under-extrusion @240°C, it is 12.5mm3/s.
RE: Automated method from CNC Kitchen to evalute the maximum volumetric speed.
These are very interesting measurements! I'm a bit confused though. On the one hand, you know what speed the extruder stepper motor is moving at, but Steffan's video showed that by weighing the extruded masses from different extruder speeds (all at a particular temperature say) that the amount of actual extruded plastic per stepper step varies as a function of stepper speed. Right?
i.e. without doing measurements, you don't really know the speed of extruded filament in either mm/sec nor in mm^3/sec. The only thing you can be sure of is the amount of angular rotation of the stepper per second, which by itself is useless. It's not until you weigh the amount of extrusion that you can work back to what the mm^3/sec actually is for any given amount of stepper angular rotation, and from there what the mm/sec actually is as well. ie. From there you can work out what the mapping is from stepper angular rotation per second to the amount of extruded material per second.
However, I'd wadger that Prusa Slicer is blissfully unaware of the non-linearity embodied in your graphs, and I'd wadger that Prusa Slicer assumes a purely linear relationship when attempting to set the extrusion stepper motor speed to properly match the speed of the printhead together with the desired extrusion width and extrusion height. For PS to do a proper calculation, it would need to take into account the nonlinearity of the curves you are measuring. Right?
And that leads me to the confusing part:
1. Does all this work go to waste, since you can only give a single number to Prusa Slicer instead of the chart that you compiled, and
2. Where in all this is the true maximum volumetric extrusion rate? If I understood Steffan's video correctly, then at some point driving the extrusion stepper faster actually starts to decrease the total volume of plastic extruded per second. Is that right? Or does driving the extrusion stepper faster always lead to more total volume of plastic extruded per second, but just less and less compared to what a linear relationship would have predicted?
RE: Automated method from CNC Kitchen to evalute the maximum volumetric speed.
If I'm right that Prusa Slicer assumes a linear relationship between the angular rotation of the extruder stepper and the amount of plastic that actually does get extruded, then because we can only give a single number to Prusa Slicer to represent the MVS, the best number to give PS may not be the true MVS at all, but rather the highest MVS that's still within the more-or-less linear region of the chart that maps stepper angular rotation to volume of extruded plastic. Why? Because that's the limit of what Prusa Slicer can (more or less) accurately deal with given its assumed linear relationship. In other words,
1. It's a crippling speed limitation imposed by the current state of the slicer's development, and
2. It is very likely not the maximum speed found during testing that's just prior to the extruder skipping, because that number would almost certainly lay in the non-linear portion of the chart.
Make sense, or am I off-track?
RE: Automated method from CNC Kitchen to evalute the maximum volumetric speed.
[...] The only thing you can be sure of is the amount of angular rotation of the stepper per second, which by itself is useless. It's not until you weigh the amount of extrusion that you can work back to what the mm^3/sec actually is for any given amount of stepper angular rotation, and from there what the mm/sec actually is as well.
It's a good idea to define clearly what your goals are with the testing. In my case, I wanted to identify rates that can be fed into PrusaSlicer to get consistently good print results. I'm less after pinpoint accuracy than I am after reasonable maximums. Stefan's method of weighing the printed piece is no doubt more "accurate", but it takes more time and filament to provide a working value. If I were a filament manufacturer trying to provide highly accurate results, the increased accuracy might be worth it. I'm just trying to get prints done without encountering problems.
That said, if I've measured my filament diameter and can measure how much has gone into the hotend in a given time period, I've got a pretty good measure of the rate at which the filament flowed. Worth noting that the "free air" method can also be easily done after calibrating e-steps, so you can be confident in the length of filament being fed into the hotend.
[...] However, I'd wadger that Prusa Slicer is blissfully unaware of the non-linearity embodied in your graphs
Having played with PrusaSlicer/Slic3rPE since 2018, I believe Prusa's team just inherited what was in Slic3r and has focused on specific areas of interest, leaving others more-or-less unchanged. Their values appear to be set based on using a 0.4mm nozzle. To their credit, other than the quirky KISSlicer, most other slicers seem to be blissfully unaware of hotend limitations, leaving it up to the user to calculate speeds to avoid extruder and hotend problems.
[...] 1. Does all this work go to waste, since you can only give a single number to Prusa Slicer instead of the chart that you compiled, and
I think if you over-complicate it, yes, the work is largely a waste. That's why I want quick & simple. You want to put a number into PrusaSlicer that gives good results. In my experience, that number is usually lower than the theoretical maximum. There's currently no easy way, sort of error-prone custom filament gcode, to automatically have the slicer alter the value based on nozzle size, for example.
2. Where in all this is the true maximum volumetric extrusion rate? If I understood Steffan's video correctly, then at some point driving the extrusion stepper faster actually starts to decrease the total volume of plastic extruded per second. Is that right?
As I understood Stefan, and based on my experience, it will drop off as you exceed the hotend capacity to melt and move plastic. You start to experience skips and jams. Increased back pressure will reduce flow.
Or does driving the extrusion stepper faster always lead to more total volume of plastic extruded per second, but just less and less compared to what a linear relationship would have predicted?
At some point, it simply strips the filament and nothing moves.
and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan
RE: Automated method from CNC Kitchen to evalute the maximum volumetric speed.
Edit: Temperature is also not taken into account with the slicer settings. If you want a high degree of precision, you'd have to generate print and filament settings profiles that align speeds, temperatures, nozzle size and extrusion settings. At this point, it's probably easiest to create a 3MF project file in PrusaSlicer for each combination you plan to use.
and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan
RE: Automated method from CNC Kitchen to evalute the maximum volumetric speed.
What exactly do the percentages on the vertical axis in the OP's post represent? i.e. What is the 100% benchmark that other measurements are being compared against, and where did it come from?
RE: Automated method from CNC Kitchen to evalute the maximum volumetric speed.
What exactly do the percentages on the vertical axis in the OP's post represent?
It looks like @ron hasn't been active for a few months. Hopefully, he'll return and give an update. I'm not sure myself. I thought he was graphing his results using Stefan's methodology.
and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan
RE: Automated method from CNC Kitchen to evalute the maximum volumetric speed.
Do we know what the reference number is in Stefan's case? I'm guessing that in both cases (the OP's case and Stefan's case) the benchmark number is based on whatever estep calibration was previous performed. In other words, based on only just the original estep calibration number, it's the number of cubic millimeters of plastic that you would expect to have been extruded, based on the number of extruder steps. So, you convert that expected volume into a weight and that becomes the 100% reference weight number. Then you weigh what was actually extruded and divide that number into the reference weight number to get a percentage figure. Does that sound about right? I mean, you could of course use the predicted mm^3 extruded plastic number as the 100% reference number and convert the actual measured weight into a volume, and do the division with the predicted mm^3 volume as the denominator, but it should come out the same either way.
The stefan video is a real eye opener. Up until I saw it, I had thought the relationship between extruder speed and volume extruded was purely linear (well, up to the point where the stepper starts skipping at least). IIRC Stefan glossed over the details of his calculation, but I'll watch it again and see if I can glean what he did.
Anyhow, if the estep calibration number is the basis for the comparisons of actual vs predicted mm^3 volumes, then it would explain why Prusa chose 8mm^3 for generic PETG as the MVS and not, say, 11.5mm^3: it's a compromise between accuracy (lower MVS would be closer to the speed at which the estep calibration took place, and so would be more accurate) and speed.
RE: Automated method from CNC Kitchen to evalute the maximum volumetric speed.
Do we know what the reference number is in Stefan's case?
I do not, no. I watched far enough to determine it was getting into more detail than I needed and that was as far as I took it. Stefan is one of the smarter 3D printing YouTubers out there and clearly knows his stuff. He just seems to test everything but the one thing I'm really interested in each time.
I'm guessing that in both cases (the OP's case and Stefan's case) the benchmark number is based on whatever estep calibration was previous performed.
I don't recall estep being part of the discussion, but I may have missed something. On Prusa printers, esteps should be very consistent from machine-to-machine, so that will simplify testing.
[...] The stefan video is a real eye opener. Up until I saw it, I had thought the relationship between extruder speed and volume extruded was purely linear (well, up to the point where the stepper starts skipping at least).
The surprise for me in my testing was how very different PLA behaves from PETG. The results seem fairly linear until you approach the maximum. Then it just stops and won't be extruded any faster. Using a larger nozzle or more heat doesn't produce the higher rates I expected. I was also surprised just how fast PETG will flow given the low default settings in the PrusaSlicer filament profiles. The moral seems to be "test to be sure" with each type and (ideally) brand of filament.
and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan
RE: Automated method from CNC Kitchen to evalute the maximum volumetric speed.
The surprise for me in my testing was how very different PLA behaves from PETG. The results seem fairly linear until you approach the maximum. Then it just stops and won't be extruded any faster. Using a larger nozzle or more heat doesn't produce the higher rates I expected.
I'm just assuming you're right, but if so it's a very strange disconnect with the default settings for generic PETG and generic PLA and prusament PLA in the current version of the Prusa Slicer. It shows MVS of 8mm^3/sec for generic PETG and an MVS of 15mm^3/sec of generic PLA and the same 15mm^3/sec for prusament PLA.
RE: Automated method from CNC Kitchen to evalute the maximum volumetric speed.
I'm just assuming you're right, but if so it's a very strange disconnect with the default settings for generic PETG and generic PLA and prusament PLA in the current version of the Prusa Slicer. It shows MVS of 8mm^3/sec for generic PETG and an MVS of 15mm^3/sec of generic PLA and the same 15mm^3/sec for prusament PLA.
I had a very brief exchange with someone from Prusa at the start of the COVID PPE printing effort. I asked whether my findings on PETG flow rates made sense given the low MVS settings used in Prusa's filament settings. They responded that the answer provided was that higher flow rates for PETG are fine, but the lower values are used to ensure good infill. I think this is a case where one profile can be used many different ways, so Prusa (and any other developer ) makes a good guess at what most people want, erring on the side of caution.
and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan