I have done some initial testing of positional repeatability that may be of interest to those of you working on CNC type applications. Consider these numbers to be the worst case scenario as I am using the cheapest ball screw I could find ($27 USD) and the worlds least rigid setup.
Yes, the ball screw is attached to a MDF board with wood screws and the ball nut is attached to the linear slides with double sided foam tape… but its a start. In the video below I am commanding the controller over usb to move 50,000 counts away and then back again with the speed limited to 4000 RPM.
The position at each return in the video are (microns):
0 25 18 23 4 31 30 29 0 15 34 25 33
The positional repeatability looks to be about ± 18 micron with a 3 to 1 gear reduction using a timing belt. The claimed repeatability of the digital indicator used is 3 microns. Again, consider this the worst case scenario with things only able to get better from here.
The following firmware parameters were used:
.pos_gain = 95.0f .vel_gain = 10.0f / 10000.0f .vel_integrator_gain = 0.0f .current_lim = 75.0f
Motor used is an SK3 5055 280KV, the encoder provides 2400 counts per rotation and the system is running off a 24V ~15A switch mode PSU.