XYZ 20mm Calibration Cube

by iDig3Dprinting, published

XYZ 20mm Calibration Cube by iDig3Dprinting Jan 19, 2016
390 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps

Liked By

View All

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

323649Views 159843Downloads Found in 3D Printing Tests


This is a simple calibration test cube for your 3D printer with X, Y & Z written on the axis.

To further calibrate your 3D printer print one out and you can then measure this models dimensions against the expected dimensions.

Once this is done you are able, if your 3D printer allows it, to adjust your Steps per mm in your printers firmware.

e= expected dimension
o = observed dimension
s = current number of steps per mm


(e/o) x s = your new number of steps per mm

In part though this is the result of a guide on how to make your own 3D printer calibration cube using Freecad ( https://www.idig3dprinting.co.uk/news/how-to-guides/create-a-3d-printer-calibration-cube-in-freecad/ )

So why not have a go at making your own!

Print Settings

Printer Brand:



Prusa i3 rework









How I Designed This

Designed using this guide

If you want to know how we designed it then please take a look at our post on the subject. All the information is there so that you can design your own ( https://www.idig3dprinting.co.uk/news/how-to-guides/create-a-3d-printer-calibration-cube-in-freecad/ )

More from 3D Printing Tests

view more

All Apps

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Print through a distributed network of 3D printing enthusiasts from across the US, at a fraction of the cost of the competitors. We want to change the world for the better through technology, an...

App Info Launch App

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

3D Print a wide range of designs with Treatstock. Easy to use tools to get the perfect result. The global 3D printing network that connects you with high-quality and fast working print services nea...

App Info Launch App

Regarding measuring this..

If you have the face marked as X facing you, with Z on top, you would measure from left to right across X to get the measurement for the x axis.
Same with Y.
For the Z axis, you will have the letter Z on one side of your caliper and clamping against the opposite side (the bottom). This is contrary to how you measure the other two axes.

Someone please correct me if I'm wrong. I just had a debate with a friend about something I find so simple or obvious.

Yeah, you're right. With X looking at you, Y on the right, and Z facing the ceiling; X-axis is left to right, Y-axis is front to back, and Z-Axis is top to bottom. Just like when you move those axes manually.

My X and Y are a bit of center.
I am very happy with te result of my first print.

The Y is off center in the STL file so dont worry about it.

I did not measure the X but I bet its the same...

centering these has no effect on calibration.

Comments deleted.
Comments deleted.

My "X" didn't turn out so hot. The top of the cross as well as the bottom right both have some disfigurement.
Also, I noticed the bottom of the print (top of the raft) has a slight bow up.
The "Y" and "Z" look pretty good!

This is my second print. Any tips for a noob?

your temp may be fairly high. Look up a temp tower and work out how to use it.

here is a good one:



my cube came out to be
x - 14.69 mm
y - 15.13 mm
z - 15.29 mm
any suggestions?

Comments deleted.

I printed this and my "Y" is off center. What does this mean and how can I fix it?

The Y is off center in the stl, no need to fix it. unless you really want to make a new design....

Thanks for the file upload! I've had my CR-10S for less than a week. Now that I finally got my bed level I'm getting pretty good prints. I'd love to use this calibration tool; however, I have a couple questions:

  1. What print "quality" should be used for this?

    Cura list quality at 0.06 as High, 0.1 as Normal, and 0.25 as Fastest

  2. The ReadMe says "Steps per mm in your printers firmware." Is that actually on my controller box or through software?

Need to twist quality but ok

Not great for calibration.
In my case it printed pretty well while I still had to tension both belts.

For me the best model I found yet for calibration is a small piece fast to print:

Anet A8 Hotbed Spring Bushing

I've an Anet A8 standard configuration with semicircular fan duct.
I realized cube to calibrate XYZ steps, after having calibrated extruder steps.
My settings with BQ PLA:
Resolution: 0.1mm
Infill: 30%
shells: 0.8
Print temp: 200
First layer print temp: 210
Bed Temp: 50
Bed temp first layer: 60
Fan Speed: 75%
Print speed: 50mm/s
infill speed: 65mm/s
forward speed: 80mm/s

Cube is 20x20x20, but X (https://ibb.co/hwXQi6), Y (https://ibb.co/kADnwR) and opposite Y (https://ibb.co/hOmUAm) faces have holes and layers are not homogeneous.
Photos are macro and seem to show more flaws than they do not notice in the real world with a naked eye, but I'm not satisfied.

How can I improve print quality?

Here photos:

Calibrate your Extruder.
It seems like Over extruding

I'm fairly happy with my X-Y dimensions although Z is running about .20mm over as well.
Maker Select v2.1
.09375 layer height
ext temp: 210C
bed temp: 55C
infill: 30%

I was getting ghosting so I lowered my x/y print acceleration and jerk. That really helped the ghosting on the X and slightly on the Y. The thing I am seeing is the back right corner has protruding rounded corners on the top and bottom of the print. This is the section above and below the letter imprint.

I made one and was pretty happy with my results. I wish I had purchased a better test filament.
X axis- .17mm over
Y axis- .13mm over
Z axis- .26mm over
Needs a lead screw upgrade from threaded rod.

Just had a look at your makes.

We would always recommend buying good quality filament, it means that you can rule that out when it comes to optimising your print. We always recommend Colorfabb ( https://www.idig3dprinting.co.uk/product-category/brand/colorfabb/ ).

One thing we did notice is that you are using supports and also a raft, this should not be necessary on such a print, overall this will reduce the quality of the finish of your prints, these settings should only be used if necessary, not as a matter of course.

Also your corners re not quite right, you should check you belt tension, its probably to do with sudden changes in direction.

Thank you for your input. I appreciate it and will be installing belt tension upgrades in the near future.

So I just printed this, it actually looks pretty good. However, when measuring the X and Y sides of the cube with a digital caliper, each side reads 20.16mm. The Z height is 20.02 are these off enough to warrant a change?

Well this kinda depends on what is important to you. One thing to bear in mind is that, for example the 20.16mm side, that the inaccuracies magnify as the distance gets greater. so if you are out by 0.16mm over 2cm then you could expect that to be .32mm over 4cm and over 10cm 1.6mm.

Ok, thank you for pointing that out. I really didn’t think about the inaccuracies getting larger as the print gets larger...I will take a look and see what I need to do to tighten things up a bit.

remember to use M502 to make your setting live.

made this one a couple of time 1st time the z was sideways and the y was infill then i found out i was getting a mirror image swapped my axis and now printed perfect thank you for making this useful and providing it Excellent!

Printer Robo 3D R1+ (Modified Extruder: E3D Hotend with Bowden Direct Drive PTFE)
Filement: PLA
Extruder Temp: 210
Bed Temp: 50
Infill: 20%

I know the Extruder steps are correct because I measured with calipers.
The Z steps should be correct because the height of the cube is 20mm

The base and top are also at 20mm around all sides, Its just that the middle is not, It seems to be 18mm at the shortest point.Its also bending up on the corners.

Here's what mine looks like, any ideas? Any help would be much appreciated:







Again, any help would be much appreciated.

You need to use an infill of 30% as stated in the settings.

hello. im having problems like the one on the picture. i've searched everywhere and i cant seem to fix it. like the blue test cube on the picture, my surface is exactly like that there are gaps in it and the walls are not touching like the cube perimeter and the letter Z on top of the cube. it should be one solid line and not have spaces in between correct?

have you tried upping your overlap setting? Some people run it as high as 25%

This is done to extruding less plastic than is expected.

This can be due to not enough steps/mm for your extruder stepper motor, it can also be down to poor quality filament, i.e. it says it is on average 1.75mm but in reality it is closer to 1.7mm

So the answer is to firstly check your filament. Then look at optimising your extruder steps/mm. If you can't do the latter use the extrusion width multipliers in your slicer software.

Thanks a lot :) i'll try that.

Thank you for the Cal cube

Thanks for your build. I have one question: Am I correct in assuming that rotating the cube 45 degrees will allow it to be used on a core XY 3d printer?

Yes, either that or measure from the corners.

Hi, you know why the faces have that lines? I have 2 printers and one printer, print the cube very nice, but the other printer make lines similar and I modificate the flow and temperature and the lineas don't desapere.

Not too sure what you mean by lines. If you post your make you can get some feedback on it.

Try reducing the nozzle temp and increasing the flow rate in the top/bottom.

That's definitely not normal. I've printed a few of these with different types of filament on my A8, and they've all come out fine. It looks kinda like the parts where is misses would have filament put down after being retracted. How far and how fast do you have it doing the retraction? It also looks a lot like the print is printing too far from the bed.

Very good object to test the quality of your printer
This is my first objet that i have print with my Anet A8 and the quality is realy good for a printer without improvement !


I really like this calibration cube just wish my printer wasn't having extreme layer problems. I print out the cube and it looks like a messy stack of papers...

You should post a picture of your make and ask for feedback from the community.

I think my problem was that my nozzle position was too low for me. I have been having banding going on in my prints a lot and after raising my nozzle up a little bit it seemed to print a lot better before the power went out.

Sometimes banding issues can be overcome by optimising your layer height, reducing the error in layer height caused by the specifications of your extruder.

take a look at: http://www.prusaprinters.org/calculator/ and scroll down to optimal layer height.

How useful this is will depend on your printer and the software it uses.

I feel really stupid now... I just noticed that you are using the prusa printer and not the lulzbot... sorry about that.

I'll be honest with you. I'm using a Lulzbot Taz 6 and am very new to 3D printing. I'm actually trying to fully set this thing up for my work. So I have no idea what to put in for those drop down boxes, but I'd love to learn. My work has actually gotten me into 3D printing so much I just bought the Monoprice Delta Beta so anything that you can teach me here with these drop down menus the better haha.

Hello all, admittedly my skills in math are horrible. Was hoping some one could show example using actual numbers please.

Thank you!

No problem.

Lets say you have your x stepper motor set at 100 steps per mm

The cube is 20mm in each plane so your expected length for the side printed along the x axis is 20mm

You print out the cube and measure the x axis side of the cube and you get 19mm, this is your observed length.

so the function to work out what your new steps per mm should be is:

New steps per mm = Current steps per mm X (expected length / observed length)


New steps per mm = 100 (20/19)

or 105.263 steps per mm

In this case your x axis is not moving enough. Its 100 steps is moving it only 19mm so you need to increase the number of steps it moves in order for it to move 20mm.

Sorry i'm so new to 3D printing, how would you go about compensating the stepper should it come up short on the cube?

Read the post immediately above yours

You might also be able to use the M92 gcode command in the starting script. For example, if my desired Z steps/mm is 395.06, I would put:
M92 Z395.06
in my starting script. Please note that you should check the compatibility of this gcode command with your printer and firmware before implementing it in your slicer. Hope this helped!

This is going to depend upon the 3D printer you have. If you are using open source firmware then this setting is in your configuration.h file, otherwise it may be more problematic.

Thank you so much, that helped! Turns out she is dialed in just fine, will upload shortly

This is so handy, my prints are waaaaaay more accurate now! I just printed an iPhone 5S case that fit first print! Funny thing is I've been printing something, then guessing it bigger, then I'd measure a dimension and do the same formula you use here but to scale individual prints... every time! I never realized how easy it was to change this permanently! In RepetierHost just go to Config>Firmware EEPROM Config and it's the first few values on the screen (X, Y and Z axis resolution, respectively). I had assumed this would require recompiling the firmware and flashing my printer again, but nope, it's very easy! Thank you for this simple yet amazingly powerful tool to perfect our prints!

One small confusing point for me thought: If you look at the Z label and measure from the Z to the opposite side, you are indeed measuring the effect the Z axis had on the block... But if you look at the X label and measure from X-side to the opposite side, you are not measuring the effect that the X axis had on the block, but rather the effect the Y axis had, right? Same idea with Y. So it seems that when you measure your values for X and Y you need to have the letter facing you, with Z facing up, and then measure the distance between the left and right sides when you look at it that way. So for X axis, you have 'X' facing you, 'Z' on top, and 'Y' is on the right-hand side... then you measure across from the 'Y' side to the opposite side (the left and right sides when looking at this angle) to get the value for 'Observed X axis'. I hope this makes since, it did give me a brief bit of confusion. I don't want to say they're labeled wrong... because it feels right when it's sitting there after printing is complete... but it's just a bit confusing when you go to measure haha.

Glad you found it useful.

If you want to change the way the X and Y labelling works you can always rotate the model to suit. Or why not have a go and create your own calibration cube using freecad (see the link on the model page).

Comments deleted.

Isn't it a bit ironic to post a calibration cube and use a phtoo where infill doesn't touch up with the wall?

Yes, and it's ironic to the next level when you make spelling errors while trying to correct another's ironic test cube pic. Impressive!

I've removed it, as I hate these senseless flamewars. Seems like whenever I try to calm stuff down, people just takes new offense.

I was not disagreeing with your point, IDK why you think that. As for your accusation of Troll, I disagree but I do find laughably ironic that you still didn't get the irony. Have a Snickers and you might get it..... Peace man.

I've removed it, as I hate these senseless flamewars. Seems like whenever I try to calm stuff down, people just takes new offense.

Language ability seems irrelevant considering you are displaying a decent command of the language. English is not my first language either. (I speak French, Latin, English, German, some Spanish, Chinese, Russian and Klingon). I know how to:

A) How to proofread.
B) How to sense irony.

It is painfully clear to me that you are not going to accept my point as valid as it was
so I'm going to officially "dismiss" you as a worthwhile human being and move on. My self esteem levels are not low enough to waste any more of my time with thick headed, unenlightened and ignorant people like you. Have a Snickers - I think this thread shows you might need more nutrition. Peace.

You really just are an ass kg0wx and a huge troll.

I'm Danish.. English is my 4th language.. and as @DarkShadowX5 says, it's two completely different things... so say sorry, move on, and stop using sarcasm and irony online, as you need facial expression to convey it properly.

No, I'm not going to accept your point as being valid, as it's not valid.. it's a stupid dumb argument you are making

I have to agree with dintid you're being a troll. Calibration error and spelling are 2 completely separate issues and you just want to find a middle man to belittle him with. people make mistakes and being a troll and acting like a perfect entity doesn't help or prove a point...
Yes, I get that he's making a mistake while talking about someone else's mistake. still, the 2 cases are irrelevant as they pointed out..

Hello, hello. What's going on? What's all this shouting? We'll have no trouble here.

Thanks for getting this. It is a shame nobody else is listening.

I have flagged kg0wx comment as Trolling.

We have been waiting for someone to comment on the quality of the print in the picture, although despite it's shortcomings we quite like the look of the Z on the top.

Hehe, yea it looks nice, but it's just a bad reference to have - say, if you are a new user and all :)

Well I suppose we should consider changing it. We will try and remember to take another picture.

Thanks. We find it incredibly useful for getting our printing settings right.

the orientation imported into Simplify3D seems off? Am I just wrong about X/Y/Z? I always thought looking down on the print bed I would see like a normal x/y graph and then add z in the direction I am looking from. (as S3D labels the board)


EDIT: just thinking more about it... the side that says X represents the "x factor" so I can see why you would name it like that without "disagreeing" on what I have said before :) (though then there would be no reason to not name all sides) Will print it with Z rotation 270° now :) Thanks for the design!

