On Friday I investigated reported forum issues of not being able to rotate a component with the component on the end of the hollow stepper with sufficient accuracy and resolution.
I set up a job to test this on a basic driver with 1/16 stepping capability.
In all, as in the documentation , there is a periodic sequence between full steps.
Most certainly, in 1/16 mode, I’ll go into 1/32 resolution for the discussion :
you might get something like 2/32, 2/32 , 1/32, 1/32, 3/32, 2/32, 2/32, 1/32,1/32, 1.32, 3/32, etc . Sometimes the errors was less than 1/16.
In all cases, the full step is preserved . That’s why microstepping is still accurate over multiple microsteps for a integer number of full steps
1/8 stepping similar- (using 1/16 to demonstrate) 2/16, 2/16, 2/16, 1/16, 1/16, 3/16, 2/16 etc
The different sizes (8,17,23s I had on hand) behaved all differently. Under load with inertia, the 23s where right on 1/16 precisely. On my 6040Z with planet cnc controller- driver, even 1/32 steps were near perfect. So, different behaviour with different loads.
Which is expected- with no load they are a unloaded and hence underdamped system.
The datasheets say +/-5 % of a full step. OK that us 0.05 * 1.8 = 0.09 degrees. Or 1/20 of a full step. And that is about what I am seeing approx. Maybe a little worse.
Another thing I noticed- behaviour is different going forwards or backwards = a 1/32 step forward in 1/16 mode (under stepped) might be 3/32 backwards from the same location- so there is opportunity to iterate to get the right step.
So what is required ?
To get a 20 x 20 LQFP144 down, I want placement better than 1/5 of a pad width (0.35mm) so 70um..
The outer pins are on a 22mm square – 15.55mm radi circle- a circumference of 97.7mm.
So, 70um on that is 97.7/0.070 = 1395 steps around the circle or 360/same = 0.257 degrees.
0.257 degrees is 1/7 step. So I think we are OK. People have reported bad steps in 1/8. So this required more investigation.
In OpenPNP- I wonder if there is enough certainly for the placement estimation ?
In signal processing world, I would take multiple snapshots, and then do multiple estimations and as a starting point, just average the estimations (yes, sure you can get alot more rigorous about the sort of estimation you generate).
I think the direct stepper control should be sufficient. There are a few mitigation strategies for interpolation/ iterative solutions I think. especially if the up vision is involved. You’d need a 2000 step encoder on the stepper shaft to otherwise see what was going on- and that could be printed fairly easily for a largish circle.
The alternative is a reduction drive and a belt , a 1:3 would do it nicely.
If we said the GT2 belt uncertainly was 50 micros, then a simplistic way so look at how big a sprocket we need is if we need say half of our 0.257degrees with is 0.128 degrees, this is 2801 steps of 0.05mm (belt error) an a circumference of 140mm (70 teeth at 2mm) .
That would be likely be plenty. Less would likely suffice.
With a 12 tooth drive, say 40 teeth takeup, 1/8 steps would be more than sufficient.
Is this super resolution required for all components- no- I don’t think do, anything up to about 10×10 should be fine even with +/- 1/8th precision steps.