Backlash happens in pretty much all mechanical
systems when there is a mechanical linkage
between the measurement and drive point and
the thing you are controlling. The classic case
is a milling machine. You turn a graduated dial
which drives gears which move the table under
the cutting tool. Specifically backlash happens
when you change directions. If you are cranking
the table to the left and then switch to the right
you have to crank it perhaps an 1/8 turn before
the table responds.
The reprap and solidoodle design have this situation
with the Z axis. Actually all the axes have it, but
Z is particularly bad because it is screw driven.
The table is driven up and down by a screw (and possibly
belts and gears). The stepper motor both drives
the motion and measures it. But it is the table
position we care about. And that is decoupled by
all that mechanical crap in between.
When you home the printer, it raises the table to
the print head. The last motion is always moving
the table up. You can't go up any more because
you would jam the print head. And you can't go
down (yet) because you need that tight clearance
for the first layer. Once you finish the first layer,
the printer lowers the table. But now we are moving
it down. Backlash! It doesn't move down as far as
the stepper says it does.
Machinists have known about this for centuries. They
came up with a very effective solution long long ago.
You pick a direction. All measurements are done after
moving in that direction.
Since the printer has no choice but to be moving the
table up after a home, that is the only choice we have
for a measurement direction. We should always move
the table up. Well obviously we have to be able to move
it down. So we should do what machinists do. Go
further than we need in the wrong direction and then
approach the right location from the right direction,
in this case upward.
Let's say we want to drop the table 0.3mm. To solve
the backlash problem, we drop the table 1.3mm and then
raise it 1mm. That eliminates any backlash that is
less than 1mm. Online reports say the backlash in
the solidoodle is less than 0.2mm. So 1mm should be
more than enough.
This should be easy to filter into the gcode, since
that is a text file. I'm not much of a programmer,
but I'm sure I can bang this out in awk.
You can tell you have backlash in your printer if the
first two layers are different from all the others.
Peace comes from within. Do not seek it without. --- Buddha