Wednesday, August 15, 2012

Printrbot Calibration Prints

     It's one thing to get a 3D printer set up to produce nice-looking prints, but it's another if those prints don't come out the size that you want them to. This quick post will help anyone get the axes on their 3D printer working just as they should. To make the most out of this post, you're going to need a pair of calipers.

Various calibration prints

     I would start out by printing Another Calibration Square by Sebastius because it's small, but has lots of surfaces to measure. This print is also good to make sure your printer can print reliably. Small prints don't give the most accurate results, but they are good to get the axes calibrated if they begin far off from what they should be. After measuring that and adjusting the steps on your printer (see below on how to do so), I would print the Large Calibration Square by Dillon1337 (yeah, that's me). By measuring the much longer sides on this print, you'll get a much more accurate result for the new step value. I would print this out once, adjust the values, then print it again. By the second time, it should be near-perfect.

     There are two other things on Thingiverse that I would recommend, but are not necessary. The first is the Concentric Circle Test by ttsalo. This is a very small print that I used to make sure my printer was making accurate circles. You could create a 40 mm diameter circle in your favorite image editing program and print it on a sheet of paper to compare with the 3D print. Lying the 3D print on the printed outline will give you a good idea how perfect (or unperfect) your circle is. Previously, when I printed a different circular object, it was skewed. It turns out that my printer wasn't calibrated exactly, but the prints in the above paragraph would prevent that.

     I also printed out the 20mm box from The Essential Calibration Set by coasterman because I was concerned that prints I designed in the program SketchUp were not printing in the same scale that I designed them in. I went and designed a 20mm cube in SketchUp and converted to a .stl and it turned out that there was no issues and my print was identical to the one uploaded to Thingiverse. This again comes down to having all of the motors precisely calibrated in the software.

To calibrate your axes, follow these steps:
  1. Print the object and be sure to remember (or mark) how it was laying on the bed. It is important to keep track of which direction is in the X, Y, or Z axis.
  2. Find the step-per-mm values in the slicing progam that you had set up for each axis.
  3. Determine the defined dimensions of the object. Often it is listed in the description of the part, but you might have to open the files (CAD or .stl) in a program to figure it out yourself.
  4. Measure the printed object with a pair of calipers comparing it to the defined dimensions.
  5. Use the following formula to find your new steps-per-mm value for each axis: new steps-per-mm value = (old steps-per-mm value * defined object length) / measured object length
  6. Plus this value back into the program for each of the 3 axes and try the print again. Repeat these steps until you are satisfied it is close enough.
     I created a desktop Java app that can do the calculation for "new steps-per-mm value" for you by entering in the other information. The source code,, for that app is located in my Github repository under the name 3D-Cal-Steps. There is a pre-compiled version from my 64-bit Windows 7 laptop called "CalSteps.jar", but I can't guarantee that it will work on your computer. You will most likely need to compile the source on your computer to get a working program. This program takes numbers with decimals. You can enter other text/characters into the fields without generating an error, but the result will not be calculated. This is a desktop app, but I plan on creating a web-based version of the code as well. I would also like to add a how-to on how to compile the code, but some googling should aid you in that if you are unfamiliar.

Screenshot of my CalSteps program

Please leave a comment if this post helped you or you have any suggestions. Hopefully this post helped you get your new 3D printer calibrated in no time!


  1. Adjusting steps per mm will only make things worse. You know the pitch of the belts and the number of teeth on the pulleys; that's what you should use to calculate your steps per mm.

  2. As Tom has said - you should not adjust steps per mm at all from the values worked out from belt and pulleys.

    You should tweak other factors - which there are many - this could include mechanical factors such as backlash etc...