Calibrating maximum volumetric rate

If you want to eke some extra performance out of your 3D printer, calculating how much filament your hotend can process with specific filament and nozzle settings can greatly expand your capabilities

The hotend installed on a 3D printer can only melt and process a finite amount of filament in a given amount of time. The hotend maximum volumetric speed is the hard fast limit of our printer’s capabilities. This throughput capacity is measured in cubic millimeters per second, or mm3/s, and is referred to as Maximum Volumetric Speed (MVS) in PrusaSlicer.

  • Every hotend has a finite capacity for melting and processing filament. This capacity is affected by filament type and nozzle size, among other factors.

  • When printing, the effective MVS is calculated as:

Max. Volumetric Rate = Layer Height \times Extrusion Width \times Speed

This means that as we increase either Extrusion Width or Layer Height, speeds must to be reduced to stay below the set MVS value. This doesn’t necessarily mean that prints will be any slower – we’re still moving the same amount of filament – but the linear speed of the nozzle must be kept low enough to maintain a safe MVS.

If you try to move filament through the hotend any faster, you’re likely to encounter skips as the extruder can’t force incompletely melted filament through the nozzle. Under extrusion is likely to show on large surfaces and walls. Get too ambitious and a clog in the hotend or jam in the extruder is likely.

Note

These notes are based on my experiences with the Prusa i3 Mk3 and Artillery/Evnovo Sidewinder X1 printers. If you are using a different printer, please verify the hardware details are similar.

Example prints

Here’s an example of a large print sliced with the normal Prusa Generic PETG profile. The MVS setting in this profile (8 mm3/s) has been set for good print quality using a 0.40mm nozzle. This example uses a print settings profile with speeds set to 80mm/s for external perimeters and 100mm/s for all other speeds.

Slicer results using default 8 |mm3s| MVS

Fig. 59 Slicer results using default 8 mm3/s MVS

  • Speeds have been capped by the slicer to prevent exceeding 8 mm3/s regardless of the actual speeds set.

  • The print time estimate is 4h44m.

In cases where finish is not critical, or where we want to get maximum performance from a larger nozzle, determining our actual hotend capacity can yield far better performance. In this example, the MVS has been increased to 32 mm3/s based on testing of our hotend with a 0.60mm nozzle and PETG filament at 250C.

Slicer results using 32 |mm3s| MVS

Fig. 60 Slicer results using 32 mm3/s MVS

  • Speeds are no longer capped by the slicer to stay within MVS limits. In this example, printing at the desired 80mm/s extrudes at a rate of roughly 12 mm3/s, well within our hotend capacity for this configuration.

  • The print time estimate has dropped to 3h37m, close to 25% faster.

Maximum volumetric speed in PrusaSlicer

The Maximum volumetric speed setting (MVS) in PrusaSlicer is one of the most powerful features of this slicer, yet it is poorly documented and not well understood. The MVS setting essentially imposes a governor on the maximum amount of filament that the slicer will attempt to push through your 3D printer’s hotend. While you can achieve the same effect by reverse-engineering print speeds, using the MVS settings offers several advantages:

  • You can specify optimal print speeds in your slicer settings based on print quality or speed. PrusaSlicer will print up to your set speeds but will throttle speeds to avoid exceeding the rate specified in the MVS setting.

  • Independent MVS values can be set under Print Settings and Filament Settings. A single print can be created to specify an all-around default based on your hotend hardware, while filament profiles can adjust as needed to account for filament characteristics.

This gives PrusaSlicer users a huge advantage over using other slicers. Rather than calculate a range of speeds for different nozzle sizes, layer heights or extrusion widths, PrusaSlicer users can simply specify the speeds and settings they desire, then let MVS regulate speeds at slice time when and only if necessary.

Hotend limitations

E3D advertises the maximum volumetric throughput of the V6 hotend installed on the i3 Mk3 series as 15 mm3/s. The actual throughput varies depending on the filament being printed, nozzle size and temperatures. Unfortunately, this information is not easy to find in any one place.

Extruder limitations

