Incomplete joystick range for Y axis

7 posts / 0 new
Last post
Offline
Last seen: 1 year 4 months ago
Joined: Nov 8 2018 - 15:49
Posts: 39
Incomplete joystick range for Y axis

I just picked up a new vintage (1983-ish) apple IIe branded joystick.  The joystick seems to work well, but I'm only getting partial range for the Y axis.

The X axis is good-- I can adjust the center to a value of 127, and pushing the joystick full LEFT goes to 0, and full RIGHT goes to 255.

The Y axis can also be adjusted to center at 127, but pushing full UP goes to about 34 and full DOWN goes to about 220.  So I'm not getting the full range for the Y axis.  I'm happy to disasemble the joystick to see if there is a resistor or other component that is out-of-spec or something, and then replace it.

Is this something that can be fixed?  Or are these values determined by the potentiometer itself that is an integral part of the Y axis, and therefore not easily serviceable?  Or maybe it just isn't even worth worrying about?

Offline
Last seen: 8 hours 42 min ago
Joined: Jun 6 2020 - 10:50
Posts: 414
I actually went through a

I actually went through a similar issue with my IIe and a couple of joysticks earlier this year. Except mine was the X axis, and was affecting at least one game. In the end, I wound up bumping the capacitor value up a touch on the IIe motherboard. But you can also add a smaller cap inside the joystick as well. The thread below may be helpful.  

 

https://www.applefritter.com/content/iie-joystick-issue

Offline
Last seen: 5 hours 14 min ago
Joined: Jul 5 2018 - 09:44
Posts: 2573
nick3092 wrote:I actually
nick3092 wrote:

I actually went through a similar issue with my IIe and a couple of joysticks earlier this year. Except mine was the X axis, and was affecting at least one game. In the end, I wound up bumping the capacitor value up a touch on the IIe motherboard. But you can also add a smaller cap inside the joystick as well. The thread below may be helpful.  

 

 I would modify the joystick if necessary rather than the motherboard unless every joystick or paddle exhibits the same range problem.

 

I'd also check the resistance of the pots in the joystick with a meter to see what it is at zero and max.  If it isn't a 150K pot then there is usually a capacitor to adjust it as you know.  That's the one to change out for a different value.  There are calculators and formulas online how to pick the right value for that capacitor.  The one I usually use is on Atari Age, but I bet you can find it somewhere here on Apple Fritter also.

 

Offline
Last seen: 1 year 4 months ago
Joined: Nov 8 2018 - 15:49
Posts: 39
I disassembled the joystick

I disassembled the joystick to take some measurements of the components inside.  There's not much inside in the way of electronic components.  The X & Y axis is just a simple potentiometer for each, and nothing else, not even a resistor or capacitor in the circuit.  So I measured the value of the two pots.  The X axis pot measured at 750k ohm (end-to-end) and the Y axis measured at 600k ohm.  However, the full range of the pot is not accessable (for either axis) via the joystick handle.  The internal mechanical stops of the joystick only allow access to maybe 1/3 of the full turning range of each pot.

 

So I guess that is the problem: the accessable resistance range of the X axis is (roughly) 1/3 of 750k ohm = 250k ohm, and the accessable resistance range of the Y axis is (roughly) 1/3 of 600k ohm = 200k ohm.  I assume this variation is enough to prevent the Y axis from achieving the full digital range of 0 - 255.

 

But can I purchase a 750k ohm pot that will mechanically fit?  Here's a photo of it.  Does anyone know what is a compatible part number on Mouser or Digikey?

 

Offline
Last seen: 2 hours 52 min ago
Joined: Apr 26 2016 - 08:36
Posts: 681
Put a 250K resistor in

Put a 250K resistor in parallel with the pot.

That will bring the resistance down to 187.5K, which is a lot closer to the expected 150K the computer is expecting.

So you should be able to achieve lower resistance one side of the pot's sweep and nearly the 150K on the other side of the pot's sweep.

 

Adding corrector resistors in parallel was a common practice back in the day.

 

 

 

Offline
Last seen: 1 year 4 months ago
Joined: Nov 8 2018 - 15:49
Posts: 39
baldrick wrote:Put a 250K
baldrick wrote:

Put a 250K resistor in parallel with the pot.

That will bring the resistance down to 187.5K, which is a lot closer to the expected 150K the computer is expecting.

So you should be able to achieve lower resistance one side of the pot's sweep and nearly the 150K on the other side of the pot's sweep.

 

Adding corrector resistors in parallel was a common practice b

 

Ok the axis with the pot that measures 750k ohm (end-to-end) is the axis that works correctly.  And the pot that measures 600k ohm is the one that doesn't have full range.  So my estimate of the usable-travel for the pot must be off.  If 150k ohm is the target range for correct operation, then it must be that the usable rotational range of the pot is only 1/5 of the full rotational travel.

 

Because of this, i need to make the 600k ohm pot look like a 750k ohm pot, which means I need to increase the resistance of 600k ohm pot. Obviously sticking a 150k ohm resistor in series with the pot isn't going to really do what I want, which is why I figured I would need to replace the pot.

 

However, I looked at the other thread that was referenced above, it it seems like the solution to increasing the apparent resistance of a pot is to add a trimmer capacitor.  This of course won't increase the resistance per se, but I guess it must trick some kind of RC timer circuit (on the Apple II mainboard) into providing the correct digitization of the resistance.

 

Does that sound correct?

 

 

Offline
Last seen: 2 hours 52 min ago
Joined: Apr 26 2016 - 08:36
Posts: 681
You can experiment with a few

You can experiment with a few low value capacitors in parallel with the pot.

You are correct that the joystick circuit is not resistive, but modifies timing on a 555 timer on the motherboard based on a R-C network, the capacitor on that network is on the motherboard.

The motherboard then countes pulses in the digital realm and thats how it arrives at the 0-255 decumal value in BASIC when you use the command PRINT PDL(0) and PRINT PDL(1)

 

Log in or register to post comments