3D Printer XYZ E-Step Calibration Tool (Customizable)

​This is not only an essential tool for every owner of a 3D printer, but also the only way to calibrate your 3D printer.

You may used calibration cubes before to calculate your e-steps, but this is completely wrong in so many ways. E-steps are steps per millimetre and not steps per slicer settings combine with a filament brand and type.

So let me show you how to calibrate your printer the right way and without breaking your fingers.


  • 3D Printer to calibrate and print this thing
  • Calipers
  • Some Filament
  • Binding clamps (like normally used for mounting the print bed, but this time some big ones.)
  • M5 screws and nuts for 2020 mount (optional)


Once printed mount the triangular shape onto the caliper arm. The calipers needs to be open to fit. Next is to slide the caliper base mount over your calipers. The result should look like the image shown. Make sure everything is nice and tight. You can add some foam to make the caliper mount more sturdy.

How to Use:

Use the binder clips to fixate the assembly onto your build plate. Expand the calipers to a maximum of your choice, use the printers menu controls to move and bump the print head into the front bumper of the calipers. Turn on and reset the calipers. Move the print head at least 50mm towards the axis you are measuring and watch the magic.

Here is a video showing the process in action: 3D Printer XYZE-Step Calibration done right! - YouTube

We use the y axis in this example, but it works the same with all axis.

Assuming you used 50mm, this is the fixed distance (fd=50). The calipers showed e.g. 49,4, then this is the current distance (cd=49.4). To get the currently used e-steps you need a terminal like Pronterface or the one in OctoPrint. Issue an “M92” command and it will prompt the current e-steps for all axis. Make sure you pick the right one for the axis you just measured. Lets assume the value shown is Y40.2. That is our current e-step value (ce=40.2)

To calculated the new e-step value (ne) just use this formula:

ne = ce * fd / cd
40.69 = 40.2 * 50 / 49.4

Now we need to set the new value using the M92 command again like this. Warning: You need to use a dot, so it is “40.69” and not “40,69”.

M92 Y40.69

This should result in an OK. You can issue the M92 command once again and check if the value got stored.

To save the setting to the eeprom use the M500 command.

The beauty of this tool and its setup is that you can repeat the steps above to check the movement again. On the second run the calipers should now show exactly 50mm.

I added several holes at the base, so you can mount the tool onto a 2020 beam for vertical use and calibrating the z axis e-steps. You can also mount the tool onto the print head or the printers bridge.

Just remember you only need a place where you can mount the tool and can bump into something to measure the movement. So it does not matter if the tool is mounted to the build plate like shown in the example picture. You can also mount it to the frame. The only thing you need to ensure is that a moving part of the axis to calibrate is able to hit the bumper of the calibration tool.​

3DPrinter_EStepCalibrationTool.zip (615 KB)

Very nice! I use a similar calibration tool! Well done! The same calculating “formula” to calibrate my printers. In my case the bracket is mounted on the specific axis.

Yeah, as mentioned the holes in the bracket are exactly for that. It does not matter where you mount it, it just needs to hit a moving part from that axis you want to calibrate. I used them to mount the calipers on the side of my print bed to make the bumper hit the XY carriage of my GeitPrinter.

Clever! Well done!!!

Nice. I even remembered to like it, something I’m SO bad at remembering to do. I think I will have to print one of these.

Looking at the piece that the caliper slides into, I’m wondering what orientation you print it in? It kinda looks like it needs supports. Are you able to print it without supports?

Also, the one in the photo doesn’t look exactly the same as the one in the zip file?

You could modify it according your needs!

No, I printed with supports. Its just a tiny bit and I used filament ends anyway for the project.

It should be the same as in the photo. I export the file using FreeCAD and move them over via samba to my “Print station”, so unless I did something wrong it should be it. Same goes for the thingiverse files. But I will check once I am back.

BTW: @Ender5r You should try to edit your posts, if they are still the last in line. This makes reading easier as you second text could be interpreted as a answer from someone else. Even so the lack of moderators is causing frustration here. I have a topic pending to be reviewed for about 2 days now. That is really annoying.

I just checked and redownloaded the file and viewed the model. It is the same used to print the one in the picture and in the linked video.

I normally do try to edit my posts but, like you, I’ve run into the “pending review” issue, quite a few times. That’s why I decided to make a new post this time.

Thank you for the info about the caliper support.