View Full Version : Using auxiliary joystick buttons with IFI controller.
Eric W. Jones
17-07-2006, 20:14
Does the FIRST controller recognize the auxiallry buttons on the joysticks provided in the kit; and, if so, what are they referred to in the code?
Kristian Calhoun
17-07-2006, 20:26
Are you talking about the trigger and top buttons?
If so, they're recognized by the port of the joystick which they're on. For example if you wanted to use the trigger button on the joystick plugged into port 1, you use p1_sw_trig , likewise the top button would be p1_sw_top .
Let me know if this helps.
-Kristian
EDIT: Whoops, I misread your post, you said auxiliary. Use p1_sw_aux or p1_sw_aux2 [just change the number of the port to the one you need].
Eric W. Jones
17-07-2006, 20:41
This is very helpful. Thank you.
Pat Fairbank
17-07-2006, 23:33
Also, the various positions of the hat switch (the big round clicky thing) manifest themselves as different analog values on either the p1_aux or p1_wheel variables (can't remember which).
Does anyone have more details on what the values are for the hat switch?
Does anyone have more details on what the values are for the hat switch?
From ifi_aliases.h
/*
*-----------------------------------------------------------------------------------------------------
*---------- Aliases for each OI analog input ---------------------------------------------------------
*-----------------------------------------------------------------------------------------------------
* Below are aliases for the analog inputs located on the Operator Interface.
*/
#define p1_y rxdata.oi_analog01
#define p2_y rxdata.oi_analog02
#define p3_y rxdata.oi_analog03
#define p4_y rxdata.oi_analog04
#define p1_x rxdata.oi_analog05
#define p2_x rxdata.oi_analog06
#define p3_x rxdata.oi_analog07
#define p4_x rxdata.oi_analog08
#define p1_wheel rxdata.oi_analog09
#define p2_wheel rxdata.oi_analog10
#define p3_wheel rxdata.oi_analog11
#define p4_wheel rxdata.oi_analog12
#define p1_aux rxdata.oi_analog13
#define p2_aux rxdata.oi_analog14
#define p3_aux rxdata.oi_analog15
#define p4_aux rxdata.oi_analog16
/*
*-----------------------------------------------------------------------------------------------------
*---------- Aliases for each OI switch input ---------------------------------------------------------
*-----------------------------------------------------------------------------------------------------
* Below are aliases for the digital inputs located on the Operator Interface.
* Ports 1 & 3 have their inputs duplicated in ports 4 & 2 respectively. The
* inputs from ports 1 & 3 may be disabled via the 'Disable' dip switch
* located on the Operator Interface. See Users Manual for details.
*/
#define p1_sw_trig rxdata.oi_swA_byte.bitselect.bit0 /* Joystick Trigger Button, same as Port4 pin5 */
#define p1_sw_top rxdata.oi_swA_byte.bitselect.bit1 /* Joystick Top Button, same as Port4 pin8 */
#define p1_sw_aux1 rxdata.oi_swA_byte.bitselect.bit2 /* Aux input, same as Port4 pin9 */
#define p1_sw_aux2 rxdata.oi_swA_byte.bitselect.bit3 /* Aux input, same as Port4 pin15*/
#define p3_sw_trig rxdata.oi_swA_byte.bitselect.bit4 /* Joystick Trigger Button, same as Port2 pin5 */
#define p3_sw_top rxdata.oi_swA_byte.bitselect.bit5 /* Joystick Top Button, same as Port2 pin8 */
#define p3_sw_aux1 rxdata.oi_swA_byte.bitselect.bit6 /* Aux input, same as Port2 pin9 */
#define p3_sw_aux2 rxdata.oi_swA_byte.bitselect.bit7 /* Aux input, same as Port2 pin15*/
#define p2_sw_trig rxdata.oi_swB_byte.bitselect.bit0 /* Joystick Trigger Button*/
#define p2_sw_top rxdata.oi_swB_byte.bitselect.bit1 /* Joystick Top Button*/
#define p2_sw_aux1 rxdata.oi_swB_byte.bitselect.bit2 /* Aux input*/
#define p2_sw_aux2 rxdata.oi_swB_byte.bitselect.bit3 /* Aux input*/
#define p4_sw_trig rxdata.oi_swB_byte.bitselect.bit4 /* Joystick Trigger Button*/
#define p4_sw_top rxdata.oi_swB_byte.bitselect.bit5 /* Joystick Top Button*/
#define p4_sw_aux1 rxdata.oi_swB_byte.bitselect.bit6 /* Aux input*/
#define p4_sw_aux2 rxdata.oi_swB_byte.bitselect.bit7 /* Aux input*/
"_wheel" makes sense but have it output all the values with a simple printf and use the joystick (press buttons to change values, etc) so you can determine which variable it is.
Greg Marra
03-12-2006, 19:24
"_wheel" makes sense but have it output all the values with a simple printf and use the joystick (press buttons to change values, etc) so you can determine which variable it is.
This is not correct. "_wheel" is for the large wheel on the left hand side of the CH Flightstick (ie: not the trim wheels). I am not certain what the hat corresponds to, but my best guess would be the aux's, or the second joystick.
I just realized that you are talking about new sticks and I am talking about old sticks. See Astronouth's post below me for information about the new joysticks.
You see, back in the day, two joysticks could be hooked to each gameport port (http://pinouts.ru/Inputs/GameportPC_pinout.shtml). Some hardware manufacturers, rather than building an entire second joystick, just put in some circuitry to send "full up/down/left/right" instead of the analog values. This let you map the second joystick to a D-pad, for instance.
However, on the IFI implementation of the Gameport, the "_wheel" variable uses one of the analog axes of the second joystick, and the "_aux" variable the other analog axis. This still leaves the two remaining digital variables of "_aux1" and "_aux2". It is possible that the up/down or left/right gets mapped "full up/down" to "_aux" and the other is mapped to "_aux1" and "_aux2".
Sorry if my explanation now doesn't make a tremendous amount of sense. I am going to be writing all of this up much more clearly before build season.
Astronouth7303
03-12-2006, 19:24
Does anyone have more details on what the values are for the hat switch?
Ok, I won't chew you out for not searching, since I had to dig deep to find them, and I knew what I was looking for.
See http://www.chiefdelphi.com/forums/showthread.php?p=212655#post212681
Just be warned that that was back in 2004, when they first came out. There's a good chance they've changed, knowing how good of joysticks they are. :rolleyes:
JamesBrown
03-12-2006, 19:33
Does anyone have more details on what the values are for the hat switch?
Download the Dash board from ifi and use that to check the buttons.
Also remember that the even ports have pins to use for the switches of the odd port on the opposite side, so if you put in custom switches makes sure you aren't using them for more than one thing. Programmers should know the OI reference guide (http://ifirobotics.com/docs/oi-ref-guide-11-21-05.pdf) and the RC reference guide (http://ifirobotics.com/docs/rc-ref-guide-6-13-2006.pdf) and the victor reference guide (http://ifirobotics.com/docs/ifi-v884-users-manual-9-25-06.pdf) and every thing about the cmu-cam (http://www.usfirst.org/robotics/2006/visiondocs.htm)
Those documents will save you hours during build season, and are extremely important for trouble shooting electronics and programming.
James
teh_pwnerer795
03-12-2006, 22:26
Hey!
I just recently too just found out the values for the p1_wheel. If you are still interested send me a private message. That link you sent seems helpful if you noe Base 2 (binary). But i noe them in Base10 (normal decimal). let me noe. :rolleyes:
vBulletin® v3.6.4, Copyright ©2000-2017, Jelsoft Enterprises Ltd.