1980s Joystick USB Conversion
by MisterM in Circuits > Raspberry Pi
8956 Views, 61 Favorites, 0 Comments
1980s Joystick USB Conversion
This original Cheetah 125 Joystick from the 1980s has had a loving conversion with shiny new microswitches, arcade buttons and a Pimoroni Player X controller board. It now has four independent "fire" buttons and connects via USB, ready for some serious RetroPie gaming action.
In my last Instructable I shared the 1963 Pi Tourer Game Console - a fun build but with one flaw, it had no controls for Player 2. We're fixing that today, by bringing back to life a joystick that hasn't seen action for over 30 years.
In case you can't see the embedded video it's on YouTube at https://youtu.be/Bfyoo2NRGnI and shows both the joystick and Pi Tourer in action.
Supplies
Cheetah 125 Joystick
Pimoroni Player X Board
Coloured single core cable
6x Microswitches
2x Miniature Push Switches
2x 24mm Arcade Buttons
Micro USB cable
Control Surprise
You may think "Why not just buy a USB adaptor?" to use an old joystick with RetroPie (or other emulators) - there's a good reason why not, which I didn't even consider until I had the joystick apart - although there may be multiple buttons (in this case four) they're all wired to the same function!
This would be OK for some games, but having multiple buttons as well as Start / Select was a must-have for me with this conversion. Before dismantling the joystick I planned to use a standard PiCade controller board, the same as in the Pi Tourer, but the minute I removed the base cover it was clear there just wouldn't be space. On top of that, the original idea had been to wire the existing buttons to the PiCade board and just add some extras for Start & Select. As soon as I realised that all the buttons were wired to a single circuit I knew this wouldn't work.
The joystick axis controls were the first surprise - the connection for each of these was literally made by a bendy metal cross touching the heads of four screws. Similarly the trigger and thumb buttons just moved other bendy metal around, which was wired to the original circuit board. I guess this was pretty standard in a world before microswitches were so commonplace, but it made me wonder how we ever moved a sprite from one platform to the next with any precision back in the day.
After some head-scratching I decided there was nothing for it but to replace the entire internal circuitry and wiring, adding in modern switches.
Thumb / Trigger / Arcade
I decided to start with something straightforward - the thumb and trigger buttons. The advantage here was that there was plenty of space inside the handgrip to hold switches and cables.
For the thumb button I just hot-glued a microswitch to the underside, so that pressing it would push the microswitch against the case of the handgrip - nice and easy!
The trigger went similarly well, I used a lever microswitch here, holding it in the right place by re-using some of the original metal contact and mash-proofing it with plenty of hot glue.
The round buttons in the base were a bit trickier - the buttons themselves were huge, pressing directly against pressure pads on the original circuit board, at least one of which was toast. I debated fixing a microswitch under each of these, but then realised they were almost identical in size to 24mm arcade buttons. I had to drill out the holes by 1mm, but otherwise the modern replacements were a perfect fit, and very similar cosmetically to the originals.
Directional Drama
With the "action" buttons wired up, albeit with huge dangly cables going nowhere yet, the direction controls were next. I didn't really want to mess too much with these, but knew if I didn't upgrade them to microswitches now I'd never get round to doing it later.
Conveniently when I removed the screw contacts from their four columns there was juuust enough room to slip in a tiny microswitch, so that the joystick mechanism would click it instead of making contact with a screw head. These little clickers were liberally hot-glued in place, cables everywhere!
Start & Select
Start & Select buttons are almost essential when playing games on RetroPie - they're used differently depending on what system you're emulating, and pressing them both together quits the game and returns you to the menu.
I wanted the buttons to be small and slightly out of the way to avoid accidental presses, so added them to the front of the base, pointing forwards, by drilling holes in the case just under where the "auto-fire" switch used to be.
Normal red miniature pushbuttons worked well here, not as satisfyingly clicky as microswitches but fine for this purpose.
At this point I had a Joystick with a full microswitch conversion - spread across about three feet of workbench! The next challenge was to wire up all of the buttons to the controller board.
Board Wiring
When I fitted the switches I was sure to leave nice long tails on their cables in anticipation of the final wiring challenge, and this was the next job. I began the project assuming I'd use a standard PiCade controller board, but early on learned that this would have to be mounted outside the joystick if it was going to fit. Partway through the build though a new board was released, the Player X! This had all the functions of the PiCade but was MUCH smaller and instead of having screw terminals just had standard female jumper-cable connector sockets.
This was literally the best timed product launch ever, and I ordered one straightaway. Before it arrived I was still agonising over the dimensions and whether it would fit, but thankfully there was room to screw it into the bottom of the joystick base, with almost 5mm to spare - luxury!
The compromise of the smaller board however was that it only had a single connector for the "common earth" - this meant that a wire from each one of the switches would all have to be connected to the same place. This was tricky, and I made several "manifold" type cables to help connect them all up. Once all of the earth sides were connected I could just connect each switch to its individual socket in the board. Because I'd used fairly thick single-core wire I could just push the ends directly into the board, making a solid connection even without a jumper connector. I did drip some hot glue over some of these though just in case. I wasn't too fussy about which wire went to which socket as redefining the controls is very straightforward on Retropie.
Assembly
With all the switches wired in I connected the micro-usb cable to the board, carefully routing it round the outside of the case and out using the original gromet, which was satisfying.
I screwed the hand-grip section together next, followed by the two halves of the base, and all went well - until I tried to move the joystick around, listening for the tell-tale clicks of the switches. There were none. On frustratedly dismantling it again I realised that the directional microswitches were sitting about 1mm taller than the original connector screws, meaning that when the joystick was screwed together they were all being pushed at once by the joystick base.
I managed to get around this by adding in a couple of washers to the middle of the base underneath the central point of the joystick - this had the effect of raising up the assembly enough so that the microswitches would now only be clicked when the stick was moved. Phew!
Spark Joy(stick)
Setting up the joystick on RetroPie went well, the usb board was recognised straightaway and all of the buttons worked as planned when defining the controls. It's a great addition to the Pi Tourer but took a bit of practice to get used to!
Now we can enjoy our retro 2-player games with proper controllers for both players - it may not be as easy as using a standard USB gamepad but it's a lot more fun - especially on the rare occasions I thrash my son at StreetFighter.
My other Old Tech. New Spec projects are all on Instructables at https://www.instructables.com/member/MisterM/instructables/ and on our YouTube channel at https://www.youtube.com/channel/UCRrwSKYBu4N7P6HWZsWJ2MA
More details and a contact form are on our website at http://bit.ly/OldTechNewSpec. and we're on Twitter @OldTechNewSpec.