Board index FlightGear Support Hardware

about too sensitive joystick (FGFS on Ubuntu 18.04)

Joysticks, pedals, monitors.

Re: about too sensitive joystick (FGFS on Ubuntu 18.04)

Postby Krisbee » Sun Jun 16, 2019 6:36 pm

Oh, and while I'm here... I DID discover if I just used <power>2</power> that it DID work. For my rudders, I ended up using the power factor of 2. So you can use the squared or power function if you want to experiment. I did find that 3 or more on the joystick made it too insensitive - 2 was just right - sensitive without being too much.
Krisbee
 
Posts: 4
Joined: Fri Jun 14, 2019 1:34 am

Re: about too sensitive joystick (FGFS on Ubuntu 18.04)

Postby mokiman » Wed Jun 19, 2019 1:17 am

I'm having the same problem (same joystick) on Linux Mint 19.1 (based on Ubuntu 18.04). I've tried every edit I've read here and in the wiki on editing the joystick's xml file to decrease sensitivity but to absolutely no effect. FG seems to ignore the changes entirely. I've tried restarting the program, "refreshing" the joystick in joystick configuration, and reloading "input" from the debug screen. Nothing works. It's so sensitive the C172 is barely flyable. Any idea why the changes to the xml file have no effect?
mokiman
 
Posts: 3
Joined: Wed Jun 19, 2019 1:05 am

Re: about too sensitive joystick (FGFS on Ubuntu 18.04)

Postby wkitty42 » Wed Jun 19, 2019 1:27 am

@mokiman: are you editing the right xml file? there is one to start with but if you customize it, a copy is placed elsewhere and found first when loading... can you say where the file is that you've been editing? full path, please...
"You get more air close to the ground," said Angalo. "I read that in a book. You get lots of air low down, and not much when you go up."
"Why not?" said Gurder.
"Dunno. It's frightened of heights, I guess."
User avatar
wkitty42
 
Posts: 9146
Joined: Fri Feb 20, 2015 4:46 pm
Location: central NC, USA
Callsign: wk42
Version: git next
OS: Kubuntu 20.04

Re: about too sensitive joystick (FGFS on Ubuntu 18.04)

Postby mokiman » Wed Jun 19, 2019 5:18 pm

I'm editing the file /home/****/.fgfs/Input/Joysticks/Logitech-Logitech-Extreme-3D.xml. I wondered about the possibility of there being another xml file the software actually uses but I've been unable to locate it. Don't know exactly what to search for.

Thanks.
mokiman
 
Posts: 3
Joined: Wed Jun 19, 2019 1:05 am

Re: about too sensitive joystick (FGFS on Ubuntu 18.04)

Postby wkitty42 » Wed Jun 19, 2019 6:59 pm

that is the correct one for you to be editing... the other one is in fgdata and is the default for system wide use... you're not supposed to edit that one...

if you look in your fgfs.log file, you should see which joystick xml file is being loaded...

also, once you edit it, do NOT use the in-sim joystick configurator... AFAIK, it will reset to the default file and then save the changes but i'm not positive about that... i am aware that some custom code can be lost but i don't know why...

lastly, you might want to load your xml into a browser or xml editor and ensure that it has valid syntax...
"You get more air close to the ground," said Angalo. "I read that in a book. You get lots of air low down, and not much when you go up."
"Why not?" said Gurder.
"Dunno. It's frightened of heights, I guess."
User avatar
wkitty42
 
Posts: 9146
Joined: Fri Feb 20, 2015 4:46 pm
Location: central NC, USA
Callsign: wk42
Version: git next
OS: Kubuntu 20.04

Re: about too sensitive joystick (FGFS on Ubuntu 18.04)

Postby mokiman » Wed Jun 19, 2019 9:02 pm

Thanks for the tip on the .log file. That told me what was wrong. I had made a backup copy of the original .xml file before I started editing with the same name but just added (backup), not realizing that FG didn't care what it was named, apparently. FG was loading the BACKUP, not my modified file.

BTW, Octal450's script posted on the first page of this thread works sweet! You can adjust the two parameters and get pretty much any kind of response curve and limit you want. Nice!
mokiman
 
Posts: 3
Joined: Wed Jun 19, 2019 1:05 am

Re: about too sensitive joystick (FGFS on Ubuntu 18.04)

Postby wkitty42 » Wed Jun 19, 2019 9:20 pm

i'm glad you found the problem and got your controller WAD* :)











* Working As Desired
"You get more air close to the ground," said Angalo. "I read that in a book. You get lots of air low down, and not much when you go up."
"Why not?" said Gurder.
"Dunno. It's frightened of heights, I guess."
User avatar
wkitty42
 
Posts: 9146
Joined: Fri Feb 20, 2015 4:46 pm
Location: central NC, USA
Callsign: wk42
Version: git next
OS: Kubuntu 20.04

