Tutorial: Calibrating axis belt stretch on SO3 with a caliper

Seems like a fair number of people have trouble with belt calibration, so here’s another shot at
a tutorial using a different method.

You need a digital caliper (at least 6"), some clamps, and a block. You don’t need to cut any material like you would with a square-cut type test.

Here’s a handy spreadsheet for doing the calculations: GRBL-Calibration.zip (8.2 KB)

Getting Set Up:
(1) PUT A FRESH BATTERY IN YOUR CALIPER! If you paid less than $100 for your caliper,
it almost surely loses calibration as the battery gets low, and doesn’t have a low
battery warning. They’ll work for this process, but use a fresh battery! The 12" caliper
you see here was about $50. You can use 6" caliper for this process, use what you have.
The longer the caliper the more accurate you can be.
(2) GRBL is natively mm, you will be interacting with it directly, so do everything in mm to save some
effort. Pay attention to how your caliper is set up, and make sure it’s in mm.
(3) Put a steel pin in the collet of the router - 1/8 or 1/4 (depending on your collet).
Doesn’t really matter what, but must be stiff. Not wood. An end mill won’t work because
of the flutes. If you have a broken end mill, snap off the whole flute section, and you
can use the stub shaft that is left. A drill bit is ok, but use the solid part, not the fluted part.
(4) Set up the caliper - see the picture. You’re going to use the caliper as a
makeshift DRO one axis at a time. The blocks are to keep the fixed jaw of the
caliper from moving when we press the pin against the lower jaw and move it.
I used some cheap V-blocks I got off e-bay that were sitting around.
A block of wood, a pretty much anything will work, you want it lifted a bit off
the work surface. The caliper should be close to straight along the axis
of the machine, but it doesn’t need to be absolutely perfect.

For each Axis:

(1) Position the router such that the pin is close to the start of travel for
the caliper, like in the picture.
(2) Press the movable jaw of the caliper against the pin
(3) Determine how much space you have to work with. Move the movable jaw
on the caliper out as far as it will go, then back an inch or so. With a 12 in
caliper this gives about 180mm in my setup. A 6 inch caliper in my setup (With
only one block) gave me about 90mm usable. Pick a number that’s easy to
work with. I used 125mm (which is about 5 inches) for my 12 inch caliper. Longer
is better.
(4) Zero the x, y, z axis in the UI. (this is important!)
(5) Set the caliper to mm.
(6) Zero the caliper.
(7) In the MDI console, for setting the X axis, type “$100=40” and click send, (For Y, $101=40)
(8) MDI: G0X-125F100 -> This will move X left 125 mm

(9) Read the caliper: Mine reads 124.50mm
(10) Calculate the new $100 value:
(CurrentSetting * DistanceMachineShouldHaveMoved) / (DistanceMachineDidMove) = New Setting
Your new $100 value = 40.077 . (The spreadsheet will do this for you)
(11) In the MDI console, enter “$100=40.077” and click send (obviously, use the value you calculated)

At this point, we should be pretty much set. Now, check and see if it’s close enough.

(12) Home ($H) to get the router/pin out of the apparatus.
(13) Soft Reset ($G) to get GRBL sane. I’ve seen it get into weird states after
adjusting these axis calibration values. Sometimes it does…sometimes it doesn’t.
(14) Home again ($H) to clear any locks, and put the machine in a known location.
(15) Return to zero (which should be pretty close to where it was before, but will
not be the exact same spot)
(16) Move the movable jaw on the caliper firmly against the pin and zero the caliper.
(17) In MDI enter: “G0X-125F100” -> This will move X left 125mm
(18) Read the caliper 125.04mm -> Good
In English units, that’s about .0015" off of what we asked for over about 5",
which is fine for me.

Now, reorient the apparatus to do the Y direction, here’s a picture…

And with a 6" caliper instead of the 12":

The tools I used- The 12 inch caliper, a 6 inch caliper, and a 1/4" “calibration blank” from Precise Bits. I used the 12 inch caliper because I had it, a 6 inch caliper is just fine.

So, you may ask, what if this doesn’t get you close enough to the resolution you want?
You can try this…
Let a >little< tension off the belt, or add a >little< tension, and try again.
Do this by releasing the belt, being VERY careful to note how the two sides engage each
other in the lock buckle, and release the belt by one tooth (or tighten by a tooth), and
put it all back together. This in theory will give you a touch more turns per mm, which might get
the rounding on the calibration to work out a little better in your favor. GRBL only stores the
calibration value to the thousandths digit (.001") and that might be up to .0005 too big, or too small.
The idea here is to get an actual value that falls closer to the rounded value (Example: The value
you enter as a setting is to 40.120, when the real calculated value was 40.1204, or 40.1196, for
example both would round to 40.120) The problem is that if you release too much tension there
will start to be larger precision issues. This is also a little more difficult with Y vs. X because of
the two belts needing to be pretty close in tension. Might work for you, might not, but it’s a thing
to try.


I like this approach. How did you handle the Z-axis? Did you have some kind of hook, or angle bracket?

Put the moving jaw on top of the router clamp, the fixed clamped to a block below (you lose some range in the caliper, but not much).
edit: Here’s a picture:


Makes sense, thanks.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.