 I have a new joystick for my ZX Spectrum. That statement was mostly a lie, in fact pretty much all of it. I've had this joystick for ages. It came with my Spectrum and you may notice that it is in fact an Amstrad joystick and not a Spectrum one, but it did come with the Kempston interface needed for the Spectrum. I'm not really a joystick person. When I play games I prefer to use the keyboard. I'm not keen on these digital, very stiff joysticks I find them difficult to use, but they are an important part of doing anything with these 8-bit micros, so this should really work and it doesn't. So what I'm going to do today is to get the thing out and find out what's wrong with it and hopefully repair it. So the ZX Spectrum didn't actually have a joystick interface. Instead you needed to plug on one of these interfaces. This one is a Kempston interface. There were several different API standards the Spectrum used. This is the simplest. This is so simple it will in fact also work on a ZX81 which is not a Spectrum. It's got two very small logic chips inside and essentially no intelligence whatsoever. It comes with this nice little instruction manual which actually tells you the API used by the joystick interface. So you can write your own games, which is quite nice. But let's stick this aside and I will get the joystick out. The joystick is a big chunk of plastic. It doesn't really move. The way it works is there's a T-bar on the inside which presses down on four switches on a very cheap PCB and that just closes connections to the interface. And that's basically all there is to it. Oh there's one fire button at the top. So here is a Spectrum and the interface plugs in here. So let me go and do the rest of the setup and I will show you what's wrong with it. Alright we have it up and running through this little LCD screen which hopefully should be just big enough to read. It's an enormous tangle of wires on multiple power supplies because that's how things work back in the 80s. And I do have to be dead careful because the Spectrum takes 9 volts, centre negative and the LCD takes 12 volts, centre positive and these are the same size of connector for the power. And if I plug them in the wrong way around, well the LCD will be fine. Okay so let me just invert the video to make it a little easier to see. So let's just move things up a bit so you can see the keyboard. So we want paper zero ink seven CLS. Right and that should be white on black which should be better. So let's write a program print at at where is at. The Spectrum keyboard is extremely special. There it is. Print at one comma one comma here. I now want to use the in keyword to read from one of the IO ports. I'm demonstrating this on Spectrum rather than ZX81 because the ZX81 doesn't have an in keyword. It will still work with the joystick but you have to use machine code to access it. You create a tiny little machine code routine. There it is. And call it from basic 20. Go to 10. 10. Let's see if we run that. That should be zero. There we go. And let's actually make a small change and go up and edit. Spectrum's built-in IDE is actually surprisingly decent. comma empty string. Right. What that will do is it prints some white space after the number which you should be able to make out is saying 255 which is not right. That is extremely not right. I wonder if I made a mistake with this. Okay. One of the issues is that I can barely see the screen. It's not responding at all anymore. Now I have actually had this thing out before. So the last time I tried it, it did work very occasionally. It's not doing anything anymore. Well, I shall just double check the instructions. It's always worth reading the manual. This gives a tiny little basic program. Yes, print in 31. Go to 10. That's about as simple as you can get. And that does indeed say in 31. Okay. So basically it's completely failed, which is interesting. So I know what's wrong with it. It's got four incredibly cheap switches on the PCB. And when you move the joystick, it presses the switches. And they basically stopped working due to corrosion and age because this thing came out in 1982. So that's 38 years old, 37 years old. I have some replacement switches here. And I'm going to open this thing up and try and replace the switches in this with one that I know work and hopefully a lot better. And then we'll come back and give it another go. Now that I've demonstrated that it doesn't work, I shall unplug all this to free up some space on the workbench. And let's take this thing apart and have a look at the inside. Okay, well, I have a big power tool. So let's just undo all the screws after putting this in the right direction. This one is underneath the rubber foot. These rubber feet, by the way, are suction cups intended to stick the joystick down onto your workbench. They worked very, very badly. And I have never heard of anyone actually using the things. Dear, I've actually managed to score that. Well, it's not a valuable joystick. They made millions of these things. They were incredibly cheap and fairly nasty. All right, what have we got on the inside? That's not done all the way yet. So here we have the T-bar with four nubs that stick out. And here we have the incredibly simple PCB with four castanet switches that are just taped onto the PCB. And they close connections between the, between the tracks. And that is literally all there is to it. Nothing else whatsoever. So let me just get out the continuity tester and just do a few quick tests. So if I check the continuity here, can I press close the switch? Yeah, that's terrible. It's just not making reliable contact. So if we peel the tape off, you see the switch is not fastened on with anything other than tape. It's just a bent piece of metal. Now, I have several different types of switch here to replace it with. I've got these, which are very clicky, but are quite chunky. They're about three millimeters thick, but then they've got this plastic bit here that sticks up. Oh, that could be chopped off. And I've got these. These are in fact also castanet switches, but they are integrated units. And they are coming up on the camera here and clicking. So they're quite a lot more positive than these. And I can easily solder one of these across the existing tracks here. The only issue is that the switch needs to be centered underneath the nub on the T-bar. So it pushes down on the middle of the switch. I'm hoping that these are thin enough that they will be compatible with these. These are maybe half a millimeter thick, maybe a little bit more, because of the way that they curve up in the middle. Because the switch has to go right in the middle, this does mean that finding a place to put the contact is a little bit tricky. I'd much rather use these. But if I wanted to use these, I would probably need to replace the the T-bar mechanism, which is doable. I mean, I could make a new one. I've got a 3D printer, but it wouldn't be as strong as this. I might have to undo these screws. Let's actually undo those screws and see what's inside. And the other thing, of course, is to simply saw off part of the bit that sticks out to allow for the difference in height of the switch. So here we have the fire button, which is not clicky. That looks like a key switch. That very much looks like a key switch. I do not see an icon on it. It's linear whatever it is. I can't imagine that they would use a good key switch, but maybe that was all there was. Right here is the root of the bar here. So it's actually quite a hefty chunk of plastic, which looks to be, yeah, it just pushes in. So chopping the bottom off would be perfectly viable, but I don't really want to, as it's an irreversible change. Soldering these things on, I can always take them off again afterwards and painfully clean the solder off. Let me just look at the clearance. The ends of these, the posts that screw onto the PCB and hold the PCB down, are of course flush with the PCB, so I can actually measure how much clearance there is for the switch by putting a straight edge across here and measuring that distance. So I do have one, but not on my workbench, so. All right, so I can see that is one and a half millimeters, not including the nub. The nub is actually very close to the, oops, very close to the PCB. The joystick doesn't actually move very far. I'll just put this back on to hold the handle together. Problem. Where'd that other screw fall out? For the PCB, there's another one here that is now missing. And where has the last one are? There's the, okay, the two screws for the case here are still in the case, so we do have the right number. So you can see the way the t-bar moves when I move the joystick, but of course it's never going to move nearly that far when it's actually fastened down. If I don't leave enough clearance when soldering one of these little switches down, then even when the joystick is not tilted it will depress the switch. The switches aren't particularly stiff and this thing provides an awful lot of leverage, but I suppose, let's just clear these off, the only way is to try it. Yeah, if I can, if I shave the nubs off, that will give me a little bit more clearance, or at least shave part of the nubs off. Don't, yeah, I don't think that pressing the switch onto, yes, the switch needs to be depressed in the middle. An even press across it doesn't trigger the switch, so I do need some kind of nub there. All right, well the first thing is to clean off the pads with some IPA because they're covered in adhesive, quite a lot of adhesive. There's actually a piece of tape left. Taping stuff down onto circuit boards is such a bad idea. I hope that's actually done some cleaning. Now I need to figure out how these switches work. Notice that there are in fact four contacts. So what happens when you actually press the switch? It's a miniscule. Okay, none of these seem to be connected to each other, so if I bridge these and then press the switch, nothing happens. Interesting. It's also small, it's actually quite hard to manipulate. Well the only combination of pads I haven't tried are the two short end ones, like so. I wonder if I need to change the battery in my multimeter. Okay, let's do resistance test instead. That's not working at all. Okay, let's try plugging the probes in. Yeah, that helps. Yeah, this wasn't plugged all the way in. Right, let's do that test again. Right, these two are connected. Those two are connected. The short way are not connected until I press the switch. All right, so let's take a look at this PCB. I need to bridge this with this. So the switch needs to go over the circular pad, like this, with one terminal on each track. So just about there would do fine. Now, the only problem is these two terminals here will be touching. It will be shorted out against this track, this pad. This one will solder down fine, but I need to get rid of this one. I'm not sure whether that's possible. I may just, you know, snap off. I think it will. Yes, it just has. All right, so this goes nicely centered over the pad like this, and we solder these three tags into the obvious places, and then we should be good to go. Well, that is theoretically. Suppose there's only one way to actually try and see if this works. That's to do it. I'm trying to remember how to do my surface mount. I will need some tweezers. Okay, so I've got my tweezers, and I've got some flux. So I need a pointy stick. This piece of wire will do fine. Oh wait, I already have a pointy stick ready for use. Yuck. So let's just drop some over here, and the way this works, if I remember correctly, is we need to put a little blob of solder about here. I said put a little blob of solder about here. That's not sticking to the metal. There we go. It's quite a big blob of solder, but. And the switch gets placed where we want it, and the flux will help here because it's slightly sticky. So it goes here, now it's sticking to the, more or less, and we melt the solder. Let me clear this clear up a bit. We push the component down, and melt the solder, and this is kind of terrible. And what's supposed to happen is the component goes down. Again, the component gets fastened to the board by one contact. So, now if that's in the wrong place, we can then remelt that solder and move it a little. If it's in the right place, then this is actually fairly firmly mounted in place, and then we can go and solder the other pads on. So it is, in fact, not quite where I want it. I want it down this way by maybe a millimeter. So I really want to be doing this. I want to be holding the component with my right hand and doing the soldering with my left hand. As I am right-handed, this is slightly more fraught than it should be. Okay, so let's melt the, let's try there. Okay, that looks about the right sort of place. That still presses nicely. So let's put some solder on here, just a little, just a little bit. It still has to actually stick to the PCB. I think the PCB is either really dirty. There we go. And let's do this one. Is that made of electrical contact? Yes, that's a bit grim as joints go. I'm not good at surface mount. I've had very little practice. It's all horribly fiddly. But if we get the continuity tester out again, beautiful. Right, well that is one contact done. So let's just put this on, see what happens. It's also creaky. I can't actually tell whether it's doing anything. It's possible that it's always pressing down on the switch. So it's always closed. So this PCB actually contains no logic apart from a few diodes. Oh, what's the good way to test this? I can't actually just take the PCB out and stick this thing on top of it because it's got these support posts that go through the PCB into the base. So I think I am going to have to work with this, but I don't know the pinout. Well, the other thing I can do is to just put it back together and plug it back into the spectrum and see what this does. I'm a little surprised. It's quite loud, not to hear it click when I do something. So do I want to try and test it or just stick the other four switches on? I think I might as well just do the other four switches and then close it up and get out the spectrum. Once I've done with that, I won't need the soldering iron anymore. I may need to open it up again and like shave bits off here, but I can do that with the spectrum actually connected to it, which will make testing so much easier. I'm not really very happy though. Right, where did I put those switches? Here they are. These are really ridiculously small. So I need three. I had to buy a bag of 50. It cost me about a franc. 450. Okay, so hopefully that should be the end of our soldering. So let's stick this back on and see how that feels. Yeah, I really can't tell. I can hear clicks, but I suspect that's just... I don't think that the switches, I think it's just general creakiness of the plastic moving. So let's put some screws back in and then fire it up and see what it does. I don't think it'll work. I think that the switches are going to be pressed closed by the joystick even when the joystick is centered. Oh, that's not right. The top of the joystick is not closed. That was the problem. Yeah, that's much better. All right, let's close it up then. Well, I have put some stuff away and I will get the spectrum out and let's see what happens. Here it is set up. I've typed in the program. Let's run that. It says zero, I believe. Nine. Well, fireworks. Fire was the one I didn't fiddle with. Yeah, I can't actually... eight zero. Nine is left. Let's take a look at that manual again. Yeah, I think some of... I think it's mostly working, but some of the switches are stuck down. Yeah. Right, the bottom bits are right left down and up and fire is 16. That's bit five. So eight things up is... things it's always up. So if I pull back, that goes to zero because now... Yeah, if I pull back further, there we go. And we get down, which is four. What about left and right? Nine. It means that... Yeah, that's bit one. A bit zero rather. Yeah, it's working, but it's way too sensitive. This is because the nubs are pressing against the switch. So I actually need to shave off some of those nubs. Now, I'm not really certain I want to do that because it's like an irreversible change. So I think what I will do is I will take a break from the videoing and dismantle this thing and look at that t-bar to see whether I can easily 3D print a new one. It's quite big. The platen on my printer is good enough to do it. I just wonder whether the 3D printer PLA will actually be solid enough. Or maybe I just want to, you know, chop off some of those. Yeah. Okay, I'm going to take a break and think about this and come back in a few seconds and probably a day or so. So it's not actually the next day. It's only about 15 minutes later. Fixing it turned out to be a lot easier than I thought. I took it apart and I discovered that one of the switches, the top had been stripped off so it wasn't working properly. So I replaced that. But the core problem is that the nubs on the t-bar were not immediately over the switch. So the circles on the PCB were not the middle. So I did end up having to shave the nubs off and then shape the bottom of the t-bar a bit and it now works reasonably well. You can see on the screen we're getting zero in the center and all the right numbers around in a circle. Replacing the t-bar turned out to be quite a lot more difficult than I thought. It's not just a solid piece of plastic. There's some cunning spring mechanisms at the bottom to avoid putting too much pressure on the PCB. But it does actually seem to work now. I will actually get out my trusty copy of Jetpack and load it up from cassette of course and see how it goes. I mean I said before I do not like these joysticks. It's really squeaky and nasty. You've got to wrench it to make it register. That's not the switches. They're all like always like that. And I'd much rather play with the keyboard but it does seem to work. And I think this thing is a key switch you know. Anyway time to get the cassette recorder out. Okay Jetpack has loaded and it takes an age. So let's set this up. We want Kempston joystick. One player game. Start game. Hmm yeah I can actually see what I'm doing on this little screen. The angle of view is very bad. And it's set up so the camera can see it not me. It works. It's nasty. I'd much rather use the keyboard but it is working. I can move in all the directions. The sync the diagonals are a bit dodgy. That was a stroke of luck. It doesn't seem to like me flying up and right. So possibly that needs a bit of work. Yeah I think this is good enough to call done. But I don't think I actually want to play anything on it. But I did at least manage to get to the end of level one. Okay I'm gonna think about this. I wonder whether I need to switch to these other switches which are quite a lot more robust. And yeah I would need to probably need to do quite a lot more editing of the PCB. One option is just make a new PCB for it of course. Yeah anyway I hope you enjoyed this tour of the inside of a nasty 1980s era joystick. I hope you liked this video. Please let me know what you think in the comments.