Go Down

Topic: Sidewinder joystick PCB explanation (Read 1 time) previous topic - next topic

Voidugu

So guys i had this old Sidewinder pro joystick which i took apart. I threw away the bottom guts and was left with the top "stick" part of the joystick and its PCB.

I cannot understand how the PCB functions or how i can use its present form (without changing its circuitry) and so i would like someone to explain to me how it works and how i could possibly use it.

I've attached 3 photos of the actual PCB and another one showing the schematic of the PCB (please excuse my poor drawing/sketching skills)

Thank you in advance and have a nice day :)

Xpendable

#1
Oct 22, 2012, 08:12 pm Last Edit: Oct 22, 2012, 08:31 pm by Xpendable Reason: 1
Well... it looks like you have a bunch of tactile switchs from the buttons that were on of the stick.  If I recall correctly, there was a "hat" style thumbswitch on those joysticks as well, which would detect left, right, up, down, and diagonals (probably by combining left & up, left & down, right & up, right & down).  I'm going to guess there are a few transistors on there as well.  Looks like there is also an optical encoder for a wheel of some sort.  Need to look at the pictures some more...

UPDATE:  Scratch that... no rotary encoder.  I hadn't yet looked at the top-down picture and see what I thought was the encoder was just the side of one of the hat switches.  If I read your diagram correctly and look at the pictures, there are 8 buttons but only 6 wires.  My guess is that like they are multiplexing the input.  Meaning... they are using the transistors to switch which buttons they want to "read".  In order words they can only read some of the buttons at a time, and they use the transitors to switch which buttons they are reading.

I'm thinking that the blue, orange, yellow, and green wires are where you read the inputs, and you switch which inputs you want to read by applying voltage to either the red wire or the brown wire.  I think the red wire will let you read inputs 1,2,3,4 off the input wires and the brown wire will let you read inputs 5,6,7,8 off the same input wires.
Creator of the MonsterShield
http://www.hauntsoft.com

Voidugu

Yes sir you are right about the "hat" style thumb stick, i just didn't include it in the pictures. There is no need to worry about the optical encoder though since i am not going to use it.

Xpendable

There isn't any encoder.  I was wrong as per my edited reply.  It's just multiplexed input.  See above.  Should be really easy to use.  You just need to switch the red and brown wires high & low depending on which 4 buttons you want to read.  Basically the joystick would have done this many times a second, continously sampling each set of buttons.  You can do the same from the Arduino.  Just switch red HIGH and brown LOW, then read the 4 input wires for buttons 1, 2, 3, & 4.  Then switch red LOW and brown HIGH, then read the same wires to read the states of buttons 5, 6, 7, & 8.  Do this often enough in your input loop and you'll have access to all 8 buttons.  It's very similiar to using a shift register.
Creator of the MonsterShield
http://www.hauntsoft.com

Voidugu

Thank you very very very much man :O you made my day :O Again thanx
You are awesome.

BTW: do you have any idea of what those transistors are (if they are transistors) and how they are arranged? (npn,pnp) (emitter,collector,base )

Far-seeker


BTW: do you have any idea of what those transistors are (if they are transistors) and how they are arranged? (npn,pnp) (emitter,collector,base )


They likely are transistors of some type, probably MOSFETs, but there aren't any markings I can see from the pictures.  Try taking a magnifying glass, jewler's loupe, etc... and let us know what, if anything, is written on them.

Voidugu


Far-seeker


They are all labelled "N22"


Then they might be N channel MOSFETs, though even that's just an educated guess.  One problem with the small surface mount packages is they don't have the space to put full or even half of the part numbers.

I suppose you could power the board with a 5 VDC supply (regardless if it used USB or an older style "game port" the voltage level would be +5 VDC) and experimentally determine, via multimeter, what this part is doing.  This is a relatively uncomplicated board, so the reverse engineering shouldn't be too hard.  Just record what the voltage levels on all the pins are to various combinations of buttons, one suspected transistor at a time.

Go Up