Re: about too sensitive joystick (FGFS on Ubuntu 18.04)

Postby sim » Fri Jul 19, 2019 1:34 pm

Try this Thrustmaster Extreme 3D Pro configured by Poppy. :wink:
Code: Select all
<?xml version="1.0"?>
<!--

************************************************************************
* Bindings for Logitech Extreme Digital 3D Pro joystick.
*    polly for GScott  Trigger Modifier code orig: A Gilderstan
*
* Rename fgdata/Input/Joysticks/extreme-3d-pro.xml to extreme-3d-pro.xml-bkup     
* Rename this file and place in fgdata/Input/Joysticks/extreme-3d-pro.xml
*
* Axis 0: Stick Left/Right Ailerons
* Axis 1: Stick Fwd/Back   Elevator
* Axis 2  Sitck Twist      Rudder
* Axis 3  Slider           Throttle
* Axes 4/5 Hat             Elev/Aileron Trim
*
*
* |**  LAYOUT TOP VIEW  **| |************ ASSIGNMENT ********************|
*
*             Btn 1         Modifier for extra button assignments   
*           (Trigger)
*
*      Btn 5   Hat   Btn 6  Btn5/6: L/R Brake  Hat: Pitch/Roll Trim  +Trig:Pan View
*
*      Btn 3         Btn 4: Left / Right Rudder trim
*
*    Btn 2                  Center to Preferred View  +Trig:AutoTrim
*
*  Btn 7  Btn 8      Btn7:  Flaps Up +Trig:Autostart Btn 8: Prop Fine +Trig: Mix Rich
*
*  Btn 9  Btn 10     Btn 9: Seat Dn +Trig:Up        Btn 10: ~Pkng Bke +Trig: ~Gear
*
*  Btn 11 Btn 12    Btn 11: Flaps Dn                Btn 12: Prop Coarse +Trig: Mix Lean
*
************************************************************************
$Id$
-->
<PropertyList>
<script/>
<name>Logitech Logitech Extreme 3D Pro</name>
<name>Logitech Extreme 3D Pro</name>
<name>Logitech Extreme 3D Pro USB</name>
<name>Logitech Extreme 3D Pro USB</name>
<name>Logitech Extreme 3D</name>
<name>Logitech Logitech Extreme 3D</name>
 <!--
  data and script block txlates trig button into modifier 
-->
 <!--                         and gets model name for variants    -->
