View Single Post
  #288  
Old 03-05-2011, 08:43 PM
madrebel madrebel is offline
Approved Member
 
Join Date: Feb 2011
Posts: 85
Default

Quote:
Originally Posted by ghodan View Post
But i dont like the CH pro throttle: Almost no resistance and flat travel.And no rotary's.
this
Code:
//---------------------------------------------------------------
//Mini Stick Rotary TRIM
//---------------------------------------------------------------

// Rudder Iinitial Centering
IF( FIRSTSCAN ) THEN
CMS.A2 = 128;
CMS.A1 = 128;
A1 = 128; //CONTROL VALUE FOR CMS.A2 (128 TO 0)
A2 = 128; //CONTROL VALUE FOR CMS.A2 (128 TO 255)
A3 = 128; //CONTROL VALUE FOR CMS.A1 (128 TO 0)
A4 = 128; //CONTROL VALUE FOR CMS.A1 (128 TO 255)
A10 = 50; // THIS IS THE INCREMENTAL FACTOR FOR Y AXIS. THE HIGHER THE SLOWER MOVEMENT THRU AXIS
ENDIF

A20 = 0; // Y AXIS
A30 = 0; // X AXIS

IF ([JS2.A2-128 < 0]) THEN A20 = -1* (JS2.A2 - 128);
ELSE
A20 = (JS2.A2-128); // Y AXIS
ENDIF

IF ([JS2.A1-128 < 0]) THEN A30 = -1* (JS2.A1-128);
ELSE
A30 = (JS2.A1-128); //X AXIS
ENDIF
// Y AXIS
IF ([A20 > A30]) THEN
CMS.A1 = CMS.A1;
SEQUENCE
WHILE ([JS2.A2 < A1] AND [JS2.A2 <=121]);
IF ([CMS.A2 + (JS2.A2 - 128)/A10 < 0]) THEN CMS.A2 = 0;
ELSE
CMS.A2= CMS.A2 + (JS2.A2 - 128)/A10;
ENDIF
delay(1);
IF ([JS2.A2 >= 121] AND [JS2.A2 < 135]) THEN
A1=0;
ELSE
IF ([JS2.A2 > A1]) THEN A1 = A1;
ELSE
A1= JS2.A2;
ENDIF
ENDIF
ENDSEQUENCE
A1=128;
SEQUENCE
WHILE ([JS2.A2 > A2] AND [JS2.A2 >= 135]);
IF ([CMS.A2 + (JS2.A2 - 128)/A10 > 255]) THEN CMS.A2 = 255;
ELSE
CMS.A2= CMS.A2 + (JS2.A2 - 128)/A10;
ENDIF
delay(1);
IF ([JS2.A2 >= 121] AND [JS2.A2 <= 135]) THEN
A2= 255;
ELSE
IF ([JS2.A2 < A2]) THEN A2 = A2;
ELSE
A2= JS2.A2;
ENDIF
ENDIF
ENDSEQUENCE
A2=128;
ENDIF
// X AXIS
IF ([A20 < A30]) THEN
CMS.A2 = CMS.A2;
SEQUENCE
WHILE ([JS2.A1 < A3] AND [JS2.A1 <=121]);
IF ([CMS.A1 + (JS2.A1 - 128)/A10 < 0]) THEN CMS.A1 = 0;
ELSE
CMS.A1= CMS.A1 + (JS2.A1 - 128)/A10;
ENDIF
delay(1);
IF ([JS2.A1 >= 121] AND [JS2.A1 < 135]) THEN
A3=0;
ELSE
IF ([JS2.A1 > A1]) THEN A3 = A3;
ELSE
A3= JS2.A1;
ENDIF
ENDIF
ENDSEQUENCE
A3=128;
SEQUENCE
WHILE ([JS2.A1 > A4] AND [JS2.A1 >= 135]);
IF ([CMS.A1 + (JS2.A1 - 128)/A10 > 255]) THEN CMS.A1 = 255;
ELSE
CMS.A1= CMS.A1 + (JS2.A1 - 128)/A10;
ENDIF
delay(1);
IF ([JS2.A1 >= 121] AND [JS2.A1 <= 135]) THEN
A4= 255;
ELSE
IF ([JS2.A1 < A2]) THEN A4 = A4;
ELSE
A4= JS2.A1;
ENDIF
ENDIF
ENDSEQUENCE
A4=128;
ENDIF


if (js1.b10) then cms.a2 = 128;  //button to center axis 2
endif

if (js1.b8) then cms.a1 = 128;   //button to center axis 1
endif
turns the mini stick into basically a two way rotary. you need to set a decent sized dead band as the mini sticks are notoriously bad at centering but this is just as responsive as my old x45s rotaries. the other thing you need to do is unmap the ministick completely (dx axis = none) then go into the cms controls tab and set cms 1 and cms 2 as cm device1 axis', mine are set to U and V axis.

everyone always complains about the rotaries, well, the above gives you rotaries.
Reply With Quote