Skip to content
5axes edited this page Nov 23, 2021 · 31 revisions

There are many tutorials on the web and on YouTube on the calibration of the flow that uses the method of the extruded cube in Vase mode (so just one outline) and this method is used as a universal reference to calibrate its flow whatever its printer or its Slicer. We therefore pass on the tip and the solution to be used as gospel. However, in most cases the Slicer is never mentioned and you are told that all have a parameter that will allow you to adjust the flow, implying that this is valid in all cases. You will see that it will simply be called Flow, or Extrusion Multiplier or Fill Rate... Except that all these "experts" forget one fundamental thing: each Slicer does not use the same method to calculate its line widths. This document is here to try to explain the specificity of Cura and why these methods are not adapted to your Slicer.

The Cura case

Cura uses a rather simplistic modeling of the cord and considers its section as rectangular. There is no calculation of overlap between the lines. So let's take for example a classical size of width 0.4 and height 0.2. The slicer will place adjacent lines every 0.4 mm. As it is not possible to extrude a rectangular section but rather something rectangular with half discs or half ellipses on the sides (Fig 1), these half discs will merge between two lines.

Micrography of a cord

Fig 1 Micrography of a cord

No problem so far. Where it's more complicated it's on the outer parts where we will have the half-disk. This one is not taken into account by Cura but we can have an estimation of its size. To obtain the calculation, we will consider that our rectangular section cord will turn into an oblong (this is obviously an approximation of reality where the height of extrusion, overlaps etc. will influence the exact shape of the cords). The yellow parts in the image below will "overflow" to form the blue parts (see image below).

Theoretical/real cord

Fig 2 Theoretical/real cord

Let's skip the detail of the calculation, so the final thickness of a print should be pretty close to the following formula: n x w + h x (1-π/4), with n the number of lines. So for a modeled layer of 0.4 (with w 0.4, h 0.2), we should expect a width at the end of the print of 0.44; for 0.8, 0.84. This is why the flow calibration tutorials are completely wrong. For example, when trying to reduce the cord width to 0.4 from the actual 0.44, using one cord will result to 90% the flow, with two cords a 95% flow. While there is no reason to be far from 100% if the calibration of the Esteps has been well done (another point of contention) and very rarely a reason to be at anything other than 100%.

Formula for calculating cord widths

Fig 3 Formula for calculating cord widths

The other Slicers use different methods, for example in the case of PrusaSlicer the indicated extrusion width is based on a more accurate chord shape and by default you will not have 0.4 but 0.45 as default width.

Extrusion width in PrusaSlicer

Fig 4 Extrusion width in PrusaSlicer

Because the flow calculation uses a more "accurate" notion of cord shape :

Image PrusaSlicer or Slic3

Fig 5 Image PrusaSlicer or Slic3r

In this case we can consider that the tutorial that tells you to use a single cord is correct because we already have the right information at the beginning. This is not the case with Cura.

If you are not convinced you can do a simple test. The test part can be generate with the calibration plugin by generating a sample cube :

Cube generation

The cube will be print with a 0.4 nozzle, with 1 contour, layer height 0.2 and flow at 100% (preferably with your ESteps well callibrated). And you should find a final wall width close to 0.44 mm.

Result 100% Cura

Fig 6 Result with a 100% flow by Cura

You can also download PrusaSlicer, another free software, and do the same test. In this case the default line width will be 0.45.

PrusaSlicer result

Fig 7 PrusaSlicer result

In the case of PrusaSlicer the result is closer to what is announced in the software. But, in reality they are almost the same extrusions (0.44 under Cura) at 0.2 height.

Layer height: an important parameter

So as you have seen, the notion of layer height is taken into account in the calculation of the width of the lines. In PrusaSlicer, for example, by changing the height of the layers, the interface of the software will show you the result on the width of the lines and the minimum thicknesses for the thin walls.

Indication in PrusaSlicer

Indication in PrusaSlicer

Fig 8 Indication in PrusaSlicer

With Cura it is the same thing. If you still do your test, but this time vary the height of the layers and without varying your flow rate, you should see a variation in the width obtained as a function of the height of the layers (Fig 9).

Experimental result according to width/layer height

Fig 9 Experimental result according to width/layer height

Consequence of the calibration

If you want to calibrate your flow rate with just one line width, you will try by this methode to reduce your cord width to the programmed 0.4 mm. As indicated it is likely that you will obtain :

1 line => 90% flow

2 lines=> 95% flow rate

Flow rate at 90% on one cord

Fig 10 Flow rate at 90% with one line

For the width you will be good. But what about the overlap of the contours ? As we said Cura considers that the generated sections are perfect rectangles, the actual shape of the lines will naturally ensure the overlap and cohesion of the lines (Fig 11).

Connection between the cords.

Connection between the cords.

Fig 11 Connection between the cords.

By calibrating your line width to the theoretical width of Cura, the software will not change the line spacing, so you no longer get the connection between the cords (Fig 12).

Connection between the cords after calibration on the theoretical width

Connection between the cords after calibration on the theoretical width

Fig 12 Connection between the lines after calibration on the theoretical width.

Not convinced ? let's do a little test using the Calibration Cube.

XYZ calibration cube in Cura

Fig 13 XYZ calibration cube in Cura

Initially we will print a cubeXYZ with a 100% flow for comparison.

CubeXYZ 100%

Fig 14 CubeXYZ 100%

We will then print a cube with a single contour and calibrate the flow with this result.

Width 0.44 to 100%

Fig 15 Width 0.44 to 100%.

Width measured on an average of 8 measurements = 0.44

Expected width = 0.4

0.4/0.44=90%

We get a flow to apply of 90% !

A new cube with 1 contour and this time at 90% flow (Fig 16).

Programming at 90% flow rate

Fig 16 Programming at 90% flow rate

In wall width on the cube we get indeed a dimension of 0.4mm.

Line  Width 0.4 mm

Fig 17 Line Width = 0.4 mm

The XYZ Cube is printed with the same parameters.

Cube XYZ 90%

Fig 18 Cube XYZ flow 90%

It can be seen that the connections between the contours are no longer as good. Gaps appear between each bead (Fig 18).

How to calibrate your flow

So if you want to calibrate your flow with Cura, my advice is the following: Either use the cube method but don't measure one contour but at least 3 contours or 4 contours. In this case you should have a 2% deviation to be at 98%. Or use the formula to calculate the theoretical width of your cords and calibrate yourself on this value.

And my last advice: beware of tutorials, It is often an interesting source of information but always validate it with your own experiments or other sources of information.

Some links

Some links found to build this topic, such as how to calculate sections in Cura.

Ultimaker Forum

Flow Calculations : https://community.ultimaker.com/topic/28492-flow-calculations/

Slic3r

Flow Math : https://manual.slic3r.org/advanced/flow-math

Clone this wiki locally