VOGONS


First post, by Mu0n

User metadata
Rank Member
Rank
Member

Foreword: I don't *need* this gamepad, as I also am equipped with an Advanced Gravis GamePad as well as both the Advanced Gravis Joystick (one button on top of the stick) and the other with two.

Goal: repair its bizarre behavior just as a fun electronics diagnostics/repair project.

5giwRgW.png

Using Joycheck.exe to test this out:

Working buttons:
Blue works as regular button 2 in single shot mode (bottom switch to the right)
Green works as auto-fire button 2 in rapid shot mode (bottom switch to the left)
Yellow works as regular button 2 in rapid shot mode (bottom switch to the left)

Dpad left and right worked in some rare tests I did and did not work most of the time (currently don't work)

No other button/directions worked.

Observations:
The underside of the PCB where the single/rapid shot switch is located, there was some FAIR amount of crusty electrolytes in there. It's weird because the nearest isolated capacitor is placed in such a way that it'd be hard to imagine it was the culprit. It is possible that there's a tiny capacitor inside the switch assembly (really?) that has leaked, but I haven't opened it up yet, waiting to see if there are opinions about it here first.
YGyUrit.jpeg

The pinout to the male cable connector is *really* strange and doesn't make sense. There's potentially several disconnected wires. Only one 5V pin and only one GND pin are used. Only button 2 is continuous.

The voltage levels kinda reveal why most buttons don't work. The blue button gets to 4.90 V facing ground, so that feels right. The red button (presumably button 1) only has 2.08 V which tips down to around 1.90 V and gets back up to 2.08 V. I've tried slightly coloring the main traces for the 4 buttons without overwhelming this top of the PCB.
Ib2yiT2.png

And finally, the underside of the PCB.
The transistors are all MPS3904.
The autofire 555 chip is a NE555N.
R1 = 4.63k
R2 = 4.64k
R3 = 6.77k
R4 = 66.1k
C1 is marked 1uF 50V
C2 = ?? looks like a 10 nF, it's right between pin 1 (GND) and pin 5 of the 555 chip.
AYut5HO.png
According to this 555 astable calculator https://ohmslawcalculator.com/555-astable-calculator I should be getting around 18 Hz, but joycheck gives me between 7 and 8 presses per second. Dunno if this difference is explainable or indicative of something (probably not)

Questions:
What component should I test out first, possibly out of circuit?
Should I directly connect the pins of the db15 connector of my vintage PC to a breadboard, without using the included cable to make sure each button can communicate to the outside world?
I could be willing to bypass the autofire subcircuit entirely with bodge wires if that makes everything way easier - what would be needed?

Reply 1 of 18, by Mu0n

User metadata
Rank Member
Rank
Member

I meant to add this to the OP as well. What I meant by doing my own janky cable assembly to the DB15 connector on the PC - this can explain a lot of things (not all?). I used the numbers as per the pinout on the male joystick connector seen here:
https://allpinouts.org/pinouts/connectors/inp … ck-pc-gameport/

EDIT - fixed a previous error, the 5th pin from the top goes to pin 7 of the joystick male connector, which is button 2 (was previously marked NC)

iDacRm8.png

Last edited by Mu0n on 2021-09-07, 18:41. Edited 1 time in total.

Reply 2 of 18, by snufkin

User metadata
Rank Oldbie
Rank
Oldbie

I'd probably start looking at the two slide switches. The button and dpad signals will get routed through those, so dirty contacts would break things and might be intermittent. I'm guessing they're 4 pole double throw (4pdt) switches, so check resistance between the poles (probably pins in the 2nd and 5th columns) and the pins to either side. You should get 0 ohms (or very close to 0) to the pins to the left with the switch in one position, then 0 to the pins to the right with the switch in the other position.

Attachments

  • 4pdt_pinout.jpg
    Filename
    4pdt_pinout.jpg
    File size
    8.09 KiB
    Views
    386 views
    File license
    Fair use/fair dealing exception

Reply 3 of 18, by Mu0n

User metadata
Rank Member
Rank
Member

Awesome, that's really helpful in simplifying the scenarios in my head.

Here's the rapid-shot mode (switch to bottom left) where each individual color is tied together. I also generally used the button color they're supposed to deal with.

SLOcozu.png

Pin 3 goes nowhere
Pins 1,2,6,7,8 all work to make the yellow button 'B2' and not act as rapid autofire since there's no transistor involved.
Pins 10,11 go to the green button and make it act as 'B2 autofire' and are tied to Q4, works under testing
Pins 4,5 - I'm guessing it's supposed to make it act as 'B1 autofire' and is tied to Q3, but it doesn't work under testing. It's not continuous to the external cable's 6th pin from the top (from my 2nd post here)
Pin 12 goes to the external cable's 8th pin (2nd post here) but that's NC to the external cable. I'm guessing it would act as 'B4' in the other mode

What I call 'Pin 0' is the footing of the switch's external case and I'd like to say it's a ground, but it's not connected to the obvious main ground of the PCB. It also goes to the 7th pin of the external cable which is NC with regard to the male external joystick connector.

Next up, single fire mode (bottom switch to the right)...

Reply 4 of 18, by Mu0n

User metadata
Rank Member
Rank
Member

single fire mode (bottom switch to the right)

CuXnRBe.png

Pins 2,3,8,9 go to the yellow button and would attempt to tie it to the 7th external cable pin from the top (2nd post here), which is NC. I'm guessing it's a failed attempt at making 'B3' work and it should go to the DB15 joystick connector pin 10
Pins 1, 5, 6 go to the blue button and make it act as 'B2' and it works when tested.
Pins 11,12 go to the green button and would attempt to tie it to the 8th external cable from the top (2nd post here), which is NC. I'm guessing it's a failed attempt at making 'B4' work and it should go to the DB15 joystick connector pin 14

Thoughs on B1: it's always associated to the red button and is never routed through that switch, so it only depends on ground and what should be 5 V, but it's getting less because of its connection to a...faulty Q3? This can also explain the blue button's refusal to work in rapid-fire mode (presumably 'B1 autofire').

Last edited by Mu0n on 2021-09-07, 21:49. Edited 1 time in total.

Reply 5 of 18, by Jo22

User metadata
Rank l33t++
Rank
l33t++
Mu0n wrote on 2021-09-07, 19:44:

Thoughs on B1: it's always associated to 'B1' and is never routed through that switch, so it only depends on ground and what should be 5 V, but it's getting less because of its connection to a...faulty Q3? This can also explain the blue button's refusal to work in rapid-fire mode (presumably 'B1 autofire').

Hi, Q3 is a transistor, yes ? 😅
- I'm asking, because sometimes in German schematics both xtals and switching transistors are using the "Q" symbol,
while ordinary transistors for amplification etc are using "T".

If it's a pipolar transistor, I'd desolder it and measure it with a multimeter or one of these multi testers..

Edit: I'm using one of these: https://www.youtube.com/watch?v=07FH6tjzwWg

It has a colourful LCD and with the graphics does remind a bit of a tricorder from Star Trek Next Generation.. 😉

Anyway, I don't mean to mess up your thread.
You may already know these things, but I wasn't sure, so I replied nevertheless.

I wish you good look. This thread/topic has been very interesting to read so far.
I think it's cool that the classic Gravis Gamepad gets some attention, also. 😎

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 6 of 18, by snufkin

User metadata
Rank Oldbie
Rank
Oldbie

I've just realised that the problem may be in the cable, given how many N/C connections there are. My guess is that the 4 digital inputs on the gameport are used for the 4 buttons, then 2 of the x/y axis analogue inputs are used for the dpad (e.g. 0V for Left, 5V for Right, software decides if a threshold has been passed to count as an input).

So, numbering from pin 1 at the top of the header to pin 8 at the bottom, and using what you've already tested, then my guess for connections to the gameport dsub15 would be:

Header Gameport Function
1 1 Vcc
2 3 X-axis (L/R)
3 6 Y-axis (U/D)
4 4 Gnd
5 7 Button B
6 2 Button A
7 10 Button C
8 14 Button D

Try unplugging the cable from the header on the PCB, then testing to see what pins on the header connect to what pins on the gameport connector. I'm not sure about the order of the buttons, and it may also be worth checking for any connections to pin 11 and 13 on the dsub15 in case it's using the second set of the analogue inputs.

I'd need to draw out the schematic from the PCB to actually understand what's going on, but I don't know when I'd be able to do that.

Reply 7 of 18, by Mu0n

User metadata
Rank Member
Rank
Member

Wiring my own external cable is next on the list.

In-circuit testing, I find:
Q1 and Q2 (tied to the dpad) are PNP MPS3906 transistors, and both unidirections work as intended.
Q3 and Q4 (tied to autofiring) are NPN MPS3904, both unidirections work.

Reply 8 of 18, by snufkin

User metadata
Rank Oldbie
Rank
Oldbie

I'm putting off doing some other stuff, so drew up the schematic instead...

I put the values you have for the the two resistors and the capacitor around the 555 in to this calculator: https://www.allaboutcircuits.com/tools/555-ti … stable-circuit/ and that gives a frequency of 10Hz. So given various tolerances then your measure 8Hz doesn't sound too far out.

The dpad is using the analog inputs, pulling them to +5V through either 0, 1 or 2 47k resistors. How the resistance gets sensed on the PC side probably varies, but you should see the voltage change from +5V when pushing Down, something lower when pushing Up, and something halfway between when not pushing either.

The resistor networks (RN1, RN2) are arranged as 3 47k resistors, between pins 1&2,3&4,5&6.

Mind that I've only quickly drawn the schematics so there will be mistakes, particularly around the transistor pin numbering (they seem to be back to front), and I've drawn the resistor networks and the 4pdt switches as separate components, so the numbering is a bit off. Hopefully it helps with the troubleshooting, although I'm still thinking the cable/connectors are the problem.

[edit regarding the dpad schematic: One day I'll learn to add up. 47+47 is of course 94 and not 96]

Attachments

Last edited by snufkin on 2021-09-10, 11:18. Edited 1 time in total.

Reply 9 of 18, by Mu0n

User metadata
Rank Member
Rank
Member

Haha, wow. That should drive me all the way through the finish line. Saves me a ton of time for the dpad section which I was going to verify later. Thanks!

When I have time, I'll attack the homemade header cable.

Reply 10 of 18, by Mu0n

User metadata
Rank Member
Rank
Member

I cut the cable right after the right angle bend near the exit inside the case, and tested all the wires in the remaining section. Yup, the problems were probably in that area. To make sure it wasn't a weird crimping problem inside the plastic header casing, continuity was verified on both sides now that it is isolated. Works.
TYDGawn.jpg

Reply 11 of 18, by Thermalwrong

User metadata
Rank Oldbie
Rank
Oldbie

Nice, I just had to fix the same type of thing in my headphone cable.
Though I have found some older cables do get brittle, I haven't noticed it with my gravis gamepad. The break point looks like just where the controller could've got tugged or moved around a lot? There's certainly not much to go wrong in that controller otherwise 😀

Reply 12 of 18, by Mu0n

User metadata
Rank Member
Rank
Member

after soldering the wires directly on the pins of the exposed socket, I ran into 2 issues:

-horiz and vert were reversed, so there's a small mistake to fix in the table that was suggested by snufkin (see bottom of this post)
-B1, B2 didn't work

I noticed the green cable was dangling loose, so I fixed that, and swapped the white and yellow cables. Everything seemed to work....until a few minutes later, well after everything was screwed together, B1 refused to work, no matter what.

so I poked, prodded, checked continuity and I came to the conclusion as to why this button in particular is so difficult: the cable was probably wrapped tight very often, creating cracks in one or more places, some wires being affected more than others. If you don't wrap your cable right, twists occur and after close to 30 years, that's gotta create problems. For a more robust solution, I'm going to have to buy a male DB15 connector and some quality wires inside a flexible protective outer cable one of these days. The quick and dirty solution is to unravel the cable and attempt to find a twisty-position that makes it work. Currently, I revived the cable just fine and everything works as it should.

Thanks for all the help you guys provided!


Header Gameport Function
1 1 Vcc
2 3 Y-axis (U/D)
3 6 X-axis (L/R)
4 4 Gnd
5 7 Button B (blue)
6 2 Button A (red)
7 10 Button C (yellow)
8 14 Button D (green)

Reply 13 of 18, by snufkin

User metadata
Rank Oldbie
Rank
Oldbie
Mu0n wrote on 2021-09-10, 04:43:

-horiz and vert were reversed, so there's a small mistake to fix in the table that was suggested by snufkin (see bottom of this post)

Doesn't everyone hold game pads vertically?
At least I got it the right way round in the schematic. I think.

For a more robust solution, I'm going to have to buy a male DB15 connector and some quality wires inside a flexible protective outer cable one of these days.

Since it's 8 core, if you've got an ethernet patch cable lying around then you might be able to use that. Crosstalk might be a issue causing phantom button presses, but it's not like the original cable kept any connections screened off so I think it'd be ok.

Good work fixing it, now what do you play with it?

Reply 14 of 18, by dr_st

User metadata
Rank l33t
Rank
l33t

I must humbly admire the amount of effort and investigation folks are willing to dedicate to fix a rather common (and rather crappy) gamepad. 😀

Congratulations on a job well done. 👍

https://cloakedthargoid.wordpress.com/ - Random content on hardware, software, games and toys

Reply 15 of 18, by Mu0n

User metadata
Rank Member
Rank
Member

I mean:

1)you can't deny it's a classic and it's absolutely iconic for early 90's pc gaming

2) electronics and investigation is *chef kiss*

