I know most games don't fully use the analog nature of the Apple joystick. But at least one game does (Conan - you can either walk or run) and its not working right on my IIe with two different joysticks. Anytime I try to run right by pushing the joystick all the way, he never goes faster than walk speed. Which actually makes the first level impossible, as you have to jump a gap with a running start. I have 2 different Apple brand joysticks, and neither work right with the IIe and Conan. They do however work fine with Conan and my IIc and IIgs.
I don't know exactly how the Apple reads the joysticks, but I do understand it at a high level. It uses a timer chip to check how long it takes to charge a capacitor for each PDL input. It looks like on each PDL line there is a 100 ohm resistor in series and a bypass capacitor of .022 uF (assuming this is the one that gets timed). I know the Apple joysticks supposedly use a 150k pot on each axis. Which it seems Apple wasn't too strict on the 150k value, as you'll see below where i list the resistance end to end for each pot.
To test each joystick, I measured the pots end to end, and made sure when the joystick was fully moved to the far end, that the wiper read the max resistance. Then I hooked each one up to my 3 Apples and did a basic loop displaying the PDL 0 and 1 values. Every time I plugged in a new joystick, I adjusted to 127 +/- maybe 1-4 or so (I don't think that minor of a variance should matter too much). I then checked the min/max values of each.
|X 114k ohm||Y 114k ohm|
|X 118k ohm||Y 136k ohm|
The IIc and IIgs seem to inturpret the X axis on both joysticks very well. Joystick 1 seems to also have a questionable Y axis across all 3 computers. But its hard to say what the real world impact is. I don't know of a game off hand to test the Y axis with like I can with Conan for the X axis. I'm open to suggestions if anyone knows a real world test game to run on the Y axis.
These tables both would seem to imply there is something wrong in the IIe's handiling of PDL 0/X axis. But, if I plug in my Apple hand controller paddles, the IIe reads 0-255 on both. So at least in that case, the IIe seems fine. I did not open up my padles though to check the pot resistance. So maybe they are closer to 150k ohm end to end than the Apple joystick pots. I do find it interesting that even if it was meant to be 150k ohms, the IIc and IIgs have no problem generating a 255 reading with pots that are around 115-120k.
So here is my dilemma. Based on the joystick alone data, it would imply the IIe has an issue on the PDL 0 line. But the hand controller contradicts that, as it reads fine. If I throw the hand controller piece of data out, then either I'm looking at the 558 going bad on PDL 0 or maybe R23 or C37 going out of spec on the IIe board. I can confirm R23 is reading a solid 100 ohms (in circuit), which is dead on based on the schematic. I have a cheap little multi auto component tester (resistors/capacitors/inductors/transistors/diodes) that I was able to clip the leads on to the legs of C37. But I think it's getting confused reading it in circuit, as it identified it as a diode. But it did list the capacitance of the diode at 19.94 nF (.01994 uF). Which seems reasonable. I checked C40 on PDL1, which seems OK. It also identified it as a diode, but with a similar 19.xx nF capacitance. Which would imply maybe it is the NE558 giving me trouble. I guess I could pull the board, desolder C37 and try reading it out of circuit to confirm.
Which if I'm going through that trouble, I might as well remove the NE558 and socket it in case I need to replace that. And replace the video jack, as it seems like its no longer holding the RCA cable in very well. I have to wiggle it around sometimes to get a good picture. Which sadly, doesn't look like something with that footprint is available new from DK/Mouser. So have to track down some NOS connector of that style.
I'm open to any thoughts on best bnext steps on how to improve PDL 0/X on my Iie. As well if anyone has any ideas on how to test or what to do with PDL 1/Y on joystick 1.
218, 231 and 245 should be fine for y-axis.
233 might be questionable for the X-axis.
You may want to try putting in a small correction capacitor across the X-axis on that one joystick with low pot resistance.
For that capacitor value solve for the following to find the correct R•C value in the input circuit:
118kΩ * (x + 0.022μF) = 150kΩ * 0.022μF
x + 0.022μF = (150kΩ * 0.022μF) / 118kΩ
x = (150kΩ * 0.022μF) / 118kΩ – 0.022μF
x = 0.0279
So a 0.02 uF cap should work.
Otherwise, since you're already on the motherboard with your soldering gear, I'd de-solder all the resistors and capacitors on the motherboard surrounding the 558 timer and make sure that they're all to-spec.
Thanks for the reply, and the suggestion on the cap. I'm not sure I want to go that route on the X axis, as the //c and IIgs read it perfectly. But that might be something to try on the Y axis for joystick 1, as all 3 computers read that low. I'm assuming the cap would go across the wiper and the end of the pot with a wire on it (the other end is unconnected)?
Speaking of the Y axis, why do you think those low vale's would be OK? If a game was programmed to go slow/fast depending on how far you moved the joystick, it would probably treat all those as all slow. I just can't think of a game or application off hand that would be good to test with to confirm my theory. Maybe some drawing program that can use the joystick, maybe Dazzle Draw. I think that might be a good test now that I think of it.
I'm sort of leaning towards the 558 causing my X axis issue on the IIe. I was ordering something from ReactiveMicro, and I saw he also had some 558s, so I ordered one to try. Also ordered a RCA connector from somewhere else that should fit and hopefully fix my video issues. As long as I'm pulling the board to install a socket for the 558 and replace the video jack, I'll take your advice to remove and check the resistors and caps on the paddle lines.
Going further down the rabbit hole on this. Nothing seems to be making sense. I pulled the board to replace the video connector, and I also socketed the NE558. With the 558 removed, you can check the input caps and resistors on the board, as no other components interfere at that point. I checked each one with two different devices (a cheap multi part identifier & tester and a DMM), which is why each has two readings. The cap is marked 223k, so its a .022uF (22nF) cap with 10% tolerance. And the resistors are all 100ohm with 5% tolerance.
Based on this chart, the X axis which is giving me trouble is within spec. The cap is near the lower end of spec, but still there. However, the Y axis which works perfect with joystick #2 and the paddles is actually out of spec on the cap. Based on this, the cap and resistor should be fine for reading PDL(0)/X axis. I tired another 558, and it reads the X and Y axis exactly the same as the original 558.
So now I'm really lost. I don't know what else to check or test. And the test results seem to contradict themselves, or don't seem to show anything obvious:
But at least I have a solid RCA jack for the video cable now. So at least I have that going for me.
Don't overthink it.
I think baldrick was correct when he showed you how to compensate for your 114K pots instead of 150K. That is the proper way to fix this issue. You could add the additional cap to the //e motherboard (or just up their values). Otherwise, put them inside the joystick and don't worry; it should still work fine on the //c and IIgs.
Be careful when concluding anything about old caps.
I just recently had a problem with my Apple II where it suddenly began repeating the last typed character by itself over and over again.
It would work just fine when the machine was turned on, but after 15-20 min the repeating began.
I ended up replacing the 1 uf electrolytic cap on the keyboard encoder board, and the problem went away for good.
My conclusion: a 40 year old cap may look good and seemingly perform well at first, but efter being in use for a while begin to malfunction. At least when it comes to electrolytic capacitors.
The capacitors on the motherboard are ceramic types, which generally don't fail over time, but given the cost, which is pennies a piece, it probably wouldn't hurt to attempt to replace them, along with the resistors.
If one were really anal about it, one could buy a large quantity of 22 nF ceramic capacitors and test each one, using only those that measured nearest the nominal value.
Thanks for the input. I did not want to mess with the joystick, as I wasn't sure how adding the extra capacitor would affect how well it worked with the //c and IIgs. I didn't think about changing the IIe capacitor since it was in spec. But after Jeff suggested it, I clipped some test leads on c37/pdl(0) and added some capacitors in parallel to test different values.
I repair old tube radios as a hobby, so I have a large selection of "non standard" value film caps. I started with .02uF as originally suggested (effectively doubling the value). That caused the joystick to read 255 at center.
I swapped out to a .004uF, used the trimmer to recenter. Going right I was able to hit 255 no problem. But would hit 0 on the left with almost 1/4" left of travel on the stick.
Then I dropped down to a .0025uF, adjusted the trimmer, and that gave a pretty good compromise. All the way right was hitting around 251, and when I hit 0 on the left I only had maybe 1/8" of travel left. Conan seemed to like this compromise as well, I was able to run full speed to the right with it.
As c37 was measuring .02 already and bumping it to .0225 helped, it looks like the IIe for some unknown reason really wants this cap to be right at the schematic specified value, if not maybe just a touch higher.
So I guess the suggestion to buy a bunch of .022uf ceramic caps and try and find one that reads just a touch on the high side of .022uF is the best way to fix this. Do I need to be concerned about the ceramic temp coefficient too much? Or should I even maybe look to see if a film cap would fit here instead?
I took another look at baldrick's calculations and ralized that indeed he did make an error. The correct value should be:
x = (150-118) * 0.022 / 118
x = 0.006
So your ideal new value for C37 would be 0.0226.
I stand corrected...you're right, the value is 0.00597 uF or 0.6nF for the correction cap.
Might be tricky finding a 28 nF capacitor, although there are 27 and 29 nF at Digikey. (They're ridiculously expsnsive at 50 cents a piece, though.)
That is if all the resistors in the circuit are exactly at nominal.
Yeah, resistors were all pretty much exact ranging from 99.X to 100.X ohms. My trial and error of adding caps in parallel to c37 on the IIe match up with what is being calculated.
In a perfect world C37 should be 22nF, but C37 was measuring 20nF on mine. I added 2.5nF in parallel (bringing C37 now to 22.5nF), and everything seemed to play nice with the X axis on the IIe.
So this morning I ordered twenty 22nF ceramic caps, and hopefully one will be right at 22nF, if not ideally just a touch higher. Then I'll just swap out C37 on the IIe board.
I also did some trial and error with the Y axis on joystick #1, as it was reading low on all 3 Apples. It looks like adding a cap between 2.5-3.3nF made it play nicer on the IIe. I didn't try it with the other 2 Apples though. So I ordered a couple caps in that range to find the sweet spot.
I should know early to mid next week once I get the parts from Digikey and can swap out C37 and to see how well everything worked out.
Appretiate everyone's input and help!
Yes, that would be perfect. IF you were using 150K pots!
Keep in mind that since your joystick uses 100-118K pots, the caps need to be larger to compensate. Even if you have to parallel two together to get there.
I wonder why Apple used 118k pots in these joysticks then? Also why they didn't use a tighter tolerance capacitor.
They might have gotten away with 118k if the caps were 22nF, instead of reading low (but still in tolerance). As proven by the //c and IIgs reading the full range properly (which I didn't measure, but leads me to believe their caps were much closer to the 22nF value).
Wish I could lay my hands on my childhood Apple stick, for grins to compare to these two I had acquired over the past couple years. But my Apple stuff got shuffled around a few times in the 90s and 00s, and the joystick and some of my favorite software got lost in the process.
I am not sure of the reason, maybe that's what the joystick manufacturer had on hand.
I have some joysticks here with out-of-spec pots (greater than 150K) that have corrector resistors across the potentiometer to bring the pots back down to approximately 150K.
I think that the real answer is that for most games it's not really that important. And some games alowed you to calibrate your joystick (well the well written ones anyway) so that it would respond properly.
I can't think of the games off the top of my head but I distinctly remember having to move the joystick all the way to the left, press a button, then all the way to the right, and press a button again before I could start the game.
Those pots may have been closer to spec when they were new too...
UPS surprisingly delivered my caps on a Saturday. So this morning I checked them all, and found a couple that were at lest 22nF, or a touch higher. I have two different testers, and they both gave me slightly different values. I first tried a cap that was reading 22.24/21.98nF depending on which tester. On one of the two sticks, it boosted the PDL(0) reading to about 249 and fixed Conan. But the other stick was still reading low, and didn't work with Conan. So I found the next higher cap that read 23.06/22.80nF and installed it. It boosted one stick to 255 and the other now to about 249 and now both sticks work with Conan.
Baldrick does raise a good point about calibrations. I know a few games I played as a kid had that. The Goonies being one of them for sure. And that game wasn't giving me any trouble on the IIe before I adjusted C37. And I know a lot of games just straight up ignored the analog nature and basically treated it as a digital input.
While 150k pots are certainly not standard or widely available, they do seem to exist. Despite people seeming to claim that they don't exist at all. A quick google search actually turned up these at Jameco. I'd have to disassemble one of mine and physically measure the pot. But those might be viable replacements if needed just based on visual inspection. Maybe I'll take measurements when I go to install a cap on the Y axis of my stick that is reading low.
Thanks again for everyone's input and helping me get to a better/working state on my IIe.
Picking 150k instead of the far more common values like 100k, 250k, 500k or 1M is one of the unfortunate things about Woz's decisions on the Apple II. Others were picking the particular Molex connector for the power supply instead of ones which were far more common and cheaper. Not as bad as the Apple 1 though which uses a lot of ICs that are rare and hard to find these days.