Yes you can rotate the model so that it fits with your interpretation of axis labelling. The X & Y are labelled such that errors occurring on those sides will be down to movement in those planes, then if you measure the widths of the corresponding faces then this will be used to calibrate your printers steps/mm for that axis. So your image is the correct orientation.

If you changed the wall thickness you would get rid of those lines at the top of your print. I created one of these too for testing I must have printed like 12 20x20x20 bricks.

I think that was the first one we printed out, so you are right, it is not perhaps the best example. Although, we quite like the patterning on the top of this one.

We are moving towards being able to build a house with all of our cubes. The great dice drought is finally over!

Haha nice yeah I printed like a dozen myself was thinking if I had enough I could make a death star. It's cool I wasn't the only one to think of it. Good idea are shared by many.

This is so smart. I cant count the times i have pulled a calibration cube off the print bed before marking the sides x,y and z. Two thumbs up for thinking ahead. Love it!

Thanks very much. We find it invaluable for dialling in our printers for different materials as well as initial 3D printer calibrations.

Comments deleted.

This is NOT the correct way to calculate your steps per mm! You should calculate it from the belts and pulleys and such, not from what you "expect". Thomas has a good video on it. https://www.youtube.com/watch?v=VIHgDiCCY0Y

Hi @nutcase84,

The expected value refers to what one would "expect" the dimensions of the cube to be. In this instance we expect each side to be 20mm.

You are right in that you should set you initial steps per mm based upon your hardware set up. This, as you know is the website that will help you derive these initial values ( http://prusaprinters.org/calculator/ ). So for instance with a Prusa i3 one would usually start off with 80 steps per mm for belt driven axes.

So this initial value would be used to set up your printer. In a perfect world these initial values would mean that your cube would be 20x20x20mm, unfortunately there will be many sources of error that mean that you are unlikely to get this. This is where you need to set about calibrating the printer further. If you use the formula in this models description you should be able to get your printer making objects whose dimensions more closely match those that would be "expected" given the model.

It is a good idea to also use larger objects as small deviations from expected will be harder to measure, due to measurement errors having a larger impact on your observed values.

You could in theory enter any initial value if you wanted and over successive prints, using this method, arrive at a good steps per mm value but, as you rightly point out, it's better to start with a steps per mm that would work given your hardware set-up.

Our intentions was not to deceive or give false information. This is a common method to hone your steps per mm and does work. Why not try it?