The extruder also limits speeds. While the extruder design of the Mk3 is certainly capable of speeds fast enough for the E3D V6 hotend, it is not a geared design. This means the extruder is only capable of generating so much torque when pushing filament into the hotend. In most cases, adding a bit of heat can help, but extruder clicks are a sure sign that you’re trying to move filament too fast.

Testing approach

After rummaging around searching for a procedure to test my hotend extrusion rate limits, I finally settled on “free air” testing which involves simply issuing commands to set the nozzle temperature and extrude filament with no XY motion. I like free air tests over prints because acceleration values, XY motion and print parameters don’t come into play. It’s important to extrude a sufficient amount of filament (60mm+) in order to relieve any nozzle back-pressure that may have built up as filament first starts to flow.

Test procedure

I’ve adopted a procedure very similar to that described under the Autospeed setting description in the Slic3r Manual, but have optimized it for speed.

Here’s how I’ve set up my testing:

  • I’m printing with eSun PLA+ filament with a nominal diameter of 1.75mm with a cross-section of roughly 2.405mm.

  • I’m running an OG R2 (April 2018) Prusa i3 Mk3 extruder setup.

  • G-code commands are sent directly to the printer using OctoPrint running on a Raspberry Pi connected via USB.

To do testing, fire up Pronterface or Octoprint connected to your 3D printer via USB and begin issuing manual g-code commands.

  1. First, set extruder mode to relative and set my nozzle temp to 200C and began extruding using eSun PLA+:

M83
M109 S200
  1. Then begin issuing commands to extrude 60mm of filament at different speeds:

G1 E60 F300
G1 E60 F400
  1. Increment speeds by 100mm/min (the Fxx parameter) until you notice the extruder clicking.

  2. Reduce by speed by 50mm/min.

  3. Increment upward by 10mm/min until you hear the extruder start to skip again

  4. Backed down by 5mm/min.

Once you find the highest speed that extrudes without extruder clicks, repeat the test 2 more times for verification.

Once you determine the speed for a particular temperature, the calculations are simple:

  • Divide the speed used in the G1 command by 60 to convert mm/min to mm/s.

  • Multiply the speed in mm/s by the area of the cross-section of my 1.75mm filament (2.405) to get the corresponding rate measured in mm3/s . 1

  • Reduce the measured rate (.5 mm3/s is a good amount) to leave some headroom for hardware and filament variations.

Note

For details on the math used in these calculations, please refer to Fabaloo’s basic 3d printer filament calculations article.

Test results

Testing shows that filament type, temperature and nozzle size all impact MVS.

Note

This data is based on a single round of testing on my Prusa i3 Mk3 with a nickel-plated copper heater block. You should repeat testing to identify suitable speeds for your printer hardware.

Here are sample results printing Inland PLA with a 0.40mm brass nozzle.

Table 6 Inland PLA with a 0.40mm brass nozzle

Temperature (C)

Max Feedrate (mm/m)

MVS (mm^3/s)

220

430

17.24

210

390

15.63

200

380

15.23

190

370

14.83

Here are sample results printing AmazonBasics/Overture PETG with a 0.40mm brass nozzle.

Table 7 AmazonBasics/Overture PETG with a 0.40mm brass nozzle

Temperature (C)

Max Feedrate (mm/m)

MVS (mm^3/s)

260

580

23.25

250

560

22.45

240

540

21.65

230

530

21.24

Here are sample results printing AmazonBasics/Overture PETG with a 0.60mm brass nozzle.

Table 8 AmazonBasics/Overture PETG with a 0.40mm brass nozzle

Temperature (C)

Max Feedrate (mm/m)

MVS (mm^3/s)

260

970

38.88

250

850

34.07

240

810

32.47

230

650

26.05

Note

The Solex 3D Matchless nozzles at 0.60mm and larger live up to its billing in this testing. I was unable to find a speed at which this nozzle would skip. I believe this is because this nozzle was able to process the PETG filament at maximum extruder feed rate. The MVS values for that nozzle should not be taken as “as fast as the printer can push filament”. This is a limitation of my testing methodology, but more than adequate to verify the performance of this nozzle.

I’ll be updating my results regularly as I complete testing with more filaments and nozzle sizes. The data is sorted by MVS.

Smaller nozzle results

