Go Down

Topic: Radio Shack Avenger 700 Joystick - 2 row 15 pin connector (Read 2036 times) previous topic - next topic

encryptor

I purchased a never used Radio Shack Avenger 700 Joystick from a thrift store for $2.  Seriously the cord was still tied up nice and in original plastic bag.  It looks awesome and has 2 push buttons, one for the trigger finger, one for the thumb on top!  The problem is it has a15 male pin connector plug spread on 2 rows.  I wanted to know the connector pin layout, but RadioShack didn't have this much info on it.  I saw in the Learning section a nice and simple joystick example.  Should I just cut the 15 pin plug and see which wires appear to be pos/neg?  Then test the signal on each direction of the joystick using leds.  Do that sound like the right direction?  Would you try to work with the plug on figuring it is now outdated since 1995?
peace*&^

Osgeld

it was standard for PC's



I wouldnt cut the plug off, you can find 15 pin female versions of that just about anywhere

http://www.digikey.com/scripts/dksearch/dksus.dll?FV=fff40016%2Cfff8051c%2C160001f%2C1680002&k=dsub&vendor=0&mnonly=0&newproducts=0&ptm=0&fid=0&quantity=0&PV28=1220&stock=1


mainly cause you wont find wire in the cord, its a nylon string thats been metal plated, a big hassle to work with
http://arduino.cc/forum/index.php?action=unread;boards=2,3,4,5,67,6,7,8,9,10,11,66,12,13,15,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,86,87,89,1;ALL

encryptor

Are B1,B2,B3,B4 capacitors?  What do A,B,C,D represent?  Is pin2 tied back to pin4 on the connector?  Likewise, is pin5 tied back to pin7? And pin10, pin12, and pin 14 tied to GND?  Why does this hardware pinout show 2 joysticks?   Is one side Left/Right/Up/Down and the other side diagonal directions?  Are the 100k ohms linear potentiometers built into the joystick?  I thought MIDI was for sound?  I'll go buy the female connector. :D
peace*&^

AWOL

Quote
Are B1,B2,B3,B4 capacitors?  What do A,B,C,D represent?

Most joysticks have switches.
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

encryptor

Ok, I do have a x axis Trim Control Switch and a Y axis Trim Control Switch.  Why does it the design show joystick 1 & 2? :smiley-zipper:
peace*&^

PeterH

That appears to be a standard 'gameport' connector, which supports two ordinary two-axis joysticks with two buttons each. It was quite common to use these to connect a single joystick with a coolie hat, giving four proportional controls and four buttons in a single joystick.
I only provide help via the forum - please do not contact me for private consultancy.

encryptor

Are the 100k ohm potentiometers built into the joystick?  Which pins would I connect 2 buttons to?  thanks! XD
peace*&^

cr0sh


That appears to be a standard 'gameport' connector, which supports two ordinary two-axis joysticks with two buttons each. It was quite common to use these to connect a single joystick with a coolie hat, giving four proportional controls and four buttons in a single joystick.


There was also ways of using the MIDI IN and OUT pins to give you even more buttons and such (you needed special drivers, though - and no two joysticks supported the same protocols).
I will not respond to Arduino help PM's from random forum users; if you have such a question, start a new topic thread.

cyberteque

a lot of the joysticks with "lots" of buttons multiplex them to give you 4 bit code.

One thing to watch is you have to wire up all the ground and +V connections.

zoomkat


Are the 100k ohm potentiometers built into the joystick?  Which pins would I connect 2 buttons to?  thanks! XD


You should be able to discover a lot just using a multimeter and the posted diagram.
Google forum search: Use Google Advanced Search and use Http://forum.arduino.cc/index in the "site or domain:" box.

encryptor

Ok I'll do that once I get a connector for it.  Here is a pic of the joystick.
peace*&^

encryptor

I'm not understanding this joystick.  I wrote this program to identify each movement, but it doesn't work the way I expected.  In the serial monitor I see a number flip from 6 to 7 pressing a button on the joystick.  I have 4 pins plugged into PWR and 3 pins plugged into GND as the diagram shows.  What am I doing wrong?

