# Tuning Dimensional Accuracy

• Now that the Kossel is working mechanically, need to tune the printer so it prints an object that is 100mm instead of 102.61mm (Y) and 103.26mm (X).

Somehow I ripped the pin right off the mother board along with some of the trace on the signal line of the IR Probe, need to fix, so autolevel not available.

Using some math from other printers on steps/mm, I take the existing steps/mm and divide by the length of the object, then multiply by 100. Cool.
The problem is, I only have X and Y objects, no Z. Modifying X and Y using M665 commands, I have no data for Z (the third pillar, I guess). Putting in the numbers for X and Y but not Z really screw things up.

Problem 1) When adjusting steps/mm it also impacts the height. I had the height dialed in on the old settings… Redialed it in, only to start crashing the head into the print bed because I did not modify Z or something.

Problem 2) How do I calibrate Z? I took a STL that was a 100mm bar, printed it on the X plain, rotated it 90 degrees and printed it on the Y plain. Am I suspposed to rotate it 120 degrees 3 times to get all three pillars?

I try to follow https://duet3d.com/wiki/Calibrating_a_delta_printer but not much help without a probe.

How do I make an object that prints 102mm and 103mm in X and Y print to 100mm like it should?

• On a delta, you first adjust the steps/mm on all 3 towers to get the correct Z height.

After that, you need to calibrate the printer. If you can't use auto calibration, use the calculator at http://escher3d.com/pages/wizards/wizarddelta.php.

If after calibration the XY dimensions are off, you have three choices:

1. Identify and correct whatever geometrical error is throwing the dimensions off.

2. Adjust the firmware diagonal rod length (L parameter in the M665 command). Increasing it by 1% will reduce the XY size by about 1% after recalibrating, and vice versa.

3. Use the M579 command https://duet3d.com/wiki/G-code#M579:_Scale_Cartesian_axes to adjust the scaling.

• Okay so it's a delta, the number of steps moved on x y or Z towers do not translate directly into effector positions. Pure-z moves are directly related to steps/mm as all three towers move up by the same amount. So a 100mm tall test object really should be 100mm tall +/- first layer squash.

So measure each tower moving 100mm and make sure each tower will move exactly 100mm when commanded to; adjust each of x y and z steps/mm to achieve this, though they should all be the same value as you should have the same motors, pulleys nd belts on all three towers and if your belts are tight (and equally tight) should be the default value I. E. 80 for 20t pulleys+1.8 deg motors, 100 for 16t pulleys+1.8deg motors…. you get the picture.

Now autocalibrate. Initially use the diagonal rod length as measured from centre of rotation to centre of rotation at each end of the rods. Print your test object. If it's too large in x and y (should be almost the same amount on x as y if there a mismatch check belts are equally tensioned) lower your diagonal rod length by a proportional amount and autocalibrate and print again. Should be a lot closer. If not iterate.

• Wow typed up an update here, submit then it said I do not have access to post and lost my message.!!!!!!!!!!!!!!!!!!!!!

• short update

decided to remake IR bed probe mount, printed new part.
upon installing, heat break/throat broke on one of the colors.
bent nozzle opening trying to remove broken heat breat/throat

ordering new parts - diamond hotend, heat breaks

IR probe also decided to die on me, just randomly blinks red now. Getting new one of those, too.

• UPDATE 1

New Diamond head and titanium heat breaks have arrived. LOVE the titanium heatblocks, all one piece and TITANIUM!
New IR probe arrived, but there was nothing wrong with the old one (the connector was backward)
– the new IR probe has a much improved flatter profile, though.

Please walk me through this (again?)...

Let's start from the beginning -

New rods, new effector, new hotend, new heat breaks, etc.

Step 0, I made the IR probe mount, perhaps it is too low. During printing, the IR probe rides about 1mm above the printed object, I'd sure like to have more clearance than that. I've made/tweaked no less than 18 kossel / diamond hotend effectors.
Suggestions, or is it ok?

Step 1, LET'S get rid of the effector tilt so the IR sensor gets an accurate measurement. Step 2 will be calibrating IR probe..
-- I have about a 2mm tilt as the effector leaves the center.

Current settings:
M92 X100 Y100 Z100 E151:151:151:200:200:200:200
M665 R105.15 L217.0 B90 H350.30
M666 X0 Y0 Z0

Ok, Rod length might actually be 218... Not really sure what the B parameter is for (bed printable radius?) I assume it is the mm from center to edge.

Once the tilt is gone, things should go much easier.

The screws that hold the glass down to the heated bed stick up a bit far and will hit the effector, I have modified the bed probing to move the effector out of the way of these screws; this is good, right?

1 color was so much easier.. hehe

Holding here for responses.

Thank you.

• If you can get your IR board up to about 1.5-2mm above the nozzle that will work and be a little less worrying.
Determine the probe offset by descending to just above bed centre, doing a G30. This sets z=0 to the probe's trigger height, now jog the nozzle down, do the paper grip test and see how far down you had to go. Enter that as your probe Z offset in G31. I think it has to be a positive number for a probe that triggers with the nozzle above the bed. You should check that, I havent used one for a while.

