Don,
Just so you know, i am are trying to help and understand frustration. So bear with me on information requests.
As i said before, it could be any part of the system or combination of the components. Sometimes easy to fiind
and sometimes just elusive as a fox. Little things can be additive and as you go deaper into the each and every
item it can even become un-nerving.
What kind / accuracy grade of ball screws are you using?
Are the results the same along the axis? (say try three different points along the screw travel, if 10 inches of screw travel,
then say at the 2-3" / 5-6" / 8-9")
Can you check or verify the steps / unit over a longer distance of travel? ( say 10", 5" movements )
But before you aggrevate yourself, or we drive you crazy, try the following as it is easy to do.
The only way I know of isolating / checking the steps sent to a stepper without electronic gismos would be to
to put a index mark ( fine line) on the motor pulley ( can increase the size via paper circle), send a G0 move for say 1 rev of motor, set the pointer on the index mark,
do the same move,when it completes the move the indexed point should be right a pointer. Over and over again. if you do the same move for 15 or 50 times does it come off the mark? The system has been isolated down to software + sending devices+motor. Thus it eliminates the rest of mechanical items in checkout. You can work your way down the mechanical train and look for changes in movement. You can also choose to not microstep.
Poor mans encoder readout.
RICH