Jump to content

Recommended Posts

Posted (edited)

Another fantastic well thougth out part of the sim discovered just now.   I went to setup my G27 Racing pedals to use as the rudder and I think this is the first game that recognized one pedal push and automatically mapped the other in the opposite direction.   No messing around, no sliders to fiddle with, no additional programs to install.  Thanks 1C/777 - you made this the first game I've played to make it easy for this type of config.

Edited by AcesHigh
  • 2 weeks later...
Posted

I use the G25 pedals with a bodnar box and PPJoy/GlovePie. But the accelerator pedal has some issues and I am not sure if it is a GlovePie/PPJoy issue.

 

I hope someone can help me out with some advise or hints.

 

The pedals are set up correctly and do work under certain circumstances. I have to slightly press the left pedal to actually be able to move the right rudder, otherwise the input is not recognized. By pressing the left pedal too much, the left rudder suddenly jumps back to neutral (trying to move the rudder right). The right pedal works like a charm however.

 

Now I hope there is a way to either script a correction input for the left pedal, so I do not have to manually put pressure on the opposite rudder to move the right one. Otherwise I have to use ductape to build a physical end stop for the left pedal to give a constant output.

 

If both does not work, which rudder pedals you guys would reccomend? Not speaking of high end equippment, but something that works and enables a realistic leg work.

 

Thanks in advance!

=Xone_96=Allen_and_Heath
Posted

Another fantastic well thougth out part of the sim discovered just now.   I went to setup my G27 Racing pedals to use as the rudder and I think this is the first game that recognized one pedal push and automatically mapped the other in the opposite direction.   No messing around, no sliders to fiddle with, no additional programs to install.  Thanks 1C/777 - you made this the first game I've played to make it easy for this type of config.

Hi,

 

Bit away from the main theme, but:

Since you have installed Logy drivers on you pc, is it too much if I ask you for one experiment?

