How to Accurately Calibrate Your 3D Printer

One of the steepest learning curves when starting with 3D printing is learning how to calibrate all the motors accurately. The good news is that once you know how to calibrate one motor of the printer, the rest are pretty well the same. The following instructable shows you how to accurately calibrate your printer using minimal filament (filament is only needed to calibrate the motor that feeds the filament through the hotend).

After opening Repetier and connecting your 3D printer, select the manual control tab. Next turn off easy mode and hit the toggle log button(if you’re using the most recent version of Repetier), then type into the G-Code: “M501” then press enter or hit send (a bunch of information will be added to your log, at the bottom of the screen)

Scroll up through the log until you see something like this “echo: M92 X__ Y__ Z___ E__.” Make a note of this line of code somewhere because we will be referring back to it often. The M92 values tell the stepper motors how many steps to take when you ask it to move any given distance. In my case I got M92 X80.2 Y80 Z2044 E104.

We’ll work on calibrating one motor at a time, starting with the one that controls the X-axis.

Measuring values of X-axis

Start by homing your X axis and raising the Z axis out of the way.

Take a piece of tape (less flexible tape is preferred, so it doesn’t sag) and place it on the printerbed parallel to another point of the printer that won’t move when you move the X-axis.

In Repetier tell your printer to move its X-axis. I like to start with 70mm (assuming you’re using a 100x100x100mm printbed). If you choose to move your X-axis further, you should have less margin for error, but you don’t want to go too far and over shoot your printers capabilities. Use another piece of tape at the same marker point you used before moving the X-axis. This is where your printer thinks 70mm is. We’ll call this measurement the “Desired movement.”

Now use your digital calipers to measure what the “True measurement” is for the X-axis.

If you measure 70mm perfect, your X-axis is calibrated. Chances are you didn’t get exactly 70mm on your first try though. Make note of the measurement you took. In my case I got 70.87mm.

Calculations for calibrating X-axis

We need 3 variables to calibrate our X-axis. First we need the ‘Current M92 value’ for X we made a note of in step one. Then we need the two measurements we just took. With these three variables we’ll be solving for a ‘New M92 value.’

Current M92 value = 80.2

Desired movement = 70mm

Actual movement = 70.87mm

Here’s a formula you can use to solve for the New M92 value

New M92 value = Desired movement / Actual movement * Current M92 value

70/70.87 = .987724002 (New M92 value should be 98.77% of the Current M92 value)

80.2*.987724002 = 79.22 = New M92 value

Our New M92 value is 79.22. This makes sense because our New M92 value is less than the Current M92 value(80.2), because we overshot our goal of moving the X-axis 70mm. Now let’s move on to the next step and learn how to input the New M92 value.

inputting New M92 Value for X

First type in your G:code for your New M92 value like so : “M92 X79.22” then press enter.
Then type In G:code: “M500” and press enter. (this saves your changed setting).

Type “M501” in your Gcode and scroll up in your log and make sure your new M92 for X has been saved.

If so, you can return to the beginning of this step and double check that your X-axis is now calibrated. If it is, GOOD JOB!! if not, try again. When you get that done let’s move onto the Y Axis.

How to Accurately Calibrate Your 3D Printer: 5 Steps