Okay if your rods are physically 218, then your m665 should have L218 in it
H is your homed height, so home, then descend manually and read off the height. you can stop 2-4mm short for safety
M666 endstop corrections are initially all 0.
Generate bed.g file from escher3d bed file generator, use it to make a bed.g file
home then autocalibrate
do a couple of iterations unless your deviation is down in the 0.05 or under range. if it is then you are probably there.
you radius, height, and tilt (if using 8 factor) will be set, so will your endstop corrections.
m500 to save if youre happy with it
now print your test object, if Z is out determine if it is due to first layer by printing again double/half height and seeing if the error is doubled or halved, if it is then change steps/mm by the correct proportion. If it remains the same error then its just due to first layer squash or lack of it. You can fix that by babystepping as you print the skirt around an object.
if X and Y are too big, reduce increase your rod length by the corresponding proportion and autocalibrate then print again, the opposite if too small.
X and Y error should be the same if they are different you might have a belts unequally tensioned issue.

If you want to make sure you don't have effector tilt or compensate for it, go to each of the points in the bed.g file determine if the probe triggers at the same height realtive to the nozzle to bed gap as it did at bed centre (where tilt should be 0) and enter that as a H parameter in each G30 line of your bed.g file.
Good luck.

• Hello.

I got the IR board working. It helps. There is still a slight tilt on the effector on the outer rim of the print bed, though.

The nozzle is oozing out the top, working on fixing this before moving forward… stuck here for a few days.

• UPDATE 2:

Fixed nozzle oozing out the top,
Moving forward, got the IR probe working well enough to print small things. I have been printing small things in color. So fun.
However, I try to print something wide and all hell breaks loose. The head ripped the tape on the bed by the Y tower, prints too far off the bed on X tower, and just fine on Z tower,

There is still some tilt on the effector physically that makes the IR probe not perfect.

My mini kossel has a 220 heat bed and a 200 glass bed. Hard to see how far the physical limit is with the big effector in the way, but I am saying the hotend stops 15mm before hitting the edge of the glass, which makes it 170 print radius.

How do I fix tilt so the IR probe is 100% level? How about support for 3 IR probes, one for each tower?

• On a delta, you first adjust the steps/mm on all 3 towers to get the correct Z height.

After that, you need to calibrate the printer. If you can't use auto calibration, use the calculator at http://escher3d.com/pages/wizards/wizarddelta.php.

If after calibration the XY dimensions are off, you have three choices:

1. Identify and correct whatever geometrical error is throwing the dimensions off.

2. Adjust the firmware diagonal rod length (L parameter in the M665 command). Increasing it by 1% will reduce the XY size by about 1% after recalibrating, and vice versa.

3. Use the M579 command https://duet3d.com/wiki/G-code#M579:_Scale_Cartesian_axes to adjust the scaling.

Well option 1 would be my choice, too.
I am going with option 2 for now. The Rod length is 217. 1% of that is 2.17, so I take 217 - 2.17 = 214.83 – that seems like a big change.
Option 3 is a new option.

Must fix the tilt!

• Okay so it's a delta, the number of steps moved on x y or Z towers do not translate directly into effector positions. Pure-z moves are directly related to steps/mm as all three towers move up by the same amount. So a 100mm tall test object really should be 100mm tall +/- first layer squash.

So measure each tower moving 100mm and make sure each tower will move exactly 100mm when commanded to; adjust each of x y and z steps/mm to achieve this, though they should all be the same value as you should have the same motors, pulleys nd belts on all three towers and if your belts are tight (and equally tight) should be the default value I. E. 80 for 20t pulleys+1.8 deg motors, 100 for 16t pulleys+1.8deg motors…. you get the picture.

Now autocalibrate. Initially use the diagonal rod length as measured from centre of rotation to centre of rotation at each end of the rods. Print your test object. If it's too large in x and y (should be almost the same amount on x as y if there a mismatch check belts are equally tensioned) lower your diagonal rod length by a proportional amount and autocalibrate and print again. Should be a lot closer. If not iterate.

Thank you for your replies and support. I have 16t pullies + 1.8 degree motors so the steps/mm us set to 100 for x, y, and z axis's.
I will spend some time confirming they move exactly 100mm after trying a new rod length of 215.82 (1% less than 218).

There is also 128 microstepping.. currently only at 16.

H is your homed height, so home, then descend manually and read off the height. you can stop 2-4mm short for safety
M666 endstop corrections are initially all 0.

So, currently my M665 command says -
M665 R103.35 L217.0 B90 H349.50

After running autocalibration, H is 349.88

I think my B parameter is incorrect. If my printable diameter is 170, then the radius is 85. So B85.
I cannot process R right now… will circle back on this one.

• After calculating R - Delta Radius this is my new M665 -

M665 R88 L214.83 B100 H349.50

B is half the size of the glass, 200mm is glass size, so B is 100.