3D Printer Calibration

Posted by John on May 6, 2013

One place that I have found very little good information in the 3D printing world, has to do with properly calibrating your 3D printer. Improper calibration can result in a huge amount of wasted PLA or PVC, while setting your printer up correctly will save you plastic, time and frustration.

I wrote this with a printrbot Jr in mind, but it will work for most printer types. I also generally use metric, because that is what most printers use.

There are two major ways that your printer will probably be out of calibration:

  1. Uneven X and Y This is where a 1cm x 1cm square will print as a 1.010cm x 0.990cm rectangle (or some other incorrect values). It will cause items to be over or under-sized by a percent of their total size, and for circles to be out of round.
  2. Incorrect extrusion This will negatively affect print-quality, and it will also cause items to be over or under-sized by an absolute value, independent of their total size.


  • Some pocket change: A standard US (or Canadian) Nickel is a great calibration tool.
  • A high quality set of calipers: Ideally these need to read down to 0.01mm or 0.001" Be careful, because a lot of inexpensive digital calipers are only accurate to 0.1mm or 0.01" and this is not quite good enough. The ability to measure in both Metric and Imperial is also handy, but because most printers "think" in metric, that is the way to go.
  • 3D Stuff: I am assuming that you already have a 3D printer and computer, or are looking at buying them.


  1. Choose a Bright Shiny Nickel

    It doesn’t actually have to be all that bright. The US has minted nickels in the same size since the late 1800s You just want to make sure that your nickel hasn’t got any major deformities. According to the official specifications, Nickels have a Diameter of 0.835” (21.21mm) and a quick survey of some change I had lying around shows that even some pretty beat-up nickels from the 80s were still within 0.001” and one very worn Buffalo nickel that I have is still within 0.002”
    For our Canadian friends, your nickels are 21.20mm (0.8346”) so they are close enough (as long as you use a round one from the last 50 or so years). Just double-check with your calipers.

  2. Download this very useful Thing


    This is simply a disk that is 1.5” (38.10mm) in diameter on the outside (chosen because it is a reasonably round number in both scales), and just over 0.835” (21.21mm) on the inside (actually 21.25mm). I chose that ID because it can be hard for some people to get a really good inside diameter measurements, but almost everyone has a nickel or two to use as a go/no-go gauge.

  3. Check Your extruder

    Assuming that you have completed the basic setup and have filament loaded:
    Open up Repeater-Host (I am going to assume that you are using Repeater, If you are not, you can still do this, but you may have different steps) and connect to your printer. Go to "Manual control" and click on "Heat Extruder" Next, just above the window, click on "Temperature Curve" so that you will know when your printer is hot.
    Once your printer is heated up, raise your printhead 10-20mm (using the Z+ button) and manually advance the filament a little so that you know that it is running freely. Then pick a spot on your filament roughly 75mm (or 3") from the top of your print head and mark it, either with a pen or a bit of tape. Then measure exactly how far out your mark is, and write this number down.
    Then, back under "Manual control" extrude 30mm of filament. For example: if your machine is set to extrude 10mm per-click (shown right by the button) click the button three times, and then measure the distance from the top of your print-head to your mark again. Finally subtract your final measurement from your starting measurement and see what you got. If you extruded exactly 30mm, congratulations! but because you probably didn't, you will need to do a little math. The math you need is:

    (((Intended Feed)/(Actual feed))*Setting)

    What is this “setting”? you may ask. It is a number stored in the firmware of your printer that tells it how much the filament will extrude every time the motor takes a “step.” You will have to recalibrate this any time that you change filament, change gears, change the tension on your extruder, or change nearly anything else.

    So here is how you change it: If your feed was 28.42mm when it should have been 30mm:

    (30/28.42)=1.0556 (telling us what to multiply the “setting” by)
    • Click on “Config”
    • Click on "Firmware EEPROM Configuration"
    • You are again interested in "Steps per mm:"
    • Now, under "E" if you show that you have 640 steps per mm, you will multiply that by 1.0556, and get a new value of 675.58 (you have to round at this point) steps per mm, and input that instead.
    • Next click on "Save to EEPROM" and go to your "Slicer" tab. Open up your "Configure" window and click on the "Filament settings" tab. Measure your filament diameter in at least four places, average them, and put this actual diameter of the filament in the "Diameter" box. For now, your "Extrusion Multiplier" should be "1" (That is for fine-tuning). You will need to reset this diameter any time you change filament.
    • Your extrusion should now be ready to go.
  4. Make print #1

    Print out a calibration disk, and make sure that it cools completely before removing it from your print surface. Note that there is a small bump aligned with one of the axis; you will want to remember which way it was aligned. (On my printer it aligns with the Y axis)

  5. Square up

    This is important because when you tighten your drive-belts, they will stretch unevenly. This can cause parts to print out-of-round and the wrong size. They can also change over time, or in very hot weather, so recalibrate every now and then.

    The math you need is the same as before:

    ((Intended Feed)/(Actual feed))*Setting )

    So, if your Y axis measurement was 34.21mm when it should have been 38.10mm:
    You have a Multiplier of 1.1137

    Go back to "Firmware EEPROM Configuration" and multiply your current Y axis "Steps per mm" by your Multiplier, input that number and write it down.

    Now measure your X axis, and repeat these steps for it.

    If you were lazy, or not interested in precision, you could stop here, and get some OK prints. But you don't want to be that guy, so lets move on to the:

  6. Final check

    Re-slice, and print out a second calibration disk (waiting for it to completely cool before removing it).

    This one should be very close to square, and hopefully the outer dimensions will be very close to 38.10mm (1.5”). Measure it, and write the actual dimensions down next to the settings you used. The important thing is that they are square to within a few thousandths. If it isn't square, then double-check your math, and repeat the above steps (Writing down all settings and their results)

    This is where you finally get to use your Nickel. Try to drop your nickel into the hole in the top of your calibration disk. Don’t force it. It should be able move all the way to the bottom, but don’t worry if it stops when it gets to the very bottom edge. If the nickel can’t fit into the cylinder, then the inside diameter of your cylinder is too-small. If the nickel is loose or has excessive play in the cylinder, then the cylinder is too-large. The nickel should fit nicely without binding or allowing much light past. Take and write down X and Y outer diameter measurements.

    If your inner diameter and outer diameter are both too large, then you need to recalibrate your X and Y axis. If your Inner diameter and outer diameter are both too small, then you need to recalibrate your X and Y axis.

    If your inner diameter is too small, and your outer diameter is too large, then you need adjust your feed-rate down.

    If your Inner diameter is too large, and your outer diameter is too small, then you need adjust your feed-rate up.

    For the first two, repeat the earlier steps until you are happy (you really should only have to do this once or twice, write down the settings and results each time. If your printer is not absolutely stiff, than you may just have some natural “play” in the system and need to rely on averages of several runs.)

    To make a fine adjustment to your feed-rate open up your "Configure" window and click on the "Filament settings" tab and go back to "Extrusion Multiplier" (This should be "1"). Unfortunately there is no good math that will tell you how much to change this by, so it is going to be trial and error. I start by bumping it up or down by 0.05 (so, up to 1.05, or down to .95) making a print, and then seeing if that fixed the problem. To save filament, you can do a partial-print (print at least 6 layers) and then cancel as you fine-tune this number.

    Finally you may note that we haven't even touched on the Z axis. This is because lead-screws are less subject to stretching than belts are; however, the calibration cylinder is 2.0mm high (not including the "bump") and you can calibrate the Z axis the exact same way that you did the X and Y. There are other settings that can have effects on your accuracy, but this will take care of all of the main problems that you will encounter when first setting up.

Happy Printing:


Projects Tutorials

Comments (3) -

1/30/2014 4:56:03 PM #

Firstly thank you very much for your time on this. Much appreciated.

Question: Am I missing the purpose of (34.21/38.10)=08979 ?  It seems the reverse division of what you said and I don't see where to use that outcome.  Was the intention to show what not to do first?  Thanks.

((Intended Feed)/(Actual feed))*Setting )

So, if your Y axis measurement was 34.21mm when it should have been 38.10mm:
You have a Multiplier of 1.1137


1/30/2014 4:58:58 PM #

Actually I see where you used it to end the same result with the following division but I dont understand the extra step especially when it doesn't follow your own directions. (Meant to be constructive) Smile


Matthew McCormack
Matthew McCormack
9/23/2014 5:27:14 PM #

Thanks for posting this information and the scientific approach to the problem. Using this guide I got my nickel to fit in the center, but the outside is too large by .2mm. Dialing back the extrusion multiplier seems to wreck prints- especially the bonding of infill to perimeter. Has anyone else had this issue? I'm using a solidoodle 2 with an e3dv6 hot end printing PLA.


Add comment

Please register or log in to post a comment.