<data>
<modeTrig type="bool">false</modeTrig>
</data>
<nasal>
<script>
<![CDATA[
var self = cmdarg().getParent(); var data = self.getNode("data"); var modeTrig = data.getNode("modeTrig"); var model = getprop("/sim/aircraft"); if ( model == "c172p") model = "c172"; if ( model == "c310dpm-3d") model = "c310"; if ( model == "dhc2f") model = "dhc2"; if ( model == "pa24-250") model = "pa24"; if ( model == "pa28-161") model = "pa28"; if ( model == "pa28-wip") model = "pa28"; if ( model == "WarriorII-160") model = "pa28"; if ( model == "WarriorII-180") model = "pa28"; if ( model == "SenecaII") model = "pa34"; var trace = func(str) { # Uncomment the line below to trace button presses. # print("extreme-3dpro.xml : " ~ str); }
]]>
</script>
</nasal>
 <!--
  For each axis or button the section between binding - /binding  tags         
-->
 <!--
    specifies the axis or button's action.  There may also be a binding       
-->
 <!--
    for action performed when key is released.  Some sections specify         
-->
 <!--
    standard flightgear  commands, other actions specify nasal interpreter     
-->
 <!--
    scripts which may need wrapping in CDATA tags to escape special characters
-->
 <!--
  For tags: button n="x": "x" does not corresond to Makers Labelling
-->
<axis n="0">
<desc>Aileron</desc>
<binding>
<command>property-scale</command>
<property>controls/flight/aileron</property>
<offset type="double">-0.000</offset>
<factor type="double">1</factor>
<power type="int">2</power>
</binding>
<dead-band type="double">0.000001</dead-band>
</axis>
<axis n="1">
<desc>Elevator</desc>
<direction>down/forward</direction>
<binding>
<command>property-scale</command>
<property>controls/flight/elevator</property>
<offset type="double">-0.000</offset>
<factor type="double">-1</factor>
<power type="int">2</power>
</binding>
<dead-band type="double">0.000001</dead-band>
</axis>
<axis>
<number>
<unix>2</unix>
<windows>3</windows>
<mac>2</mac>
</number>
<desc>Rudder</desc>
<binding>
<command>property-scale</command>
<property>controls/flight/rudder</property>
<factor type="double">1</factor>
<power type="int">2</power>
<offset type="double">-0.000</offset>
</binding>
<dead-band type="double">0.000001</dead-band>
</axis>
<axis>
<number>
<unix>3</unix>
<windows>2</windows>
<mac>3</mac>
</number>
<desc>Throttle</desc>
<binding>
<command>nasal</command>
<script>controls.throttleAxis()</script>
</binding>
</axis>
 <!--  Trigger Button  -->
<button n="0">
<name>Trigger</name>
<desc>Trigger mode '+Trg'; +Shift: trigger</desc>
<binding>
<command>nasal</command>
<script>
trace("Trig Bttn bit 0 press"); modeTrig.setIntValue(1);
</script>
</binding>
<mod-up>
<binding>
<command>nasal</command>
<script>
trace("Trig Bttn bit 0 release"); modeTrig.setIntValue(0); controls.trigger(0);
</script>
</binding>
</mod-up>
</button>
 <!--
  Dflt Brakes replaces with Trigger modifier

  <desc>Brakes</desc>
  <binding>
   <command>nasal</command>
   <script>controls.applyBrakes(1)</script>
  </binding>
  <mod-up>
   <binding>
    <command>nasal</command>
    <script>controls.applyBrakes(0)</script>
   </binding>
  </mod-up>
 </button>
-->
 <!--  Axis 4. Hat left/right  -->
<axis>
<desc>Aileron Trim; +Trg: Pan View</desc>
<number>
<unix>4</unix>
<windows>6</windows>
<mac>4</mac>
</number>
<low>
<repeatable type="bool">true</repeatable>
<interval-sec type="double">0.1</interval-sec>
<binding>
<command>nasal</command>
<script>
<![CDATA[
if (! modeTrig.getBoolValue()) { setprop("controls/flight/aileron-trim", (getprop("controls/flight/aileron-trim") -0.001)); } else { setprop("/sim/current-view/heading-offset-deg", (getprop("/sim/current-view/heading-offset-deg") + 4.000)); }
]]>
</script>
</binding>
</low>
<high>
<repeatable type="bool">true</repeatable>
<interval-sec type="double">0.1</interval-sec>
<binding>
<command>nasal</command>
<script>
<![CDATA[
if (! modeTrig.getBoolValue()) { setprop("controls/flight/aileron-trim", (getprop("controls/flight/aileron-trim") +0.001)); } else { setprop("/sim/current-view/heading-offset-deg", (getprop("/sim/current-view/heading-offset-deg") - 4.000)); }
]]>
</script>
</binding>
</high>
</axis>
 <!--  Axis 5. Hat Fwd/Back  -->
<axis>
<desc>Elevator Trim; +Trg: Tilt view</desc>
<number>
<unix>5</unix>
<windows>7</windows>
<mac>5</mac>
</number>
<low>
<repeatable type="bool">true</repeatable>
<interval-sec type="double">0.1</interval-sec>
<binding>
<command>nasal</command>
<script>
<![CDATA[
if (! modeTrig.getBoolValue()) { setprop("controls/flight/elevator-trim", (getprop("controls/flight/elevator-trim") +0.001)); } else { setprop("/sim/current-view/pitch-offset-deg", (getprop("/sim/current-view/pitch-offset-deg") - 1.500)); }
]]>
</script>
</binding>
</low>
<high>
<repeatable type="bool">true</repeatable>
<interval-sec type="double">0.1</interval-sec>
<binding>
<command>nasal</command>
<script>
<![CDATA[
if (! modeTrig.getBoolValue()) { setprop("controls/flight/elevator-trim", (getprop("controls/flight/elevator-trim") -0.001)); } else { setprop("/sim/current-view/pitch-offset-deg", (getprop("/sim/current-view/pitch-offset-deg") + 1.500)); }
]]>
</script>
</binding>
</high>
</axis>
<button n="1">
<desc>Btn2 Pref View +Trig: Autotrim</desc>
<repeatable>false</repeatable>
<binding>
<command>nasal</command>
 <!--
 Once: Adjust preferred view then copy values from props tree to data below
-->
<script>
<![CDATA[
if (! modeTrig.getBoolValue()) { if ( ( model == "c172") or ( model == "pa28")) { setprop("/sim/current-view/field-of-view", 55.875); setprop("/sim/current-view/heading-offset-deg", 0.000); setprop("/sim/current-view/pitch-offset-deg", -18.970); setprop("/sim/current-view/x-offset-m", -0.300); setprop("/sim/current-view/y-offset-m", 0.350); setprop("/sim/current-view/z-offset-m", 0.425); print("view c172-pa28"); } } else { aircraft.autotrim.start(); }
]]>
</script>
</binding>
<mod-up>
<binding>
<command>nasal</command>
<script>
if (modeTrig.getBoolValue()) { aircraft.autotrim.stop(); }
</script>
</binding>
</mod-up>
</button>
<button n="2">
<desc>Btn3 Rddr trim Left </desc>
<repeatable type="bool">true</repeatable>
<binding>
<command>property-adjust</command>
<property>controls/flight/rudder-trim</property>
<step type="double">-0.005</step>
</binding>
</button>
<button n="3">
<desc>Btn4 Rddr trim Right</desc>
<repeatable type="bool">true</repeatable>
<binding>
<command>property-adjust</command>
<property>controls/flight/rudder-trim</property>
<step type="double">+0.005</step>
</binding>
</button>
<button n="4">
<desc>Btn5 Left Brake</desc>
<repeatable>false</repeatable>
<binding>
<command>nasal</command>
<script>
trace("Btn5 press "); if (!modeTrig.getBoolValue()) { controls.applyBrakes(1, -1); } else { }
</script>
</binding>
<mod-up>
<binding>
<command>nasal</command>
<script>
if (! modeTrig.getBoolValue()) { controls.applyBrakes(0, -1); } else { }
</script>
</binding>
</mod-up>
</button>
<button n="5">
<desc>Btn6 Right Brake</desc>
<repeatable>false</repeatable>
<binding>
<command>nasal</command>
<script>
trace("Bttn 6 press "); if (!modeTrig.getBoolValue()) { controls.applyBrakes(1, 1); } else { }
</script>
</binding>
<mod-up>
<binding>
<command>nasal</command>
<script>
if (! modeTrig.getBoolValue()) { controls.applyBrakes(0, 1); } else { }
</script>
</binding>
</mod-up>
</button>
<button n="6">
<desc>Btn7 Flaps Up</desc>
<repeatable>false</repeatable>
<binding>
<command>nasal</command>
<script>
<![CDATA[
trace("Btn7 press "); if (!modeTrig.getValue()) { controls.flapsDown(-1); } if (modeTrig.getValue()) { if ( model == "c172") { c172p.autostart() } }
]]>
</script>
</binding>
</button>
<button n="7">
<desc>Btn8 PropFine +Trig: Mix Rich </desc>
<repeatable>false</repeatable>
<binding>
<command>nasal</command>
<script>
<![CDATA[
if (! modeTrig.getBoolValue()) { setprop("controls/engine/propeller-pitch", ((getprop("controls/engine/propeller-pitch") or 0) - 0.100)); } else { setprop("controls/engines/current-engine/mixture", ((getprop("controls/engines/current-engine/mixture") or 0) +0.100)); }
]]>
</script>
</binding>
</button>
<button n="8">
<desc>Btn9 Seat Dn +Trig: Seat up </desc>
<repeatable>false</repeatable>
<binding>
<command>nasal</command>
<script>
<![CDATA[
if (! modeTrig.getBoolValue()) { setprop("/sim/current-view/y-offset-m", ((getprop("/sim/current-view/y-offset-m") or 0) - 0.010) ); } else { setprop("/sim/current-view/y-offset-m", ((getprop("/sim/current-view/y-offset-m") or 0) + 0.010) ); }
]]>
</script>
</binding>
</button>
<button n="9">
<desc>Btn10 ~PkngBrake +Trig: ~Gear </desc>
<repeatable>false</repeatable>
<binding>
<command>nasal</command>
<script>
<![CDATA[
if (! modeTrig.getBoolValue()) { controls.parkingBrakeToggle(1); } else { if ( (!getprop("/gear/gear[1]/wow")) and (!getprop("/gear/gear[2]/wow")) and (!getprop("/gear/gear[3]/wow"))) { controls.gearToggle(1); } }
]]>
</script>
</binding>
</button>
<button n="10">
<desc>Btn11 Flaps Down</desc>
<repeatable>false</repeatable>
<binding>
<command>nasal</command>
<script>
<![CDATA[
trace("Btn7 press "); if (!modeTrig.getValue()) { controls.flapsDown( 1); } if (modeTrig.getValue()) { }
]]>
</script>
</binding>
</button>
<button n="11">
<desc>Btn12 Prop Coarse +Trig: Mix Lean</desc>
<repeatable>false</repeatable>
<binding>
<command>nasal</command>
<script>
<![CDATA[
if (! modeTrig.getBoolValue()) { setprop("controls/engine/propeller-pitch", ((getprop("controls/engine/propeller-pitch") or 0) + 0.100)); } else { setprop("controls/engines/current-engine/mixture", ((getprop("controls/engines/current-engine/mixture") or 0) -0.100)); }
]]>
</script>
</binding>
</button>
</PropertyList>
User avatar
sim
 
Posts: 1431
Joined: Tue Jun 30, 2009 3:13 pm
Location: Shropshire England
Callsign: Fly4Fun
Version: 0.9.10 up
OS: 64 Win 10 HD6450

Previous

Return to Hardware

Who is online

Users browsing this forum: No registered users and 4 guests