Code: [Select]
/******************************
Program: joystick_test.ino
Author: Evan Johnson
Purpose: Test each direction of the joystick to figure out
which pin relates to it.  Print the pin # in the serial monitor
and then you'll know by the direction your moving the joystick
which pin correlates to it.
*******************************/

//Each movement on the joystick should be sensed by an
//individual pin. The 8 movements translates to left/right,
//up/down, NorthEast, SouthEast, NorthWest, SouthWest.
int pin6 = 6; //pin 6
int pin7 = 7; //pin 7
int pin8 = 8; //pin 8
int pin9 = 9; //pin 9
int pin10 = 10; //pin 10
int pin11 = 11; //pin 11
int pin12 = 12; //pin 12
int pin13 = 13; //pin 13

void setup()
{                   
  Serial.begin(9600);
 
  pinMode(pin6, INPUT); // red     ROW 1
  pinMode(pin7, INPUT); // purple
  pinMode(pin8, INPUT); // orange
  pinMode(pin9, INPUT); // green
   
  pinMode(pin10, INPUT); // black  ROW2
  pinMode(pin11, INPUT); // green
  pinMode(pin12, INPUT); // red
  pinMode(pin13, INPUT); // blue
}

void loop()
{
  // read the input pin 6:
  int joystickState1 = digitalRead(pin6);
 
  // read the input pin 7:
  int joystickState2 = digitalRead(pin7);
 
  // read the input pin 8:
  int joystickState3 = digitalRead(pin8);
 
  // read the input pin 9:
  int joystickState4 = digitalRead(pin9);

  // read the input pin 10:
  int joystickState5 = digitalRead(pin10);
 
  // read the input pin 11:
  int joystickState6 = digitalRead(pin11);
 
  // read the input pin 12:
  int joystickState7 = digitalRead(pin12);
 
  // read the input pin 13:
  int joystickState8 = digitalRead(pin13);
 
 
  if(joystickState1 == HIGH)
  {
    Serial.println("Pin 6");
  }
  else if(joystickState2 == HIGH)
  {
    Serial.println("Pin 7");
  }
  else if(joystickState3 == HIGH)
  {
    Serial.println("Pin 8");
  }   
  else if(joystickState4 == HIGH)
  {
    Serial.println("Pin 9");
  }
  else if(joystickState5 == HIGH)
  {
    Serial.println("Pin 10");
  }
  else if(joystickState6 == HIGH)
  {
    Serial.println("Pin 11");
  }
  else if(joystickState7 == HIGH)
  {
    Serial.println("Pin 12");
  }
  else if(joystickState8 == HIGH)
  {
    Serial.println("Pin 13");
  }
  delay(1);        // delay in between reads for stability
}
 
peace*&^

Retroplayer

Your joystick is analog. You need to connect the pins that correspond with X and Y to analog pins on the arduino and read it's value. When the joystick is in the center, that is your center value. Any value greater will be one direction, any value less with be the other. Those little levers next to the joytisk handle set the trim which adjusts the center position. The two fire buttons are just buttons that go low when pressed. You can connect those to any pins and use internal pullups on the arduino.

You connect all 5V and all GND together. I attached a picture which might make it more clear how to hook it up. The pin numbers are the same on your joystick.

zoomkat

Your joystick probably has x, y, and z pots. The pins with the wiper outputs should be per standard joystick schematic pinouts. The below might be helpful in finding the joystick pot pins, the +5v pin, and ground pin. 

https://www.google.com/search?q=game+port+pinout&num=100&hl=en&lr=&as_qdr=all&tbm=isch&tbo=u&source=univ&sa=X&ei=WBgsUdjCN6qr0AHT0ICgBQ&ved=0CFMQsAQ&biw=1094&bih=629
Google forum search: Use Google Advanced Search and use Http://forum.arduino.cc/index in the "site or domain:" box.

encryptor

finally got it to control the mouse cursor!  There was no Z coordinate.  check it out on youtube! :smiley-eek-blue:

http://youtu.be/e-59qHSzKns
peace*&^

Go Up