Using a 0.40mm nozzle with PLA, these results match my previous experience:

  • At 195C, Prusa’s 15 mm3/s default is a bit too aggressive for PLA printing with a 0.40mm nozzle.

  • Raising temps increases throughput (MVS), but at the risk of diminishing print quality.

My conclusions are that when printing with a 0.40mm nozzle:

  1. 15 mm3/s is not safe for all PLAs.

  2. 11.5 mm3/s is a good safe default to avoid problems for most users.

These conclusions are borne out (unscientifically) by a number of posts that popped up on the Prusa forums over the summer months in which users reported failures printing with PLA (at 15 mm3/s ) but none with PETG (8 mm3/s ). My advice for anybody encountering extruder click and jams problems is always to slow down. If that works, using a lower MVS value can resolve the issue without a lot of fiddling with speed settings.

Larger nozzle results

Stepping up to a larger nozzle with PETG at the upper end of the manufacturer temperature range really opened up results. I’m doing some test prints with MVS set to 32 mm3/s and am not experiencing skips or jams.

Todo

More extensive testing with different filaments and different nozzles. Need to validate Solex 3D performance with normal PLA types.

High performance hotends

E3D released a blog entry on the release of their SuperVolcano hotend that contained some valuable information. They compared results from printing the Benchy model at a variety of sizes using each of their hotends with different nozzle sizes:

  • V6 (standard on the Prusa i3 Mk3)

  • Volcano

  • SuperVolcano

Unfortunately, the only common nozzle size tested was 0.80mm, but that yielded some very interesting results.

Excerpt from E3D SuperVolcano test results

Fig. 61 Excerpt from E3D SuperVolcano test results

The highlighted column shows results in mm3/m. By converting to mm3/s we can see a few patterns:

  • The V6 with 0.8mm nozzle is rated at ~14 mm3/s.

  • The Volcano with 0.8mm nozzle is rated at ~19.5 mm3/s.

  • The SuperVolcano with 0.8mm nozzle is rated at ~24 mm3/s.

  • Nozzle size impacts throughput, which only makes sense. Smaller nozzles will result in more back pressure and reduce MVS. A larger opening results in less back pressure.

  • Swapping a V6 0.40mm nozzle for a 0.80mm nozzle knocks 10 hours off total print time. Swapping a V6 with a 08.0mm nozzle mounted for a SuperVolcano “only” knocks another ~4 hours off total print time. Simply swapping to a larger nozzle is a very cost-effective, low-effort way of boosting stock i3 Mk3 performance.

  • The big gain with the SuperVolcano is when you jump to nozzles of 1.00mm or larger.

With a 0.80mm nozzle being the largest official E3D size for the V6, E3D’s advertised 15 mm3/s MVS is close, although with a 0.40mm nozzle it drops to closer to 10 mm3/s. I’m comfortable recommending 11.5 mm3/s for most users printing with a 0.40mm nozzle.

Todo

Additional testing to be done:

  • Compare results with different nozzle sizes & composition. (Lots of people having issues with filled materials. Does this test work satisfactorily to identify MVS for different filaments? I think so, but I’m sleepy. Do different nozzle sizes change the equation?)

  • Compare results at different ambient temps.

  • Compare results using that toxic non-name filament we all have stuck in the corners.

  • Determine whether extruder cooling (e.g. R2 versus R3 extruder parts) matters.

  • Determine whether the use of a MMU impacts results.

  • Different nozzle sizes.

  • Test P3-D claims of improvements.

  • Compare P3-D to E3D and others.

  • Compare those cheap AliExpress wonder-nozzles.

  • Titanium heatbreaks and stuff … though perhaps not. That stupid Prusa heatbreak step though?

  • Include MVS calibration into filament calibration procedure, limit testing to best heat tower results.

1

See Fabaloo’s basic 3d printer filament calculations.

Contact and feedback

You can find me on the Prusa support forums or Reddit where I lurk in many of the 3D printing-related subreddits. I occasionally drop into the Official Prusa 3D discord server where I can be reached as bobstro (bobstro#9830). You can email me directly at projects@ttlexceeded.com.

Last edited on Apr 04, 2021. Last build on Apr 03, 2021.