This article describes how I measured the backlash on my CNC machine and then applied software compensation.

To measure backlash I used a Mitutoyo dial indicator with 0.0001″ markings and a full scale of 0.01″. The dial indicator was attached to an adjustable stand so the plunger could be placed against various surfaces on the machine. The stand had a heavy base to ensure the dial indicator and stand didn’t move when pressure was applied to the plunger.

The picture below shows the set up ready to measure the backlash of the X axis.

Measuring backlash on X

Here is the method I used:

  1. Position the plunger on the dial indicator a short distance from a surface that moves in the direction of the axis being measured. The plunger should be perpendicular to the surface.
  2. Jog 0.001″ along the axis being measured into the plunger, until the needle moves at least 0.001″.
  3. Note the value shown on the dial indicator. We’ll call this ‘S’ for start.
  4. Jog the axis 0.001″ seven times into the plunger. Each jog will cause the needle to move. Be careful not to cause the needle to move to the maximum position.
  5. Jog the axis 0.001″ seven times away from the plunger. The first one, two or three jogs may not cause the needle to move. This is the slack being taken up and hence the backlash.
  6. Note the value shown on the dial indicator. We’ll call this ‘F’ for finish.
  7. Calculate the difference between the finish value and the start value (F -S). This is the amount of backlash.
  8. Jog the axis away from the plunger
  9. Repeat two more times then work out the average value.

The next picture shows the position of the dial indicator used to measure the Y axis.

Measuring backlash on y

The last picture shows the position of the dial indicator used to measure the Z axis.

Measuring backlash on z

For my machine I measured the backlash as (averages):

  • X = 0.00538″
  • Y = 0.00250″
  • Z = 0.00030″

EMC2 provides software compensation for backlash. This isn’t as good as using anti-backlash nuts, but I was curious to see how well it would perform. One thing to keep in mind is that over time wear will cause the backlash to change. To configure EMC2 simply add the backlash values to the axis sections of the INI file. Nice and simple. For example:

[AXIS_0]
...
BACKLASH=0.00538

I then remeasured the backlash and obtained the following values (averages):

  • X = 0.00073″
  • Y = 0.00010″
  • Z = 0.00013″

The Y axis saw the greatest improvement (96%) followed by the X axis (86%) and the Z axis (56%). I think this is pretty good.