As for what I'll use it for: there are plenty of games where left/right is used and not up/down, like many of those Apogee sidescrollers. I tried it with Duke Nukum [sic] yesterday and it was fiiiine.

Reply 16 of 18, by dr_st

User metadata
Rank l33t
Rank
l33t
Mu0n wrote on 2021-09-10, 13:52:

1)you can't deny it's a classic and it's absolutely iconic for early 90's pc gaming

Indeed I cannot. That's why I went and got one myself quite a few years back, even though I never use it and can't stand gamepads in general. 🤣

Mu0n wrote on 2021-09-10, 13:52:

I tried it with Duke Nukum [sic] yesterday and it was fiiiine.

Oh, yeah, I also have that version where they temporarily changed the name to 'Duke Nukum' to avoid "infringing" on the Captain Planet villain. I still prefer Duke Nukem II. 😁

https://cloakedthargoid.wordpress.com/ - Random content on hardware, software, games and toys

Reply 17 of 18, by Mu0n

User metadata
Rank Member
Rank
Member

And actually, what prompted this whole deal about getting a W in electronics repair as my to-do-list steadily grows is I wanted to make a simple Logo Writer program that messes with joystick input and remains super simple for my kids, especially my son who can be in a position to tinker with code soon at 7.5 year old.

Reply 18 of 18, by dr_st

User metadata
Rank l33t
Rank
l33t

Awesome! I think that these skills should all be taught to kids who exhibit interest in tinkering, and the earlier, the better. 😀

https://cloakedthargoid.wordpress.com/ - Random content on hardware, software, games and toys