Thing-O-Matic: Z Axis Resolution / Repeatability / Backlash

The three Skirt extrusions around those polyhole test plates had thicknesses that looked like this (in the usual units of 0.01 mm):

28 33
24 38
29 34

Average: 0.31 mm

34 35
30 41
34 37

Average: 0.35 mm

36 37
32 40
35 38

Average: 0.36 mm

In round numbers the extrusions all fall within ±0.05 mm of their average (for a loose definition of average, of course) and the test pieces built just fine. The layer thickness is slightly over the desired 0.33 mm, but sheesh the Z-min switch gets it close enough.

[Update: following tweaked to match reality. The motor steps are 0.005 mm, but the conclusion remains.]

However, the Z axis motor drives a four-start leadscrew that moves the Z stage and the thingomatic.xml file specifies 200 step/mm = 0.005 mm/step. As a result, the Z axis positions occur in discrete steps (no surprise there) and the first extrusion happened ten-ish motor steps higher than the other two: 0.31 mm vs 0.35-ish.

Other folks use layer thicknesses below 0.30 mm and I think they’ll start to see the effect of Z axis resolution and consistency on build quality. Putting the height adjustment on the build platform means you can set the initial nozzle height above the platform very precisely (no steps on the screw-and-spring adjusters), but the height will continue to vary due to all the usual effects. The Z-min switch can adjust the Z stage height only in integral motor steps that may not be precise enough.

That means the actual extrusion thickness will vary by ±0.005 mm depending on where the Z-min switch trips with respect to the motor steps. Because the nozzle-to-plate distance varies smoothly with temperature / time / sag / whatever, you’ll see steps of that size no matter how much you twiddle the initial platform height.

For example, if you adjust the build plate height (using the platform screws) to set the nozzle at 0.00 mm for a commanded Z=0.000, the next possible Z stage positions are 0.005 mm above and below that level: the Z-min switch cannot adjust the platform with better resolution. The possible ±0.005 mm variation represents ±2% of a 0.25 mm layer thickness (it’s 1.5% of the 0.33 mm I use).

Using a 1/16 microstepping driver (and a better Z-axis motor!) would cut the nominal resolution to 0.0025 mm, but I think there’s no way to improve the actual resolution and precision given the present mechanical design. In short: you can make the steps smaller, but that doesn’t mean the Z stage will actually pay attention.

There’s also backlash: the Z-min switch sets the height as the stage moves down and the nozzle moves down to the first layer, but the second layer thickness depends on the stage moving up by a precise distance. I now think some of the surface finish problem with the three-layer polyholes test pieces came from the second layer being a bit thinner than it should be: the Z stage didn’t really move up by the full 0.33 mm due to backlash and there’s more plastic than room to put it.

A backlash compensation setting lies buried somewhere in RepG/SF, but I don’t have any measurements to justify anything other than zero. I think the entire Z stage assembly lacks the rigidity for motion on this scale, anyway, and the XY stages flop around more than that, too.

Building a machine tool with positioning accuracy / repeatability / stability below 0.1 mm is an exceedingly non-trivial project; getting that much resolution is no big deal. The Thing-O-Matic works just fine, but smaller nozzles and thinner layers require more attention to the mechanical design. Achieving tighter tolerances with plywood and acrylic probably isn’t feasible, but anything else will drive the cost up far too much.

It’s an interesting set of tradeoffs…

FWIW, I picked 0.33 mm to get a (nearly) integral number of layers per millimeter of object height; I tend to build things using hard-metric sizes and that seemed reasonable. It’s now obvious that the actual heights will be in multiples of 0.005 mm, which doesn’t really matter at all in absolute terms. I should probably use 0.30 mm to make the answers come out easy.