3d printers are quite dumb as far as electronics go in the sense that there is a lot going on during a print which is assumed by the electronics. 99% of the time the electronics are assuming incorrectly.

If you want better prints, tune your printer to your filament.

Ideally you would do most of these steps for every print or every individual roll of filament. If you use a single brand you could setup profiles for each material, if you use a single brand and single material you could do this once. You should do this for every spool of filament or every print.

Step 1: Calibrate your extruder (This only needs to be done when something changes)

  • Disconnect your hotend from the extruder.
  • Cut the filament flush with whatever fitting you have.
  • Using whatever interface you use to control your printer extrude 100mm/10cm of filament.
    • Your firmware may have a safety temperature preventing cold extrusion. If this is the case you will have to bring your hotend up to temp in order to extrude filament.
  • Cut the filament and repeat this procedure two more times.
  • Measure the three pieces of filament.
  • Get an average (add the three measurements and divide by 300).
  • If your average is not close to 100 you need to change your extruder steps per mm. Take the current steps per mm and divide it by (your average/100).
  • Repeat until you are happy.

Step 2: Calibrate your filament diameter, do this every print!

Using a caliper, measure your filament diameter at several locations. Average out the measurements, at least 3, and enter that into your slicer under filament diameter.

Step 3: calibrate your z height and first layer. Do this whenever something changes in your printer.

  • Print a single layer (of say a 20*20mm cube) with your first layer at 100% height and width.
  • Using a caliper measure the print in several places (at least 8) and adjust your bed or gcode z offset.
  • Repeat until you are happy.

Step 4: calibrate your extrusion multiplier!

Do this every print, to be a little lazy every roll, to be really lazy every brand and material, if your slacker only once :frowning:

  • Print out a cube
    • (20mmx20mm would be nice)
    • in vase mode (single outline, no infill, no top or bottom layers)
    • set your extrusion multiplier to 1
    • set your extrusion width to equal the width of your nozzle.
  • Measure the walls with a caliper in several places (at least 8) and get an average.
  • Change your extrusion multiplier: new multiplier = old multiplier x (extrusion width / average measurement)
  • Repeat until you are happy.

Step 4.5: PID tune your bed and hotend.

Before and after you calibrate temperatures and any time you change a fan or move something or a season changes. PID tune your hotend and bed to keep your temperature fluctuations to a minimum.

  • M303 E(Extruder 0 for hotend 1 for bed) C(# of cycles 3-8) S(Desired Temperature)
  • M303 E0 C5 S180 = PLA Hotend tune for 5 cycles

Step 5: calibrate your temperatures.

Do this for every different filament (color, brand, material, etc)

Step 6: Calibrate your fan speed.

(I have a Delta with three really powerful layer fans. If they all three run at 100% the hotend loses temp)

  • Print your calibration tower again but change the fan speed vs the extruder temp.
  • Choose the best fan speed for the finish you desire.

Step 6.5: PID tune your hotend again with the layer fan set to the ideal speed!

As noted above if your fans in any way change the temperature of your hotend (all layer fans do) you should PID tune the hotend with the fan set at the most common speed to keep temperature fluctuations to a minimum.

I left a lot of details out and some things are vague. Let me know what should be added and I’ll edit it. Also my formulas may be off.


thanks for the post!


I have a Velleman Vertex K8400 printer with a 0.35 mm standard nozzle. Printing with 1.75 mm PLA without a heated bed.

Step 1: Estep/mm was calibrated from 200 to 140

Step 2: Measured the filament between 1.65 mm and 1.75 mm - On average about 1.73 mm
Step 3: Don’t understand it. Am I to print only the first layer of a Cube, so rectangle of 20x20mm? what am I supposed to measure, and adjusting the bed - are you referring to the bed height? How should one use the measurements to adjust the bed or code z offset?

Step 4: Measured 9 times between 0.45 mm and 0.59 mm . avg. 0.50 mm = New multiplier 0.7

Step 4.5: Didn’t understand this either
Step 5: Not yet tested
Step 6: Not yet tested

On step 4: The cube that I printed is under extruded at 1.0 extrusion multiplier… Step 4 recommend to use 0.7 - is this correct?

Step 3 you should print a single layer of anything at 100% first layer height and 100% first layer width.

You then measure the height of the print in several places in order to find out if your z height is set correctly.

If your layer height is .2mm your part should measure .2 mm.

On Step 4 what was your line width set to? With a .35mm nozzle you should set your extrusion multiplier to 1.0 your line width to .35mm your variance should not be more than 100 micron really it should be within 20-40 micron.

If your extrusion is looking weird or under during this you may just have bad filament? If it’s PLA try a new roll or try heating/vacuuming the moisture out of the filament.

Can you attach a picture of the cube you printed and tell me a little more about the filament, brand - how old is it - how is it stored.


Follow up question to Step 3: So if I measure 0.3 mm height when the layer height should be 0.2mm, does this indicate that my nozzle is 0.1 mm to high from the bed?

Step 4: (first picture, and print to the left on the second picture)
See pictures attached from the first 20mmx20mm cube test that had an average wall thickness of 0.5 mm at 1.0 extrusion multiplier. (first picture)

Step 4 - take 2: (second picture, and middle print)
Based on the first test I reduced the extrusion multiplier to 0.84 and did a new print. I printed this only 10 mm tall to see the difference between the two.
Printed wall size was then measured to 0.40-0.43 mm and average of 0.42 mm

Step 4 - take 3: (second picture, print to the right)
Based on the second test I decided to use the new Beta version of Cura (2.1) rather than the Cura (15.04.5). I set the layer height to 0.06 mm, but kept the extortion multiplier at 0.84
Printed wall size was then measured to 0.35-0.42 or an average of 0.38 mm (so getting fairly close now to the 0.35 mm target)

Regarding the question on the filament. I bought the Velleman own PLA 1KG 1.75 mm filament. It was opened 2 weeks ago. Since then it has been stored on the printer in room temperature of about 23 degree C. Do not see any info on production date.


There is something wrong with your – Filament or Hotend Temperature or Extruder – the prints in those pictures are not due to calibration or tuning of extrusion.

Can you try printing a temperature tower off thingiverse? You should use the temperature range listed on your filament or if there is no range, 5 degree celsius steps from 180 degrees to 220 degrees.

You should also run PID tuning (M303) on your hotend to ensure you are getting a consistent temperature.


I will try to print the temperature tower tomorrow. I tried to print this today, and it turned out pretty well I think.

Have you run the PID tuning on your hotend?

I’m similarly confused about step 3. My first layer averaged 0.33mm when I had a 0.2mm layer height. So does this indicate my nozzle is too close or too far from from the bed? Do I set my z height to -0.13mm?

That indicates the nozzle is to far away. A negative number should move the nozzle closer to the bed. Should.

It’s been a few years since this was published and nobody has mentioned that you don’t divide by 300 to get the average extrusion… You divide by 3… Update it please as I use this for new printer owners.