I’ve done some experimenting, and it’s apparent that if I set the position of the servo programatically I get extremely good accuracy and repeat-ability.
If I use the joystick to set the position then I get very poor accuracy, and poor repeat-ability. Initially I thought this might be a deficiency in my programming. But after connecting the joystick to a multi-meter I discovered that potentiometers in the joystick seem to be low quality, the resistance is non-linear (despite being a linear pot) and the value it returns is inconsistent (example - the resistance in the mid point might be (say) 500 ohms, I then waggle the joystick and return it to the mid-point and it then gives a value of 600 ohms, I waggle it again and return it back to the center point and this times it says the resistance is 400 ohms).
If I do the same with a random set of cheap pots I discover this performance is quite typical.
The servo itself also includes a tiny little pot. to provide internal feedback, however, this one must be really accurate because the servo position can be set very accurately.
My question is this… how come a cheap and crappy servo can have such a good quality pot in it when a more expensive joystick can’t, and where can I get a similar pot?