Losing steps on closed loop stepper motors
I have build a 3-axis cnc using IHSS60-Closed-Loop stepper motors with on board drivers.
I did some first milling and realized that I am loosing steps (Position of the tool after the milling is off by up to 0.5 mm from the position before the milling.
It cannot come from backlash because I measured that and it is really low (so the ballscrews and the mounting seems ok)
Therefore I guess that the machine is somehow loosing steps.
However I do not understand how a closed loop motor can loose steps. I've tried to change the settings (increase step-time, reduce micro stepping to a longer step-time) but it does not change. One possibility I thought of is that the cables (which are not shielded) may produce some fake steps from noise maybe?
Or has anybody some other idea what could be the problem?
Thanks in advance for any hint.
does the Driver firer its Error
if not it is Mechanical
but you can reduce FOR Testing
the Speed to 50%
the ACC to 75% of its setting
the 60Volt low level Closed are not that fast responding so increse the Stepscale and speed also direction by 500ns
then check again
did you set the SCALE realy as it is
and also using the stepper parameters 400/600/1600 microsteppings not the 1000/2000/5000 as of encoder space
As marginal timing is a common cause of missed steps.
I would also verify that you have the step polarity correct
because incorrect step polarity can cause a violation of the
direction hold time.
no, there are no errors indicated on the driver.
I have also reduced the speed and acceleration for testing and it seems a bit better, but there still is an error.
And an error from acceleration should (like classical step skipping) should not be possible for closed loop motors?
The scale of the axes (microstepping , leadscrew pitch and so on is right since the error only accumulates over time, but a single distance is the length it is supposed to be. What do you mean by "and also using the stepper parameters 400/600/1600 microsteppings not the 1000/2000/5000 as of encoder space"
first i had following settings:
I've already changed that to
but that did not make any differnence
Is everything mechanically tight ?
Is it a linear error, ie does it change with distance tested or is it a constant error of Xmm ?
What type of coupling between the lead screw and motor are you using ?
What type of bearings are you using for the lead screw ? Does the fixed end use angular contact bearings or regular bearings ? Is the fixed bearing tight in it’s housing ?
What procedure did you use to check for backlash ?
Are your lead screws clean with no crap on them ?
What kind of lead screw and nut are you using ?
Is the error the same when you start at different positions along the length of travel ?
How could that be a result of inverted step pulses?
@BeagleBrainz: it seems to be with all axis, however a bit more on the longer one.
No its not a linear error. If you move one axes and measure the distance, then the measured distance is totally fine within some few microns.
The error only occurs when milling for lets say half an hour and then measuring the position against the start position.
The coupling between the motors and the lead screw is done with those couplings that have red rubber in between.
The bearings at the end of the leadscrew are the bearing blocks that come with the leadscrew. I have tested pushing as strong as I can against the bearings and also moving the axis in between, that does not seem to have any effect on them.
The "procedure" I used for testing is. Measure the position of the tool in one axes. Then mill something. Measure it again. This results in an difference of up to 0.5 mm after half an hour of milling. Since 0.5mm is really a lot i cannot imagine how this could be from the leadscrew backlash.
The error is kind of random therefor I habe not tested from different start points.
@PCW: no I have not tried inverting the pulse, however the motors seem to move totally normal ig the slight drift over time.
How could that be a result of inverted step pulses?
Because if the step pulse is of the wrong polarity you can violate both step length and direction hold timing parameters
violating either of these parameters can cause difficult to diagnose step loss, for example if you violate the direction
hold timing you will get random step gain/loss at reversals where you cannot (by ear) determine that anything is wrong
That said, as long as you have direction hold times > (the drives hold time requirements + step length),
and step space > the drives minimum step length, inverted step pulses should not cause an issue.
An easy way bisect the issue into axis mechanics vs step motor/electrical is to mark the step motor shaft and motor frame
at some particular location, run your program, move back to the reference position and see if the marks still align
In the linuxcnc documentation it is mentioned that over 100.000ns the PC is not good for running linux-cnc, however when I enter 90µs to the Max Jitter field in the GUI it is automatically reduced to 50µs.
So this seems a good candidate for me to cause the problem or what does linux-cnc do if it cannot reach the realtime requirements. Does ist "just" get slower or does is skip steps??
That is valid only if you are using parallel port, for Mesa boards it can be worse and still work properly.
goaran wrote: In the linuxcnc documentation it is mentioned that over 100.000ns the PC is not good for running linux-cnc, however when I enter 90µs to the Max Jitter field in the GUI it is automatically reduced to 50µs.
Worst case latency errors will cause lost steps.
Do you get a latency warning when running Linuxcnc, on the right lover corner with a red x ?
And stepconf usually sets the base period to 100.000 for any entry above 35.000.