This instructable converts the cheap Genius Maxfighter F-16U joystick which uses potentiometers to a precise joystick using LED/LDR combination. I guess it is fit for any joystick that uses potentiometers.
check out this video on youtube
Step 1: Understanding the Joystick
This is a three axis joystick, here we manipulate only 2 of them (horizontal and vertical). See the drawings for better understanding.
Step 2: The Modification
Potentiometer is a variable resistor that is going to be replaced by a Light detecting resistor (LDR) and a LED light.
The value of the LDR resistance is controlled by the distance it has from the moving LED fixed to the axis of motion.
LEDs can be destroyed if connected directly to 5V USB power, do they require a series resistor to limit their voltage to a safe limit.
Test circuit is just to show you the effectiveness of the LDR, it is not a part of the job.
Step 3: Better Photos and Tips
1. General Photo
2. Make sure that the wiring for the LEDs is firmly fixed. Here is inserted the wires along with the socket that powers the joystick board, see polarity in the photo and test it with a Multi meter is you have one.
3 & 4. The LEDs fixed to the axis, note the shape of the new axis which fits the half circular hole. Note also that the sides of the LED are black painted because the LED shines from all sides not just the tip (that we need)
5. The LDR's fixed to the calibration carriages.
6. Black tape to ensure no light from the outside could affect the device.
While calibrating the joystick with PC, you can move the calibration carriages such that the raw data (numerical reading of the position) could read 127 (half the full value) while centered.