Can you please, try to assign the steering wheel of G27 as a ruder control (yeah just a test you don't need to fly with it more them 10-20min and no acrobatic pilotage as well)? And can you check please if we have FF effects on the ruder/wheel?

 

Thank you in advance!

Posted (edited)

I use G27 pedals for rudder, too, but I have a GlovePIE script I use to combine the throttle and clutch axes. I didn't try separately assigning throttle and clutch to rudder in-game last week, but if it worked before it doesn't work this week.

 

It looks like they've changed the input assignment, as I had to change my glovePIE script in order to rebind axes this week. I use temporary key maps to bind axes so the real axes don't interfere, and the sim seems to want a smooth movement in order to register an axis now.

 

 

Hi,

 

Bit away from the main theme, but:

Since you have installed Logy drivers on you pc, is it too much if I ask you for one experiment?

Can you please, try to assign the steering wheel of G27 as a ruder control (yeah just a test you don't need to fly with it more them 10-20min and no acrobatic pilotage as well)? And can you check please if we have FF effects on the ruder/wheel?

 

Thank you in advance!

 

I did try this, though, and I'm sorry to report that there's no force-feedback on the rudder.

 

 

Oh, if anyone wants my script, here it is. It's a continual work in progress and has a bunch of extraneous stuff in it, but it might have some helpful GlovePIE techniques for newbies:

 

 

// Various control tweaks for flight sims, using PPJoy
// G27:
// Combine Clutch and Throttle from G27 pedals into rudder axis
// Mirror the brake pedal and add a digital brake
// X52:
// Slider hysteresis
// Automatic Collective Brake (For Ka-50)
// FrankenHOTAS:
// Map trim hat to buttons for Falcon

PIE.FrameRate = 120hz;
var.sliderHysteresis = 0.02; // for smooth slider
var.throttleHysteresis = 0.02; // for collective brake
var.assignmode = 0;   // use arrow keys for axes


// In assign mode, the axes are driven by keys instead
// Intended for axis assignment menus
if (var.assignmode) {
   ppjoy1.Analog2 = 0.95*ppjoy1.Analog2 + 0.05*swallow(Key.Right) - 0.05*swallow(Key.Left); // rudder
   ppjoy1.Analog3 = 0.95*ppjoy1.Analog3 + 0.05*swallow(Key.Up) - 0.05*swallow(Key.Down);  // analog brake
   ppjoy1.Analog4 = 0.95*ppjoy1.Analog4 + 0.05*swallow(Key.X) - 0.05*swallow(Key.Z); // slider
   ppjoy1.Digital0 = swallow(Key.B);   // digital brake
   debug = ppjoy1.Analog4
} else {
// Get device numbers
if (Starting) {
   var.G27num = 0;
   var.X52num = 0;
   var.frankenNum = 0;
   var.i = 1;
   while (joystick[var.i].Name != "") {
       if (joystick[var.i].Name == "Logitech G27 Racing Wheel USB") {
           var.G27num = var.i;
       } else if (joystick[var.i].Name == "Saitek X52 Flight Controller") {
           var.X52num = var.i;
       } else if (joystick[var.i].Name == "Teensy Keyboard/Mouse/Joystick") {
           var.frankenNum = var.i;
       }
       var.i++;
   }
}

////////////////
// G27 Inputs //
////////////////
// Rudder on Z axis, toe brakes on X rotation
// Need to change this to use differential toe brakes based on rudder
if (var.G27num) {
   PPJoy1.Analog2 = 0.5*joystick[var.G27num].dial - 0.5*joystick[var.G27num].y;
   PPJoy1.Analog3 = -joystick[var.G27num].roll;

   PPJoy1.Digital0 = (joystick[var.G27num].roll < 0.5);
}

////////////////
// X52 Inputs //
////////////////
// Replicate slider, with hysteresis to avoid spiking
// Need to add a deadzone to avoid spikes at the edges
if (var.X52num) {
   if (joystick[var.X52num].slider != var.sliderLast) {
      var.sliderLastSign = sign(var.sliderChange);
      var.sliderChange = joystick[var.X52num].slider-var.sliderLast;
      var.sliderLast = joystick[var.X52num].slider;
      var.sliderError = var.slider - joystick[var.X52num].slider;

      if (joystick[var.X52num].slider = 1) {
         var.slider = 1;
         var.sliderLastSign = -1;
      } else if (joystick[var.X52num].slider = -1) {
         var.slider = -1;
         var.sliderLastSign = 1;
      } else if (sign(var.sliderChange) == var.sliderLastSign) {
         var.slider += var.sliderChange;
      } else if (abs(var.sliderError) > var.sliderHysteresis) {
         var.slider += var.sliderChange;
      }
   }
   PPJoy1.Analog4 = Var.slider
}

// send a PPJoy button press whenever the throttle is moved
// This lets you use the KA-50 altitude autopilot mode much more easily
if (var.X52num) {
   if (joystick[var.X52num].z != var.throttleLast) {
      var.throttleLastSign = sign(var.throttleChange);
      var.throttleChange = joystick[var.X52num].z-var.throttleLast;
      var.throttleLast = joystick[var.X52num].z;
      var.throttleError = var.throttle - joystick[var.X52num].z;

      if (sign(var.throttleChange) == var.throttleLastSign) {
         var.throttleStopCount = 0;
         PPJoy1.Digital1 = 1;
         var.throttle = joystick[var.X52num].z;
      } else if (abs(var.throttleError) > var.throttleHysteresis) {
         var.throttleStopCount = 0;
         PPJoy1.Digital1 = 1;
         var.throttle = joystick[var.X52num].z;
      }
   } else {
      if (var.throttleStopCount >= 12) then {
         PPJoy1.Digital1 = 0;
      } else {
         var.throttleStopCount++;
      }
   }
}

/////////////////////////
// FrankenHOTAS Inputs //
/////////////////////////
if (var.frankenNum) {
   PPJoy1.Digital2 = joystick[var.frankenNum].Pov1Up
   PPJoy1.Digital3 = joystick[var.frankenNum].Pov1Right
   PPJoy1.Digital4 = joystick[var.frankenNum].Pov1Down
   PPJoy1.Digital5 = joystick[var.frankenNum].Pov1Left
}

}

 

 

Edited by NonWonderDog
=Xone_96=Allen_and_Heath
Posted

I did try this, though, and I'm sorry to report that there's no force-feedback on the rudder.

 

 

Oh, if anyone wants my script, here it is. It's a continual work in progress and has a bunch of extraneous stuff in it, but it might have some helpful GlovePIE techniques for newbies:

 

 

 

// Various control tweaks for flight sims, using PPJoy
// G27:
// Combine Clutch and Throttle from G27 pedals into rudder axis
// Mirror the brake pedal and add a digital brake
// X52:
// Slider hysteresis
// Automatic Collective Brake (For Ka-50)
// FrankenHOTAS:
// Map trim hat to buttons for Falcon

PIE.FrameRate = 120hz;
var.sliderHysteresis = 0.02; // for smooth slider
var.throttleHysteresis = 0.02; // for collective brake
var.assignmode = 0;   // use arrow keys for axes


// In assign mode, the axes are driven by keys instead
// Intended for axis assignment menus
if (var.assignmode) {
   ppjoy1.Analog2 = 0.95*ppjoy1.Analog2 + 0.05*swallow(Key.Right) - 0.05*swallow(Key.Left); // rudder
   ppjoy1.Analog3 = 0.95*ppjoy1.Analog3 + 0.05*swallow(Key.Up) - 0.05*swallow(Key.Down);  // analog brake
   ppjoy1.Analog4 = 0.95*ppjoy1.Analog4 + 0.05*swallow(Key.X) - 0.05*swallow(Key.Z); // slider
   ppjoy1.Digital0 = swallow(Key.B);   // digital brake
   debug = ppjoy1.Analog4
} else {
// Get device numbers
if (Starting) {
   var.G27num = 0;
   var.X52num = 0;
   var.frankenNum = 0;
   var.i = 1;
   while (joystick[var.i].Name != "") {
       if (joystick[var.i].Name == "Logitech G27 Racing Wheel USB") {
           var.G27num = var.i;
       } else if (joystick[var.i].Name == "Saitek X52 Flight Controller") {
           var.X52num = var.i;
       } else if (joystick[var.i].Name == "Teensy Keyboard/Mouse/Joystick") {
           var.frankenNum = var.i;
       }
       var.i++;
   }
}

////////////////
// G27 Inputs //
////////////////
// Rudder on Z axis, toe brakes on X rotation
// Need to change this to use differential toe brakes based on rudder
if (var.G27num) {
   PPJoy1.Analog2 = 0.5*joystick[var.G27num].dial - 0.5*joystick[var.G27num].y;
   PPJoy1.Analog3 = -joystick[var.G27num].roll;

   PPJoy1.Digital0 = (joystick[var.G27num].roll < 0.5);
}

////////////////
// X52 Inputs //
////////////////
// Replicate slider, with hysteresis to avoid spiking
// Need to add a deadzone to avoid spikes at the edges
if (var.X52num) {
   if (joystick[var.X52num].slider != var.sliderLast) {
      var.sliderLastSign = sign(var.sliderChange);
      var.sliderChange = joystick[var.X52num].slider-var.sliderLast;
      var.sliderLast = joystick[var.X52num].slider;
      var.sliderError = var.slider - joystick[var.X52num].slider;

      if (joystick[var.X52num].slider = 1) {
         var.slider = 1;
         var.sliderLastSign = -1;
      } else if (joystick[var.X52num].slider = -1) {
         var.slider = -1;
         var.sliderLastSign = 1;
      } else if (sign(var.sliderChange) == var.sliderLastSign) {
         var.slider += var.sliderChange;
      } else if (abs(var.sliderError) > var.sliderHysteresis) {
         var.slider += var.sliderChange;
      }
   }
   PPJoy1.Analog4 = Var.slider
}

// send a PPJoy button press whenever the throttle is moved
// This lets you use the KA-50 altitude autopilot mode much more easily
if (var.X52num) {
   if (joystick[var.X52num].z != var.throttleLast) {
      var.throttleLastSign = sign(var.throttleChange);
      var.throttleChange = joystick[var.X52num].z-var.throttleLast;
      var.throttleLast = joystick[var.X52num].z;
      var.throttleError = var.throttle - joystick[var.X52num].z;

      if (sign(var.throttleChange) == var.throttleLastSign) {
         var.throttleStopCount = 0;
         PPJoy1.Digital1 = 1;
         var.throttle = joystick[var.X52num].z;
      } else if (abs(var.throttleError) > var.throttleHysteresis) {
         var.throttleStopCount = 0;
         PPJoy1.Digital1 = 1;
         var.throttle = joystick[var.X52num].z;
      }
   } else {
      if (var.throttleStopCount >= 12) then {
         PPJoy1.Digital1 = 0;
      } else {
         var.throttleStopCount++;
      }
   }
}

/////////////////////////
// FrankenHOTAS Inputs //
/////////////////////////
if (var.frankenNum) {
   PPJoy1.Digital2 = joystick[var.frankenNum].Pov1Up
   PPJoy1.Digital3 = joystick[var.frankenNum].Pov1Right
   PPJoy1.Digital4 = joystick[var.frankenNum].Pov1Down
   PPJoy1.Digital5 = joystick[var.frankenNum].Pov1Left
}

}

Thank you for the info!

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...