Object Size Calibration in a Delta Printer

I hadn’t realized it, but the things I’ve been printing out for the past couple of month on my delta printer have been a tad small. Until recently, I haven’t really had a need to match up my printed objects with non-printed objects, so I never really noticed.  But this past weekend, I started building a Smartrap for one of my buddies, and I noticed that the screw holes in one of the pieces didn’t quite match up with the screw holes in the Nema 17 motor:

Nema 17 hole to hole distance: 30.48 mm (1.2 in)


Printed Smartrap base plate hole to hole distance: 29.68mm (1.1685 in)


It may not seem like much, but 0.8mm in the world of 3d printing is not negligible.  That means that this print is only 97.38% of the size that it should be.  In most applications this is fine, but the motor mount demands a near-100% fit for this project.

So I scoured some sources online and ended up landing on a well-trusted source in the delta 3d-printer community – Minow’s blog.  It’s a great blog – there is lots of useful information there on things like calibration, which has been invaluable to many people, including myself.  For this particular problem, I need to increase the size of my prints. In order to do so, Minow suggests that the DELTA_DIAGONAL_ROD value needs to be increased. The blog post says to print a cube that is 100 mm in length and width, measure the results, and then apply the following adjustment to DELTA_DIAGONAL_ROD.

new DELTA_DIAGONAL_ROD = 100 / measured_length * original DELTA_DIAGONAL_ROD

I then imported the STL for the base plate into Tinkercad and got a measurement on it’s length:


So Tinkercad was telling me that the length of my base plate should be 100.62mm.  I measured mine, and found that it was 99.31mm (3.91 in), so I’m off by over 1%.


I plugged my numbers into Minow’s formula, and ended up adjusting my DELTA_DIAGONAL_ROD from 214.0 to 216.5, The result was that the piece actually got smaller, not bigger.  Here’s my second print, with the measured length of 99.03mm (3.899 in):


This is odd for two reasons.  First, I increased my DELTA_DIAGONAL_ROD by 2.5, so according to the formula, the print should have gotten bigger.  Second, the difference in size was only .1mm.  Since I increased the variable by over 1%, I expected the size difference to be at least 1mm.

So I decided to go ahead and try this in the opposite direction.  I made an adjustment and used the following formula instead:

new DELTA_DIAGONAL_ROD = measured_length / target_length * original DELTA_DIAGONAL_ROD

All I did here was reverse the measured_length to target_length ratio, so we’re decreasing DELTA_DIAGONAL_ROD in order to increase the size of the prints.  I plugged in my numbers:

99.31 / 100.62mm * 214 = 211.21

By the way, I’m running a modified version of Rich Cattell’s marlin, which allows you to adjust variables like DELTA_DIAGONAL_ROD using the M666 D new_value command. This is very useful for this type of debugging, because you can change this value without having to update and recompile the marlin firmware. You just need to make sure that you run G28 after setting it, in order for the value to take effect.

I decreased the DELTA_DIAGONAL_ROD to 211.21 and re-printed my object.  Here is the result:


The new base plate came out quite a bit bigger, at 101.88mm (4.011 in).  This is a tad bit bigger than what I was looking for.  However, when I attempted to mount the new base plate onto the Nema 17 motor, it actually fit fine.  So it looks like I have some more calibrating to do, but for now I’m going to stick with this and get this Smartrap done.

The lesson – in order to increase the size of your prints, decrease the DELTA_DIAGONAL_ROD variable length.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s