Hi,
it sounds like you have experimented enough to have established that the fault IS NOT Mach, nor the ESS, nor probably
the BoB.
I suspect that either (or both) the driver or motor are faulty.
What model driver and motor, and in particular what are the motor specs....including the winding inductance?.
My suggestion is to set up Mach/ESS/BoB to systematically test the motor/driver combination. You have been conducting
various tests in a scatter gun approach and it has not produced any meaningful results.
First, set the driver current to the rated stepper current....then leave it at that setting. Altering the current settings is
just confusing the issue. At best reducing the current reduces the torque and therefore INCREASES the likelyhood of
missing steps.
Second set the microstepping to 8 microsteps per full step, ie 1600 steps/rev and leave it there. Altering the microstepping
is confusing you.....it is just not relevant to the issue you want to solve.
Now you need to devise a Gcode program designed to test the motion of an axis. I would suggest something like:
g1 x100 f200
x0
x100
x0
x100
x0
x100
x0
x100
x0
Note I have assumed millimeter units.
Note also that I have used g1 so that the rate of motion is determined by the feed rate f.
This allows you to have several programs with indentical motion, that is back and forth 100mm, at different
speeds, from slow, say 200mm/min up to the max of your machine say 5000mm/min.
Tune the X axis motor for some very high and probably unobtainable max speed, like 20,000mm/min but set the
acceleration low, say 100mm/s2.
Now work through your test programs, starting at the lowest speed, that is f=200. If at the end of the test the X axis
returns to the original start point, that is, it has not lost steps then you can conclude that with the motor tuned
to low acceleration, 100mm/s2 the motor did not miss steps at f=200mm/min.
Now run the same program but with f=400mm/min say. Should that test conclude successfully, run the program again but
with f=600 etc.
Eventually you will find a feed rate that means that the stepper starts missing steps. You have just exceeded the maximum reliable
speed of that stepper. It may be slower than you want but that's too damn bad....this is what you have got. Carry on with the other
tests and once they are complete you may then ask the question 'are the test results I have obtained a genuine and correct
reflection of the hardware limitations or is there a fault....maybe power supply/signaling/extraneous electrical noise?
You should now have systematically found the maximum speed of your stepper, lets say it is 3000mm/min. If you reduce the feed rate
to somewhat less than 3000mm/min you could expect the stepper to NOT miss steps and therefore always correctly return to the
starting point. Write your test program with a feed rate of about half of your established maximum, say 1500mm/min.
Now you run your test program again, but always at the same feed rate, namely 1500mm/min. Between each successive run of
your program increase the tuning of the motors max acceleration by 50mm/s2. Eventually you will find a limit
such that if Mach attempts to accelerate that axis beyond that limit, say 350mm/s2 then the axis will stall.
You have established the maximum acceleration the driver/stepper/power supply can sustain. Your operation of this stepper
will require that you apply tuning LESS than this maximum.
Please conduct the tests and report back.
There are a number of choices to be made about maximum velocity and maximum acceleration that can be made and applied to
you motor tuning, it is not for instance always desirable to go for max reliable speed, acceleration is often much more important to
accurate toolpath following and should be favoured over max speed.
Craig