Board index FlightGear Support Hardware

I'm an idiot that can't get my Logitech 3D Pro to work

Joysticks, pedals, monitors.

I'm an idiot that can't get my Logitech 3D Pro to work

Postby john3342 » Sat Aug 06, 2016 4:38 pm

Hi folks.

I'm new to Flightgear and having some issues trying to get things set up and working correctly.

The biggest issue is with my Logitech Extreme 3D Pro sensitivity. Now I've looked extensively around these forums and found countless posts from other members with the same issues (rudder on axis way too sensitive) and of course the relevant fixes by editing the xml file for the controller.

Now when I load up Flightgear and select File-Joystick Configuration I can see the file currently being used is located at C - program files - flightgear 2016.2.1 - data - input - joysticks - extreme-3d-pro.xml

When I edit this file with other known working files other users have uploaded and reload Flightgear I go back into File-Joystick Configuration, the file selected now is completely different and located elsewhere on my hard drive
c - Users - MY USERNAME - Appdata - Roaming - Flightgear.org - Input - Joysticks - Logitech Extreme 3D.xml

When I also edit that file and reload Flightgear, under File - Joystick Configuration the file has changed again to a default joystick file.

Am I being completely thick or something or am I just overlooking something?

All help greatly appreciated.

John.
john3342
 
Posts: 5
Joined: Sat Aug 06, 2016 4:23 pm

Re: I'm an idiot that can't get my Logitech 3D Pro to work

Postby Richard » Sat Aug 06, 2016 7:29 pm

The procedure I generally use is to

1. Open configuration dialog. If already using the %APPDATA%\Flightgear version skip to step 3.
2. Change a binding in the configuration; this should result in the default file being copied into %APPDATA%\Flightgear
3. Edit only the file in %APPDATA%.
4. Restart FG to get the changes. Sometimes Debug->Reload Input will work. Reload configuration I think resets to the default.
5. Keep a copy of the file you've edited - as it might get overwritten by reload configuration
Richard
 
Posts: 810
Joined: Sun Nov 02, 2014 11:17 pm
Version: Git
OS: Win10

Re: I'm an idiot that can't get my Logitech 3D Pro to work

Postby john3342 » Sat Aug 06, 2016 7:55 pm

Hi Richard. Thank-you for trying to help me with my problem. Unfortunately this isn't working as when I reload Flightgear under File-Joystick Configuration the file selected has changed with no option to manually choose a file.

Once the file in the APPdata section of my hard drive is changed, under file-joystick configuration the selected file changes to a xml file in my program files folder. If I then change this xml file the joystick configuration file selected in Flightgear changes again.
john3342
 
Posts: 5
Joined: Sat Aug 06, 2016 4:23 pm

Re: I'm an idiot that can't get my Logitech 3D Pro to work

Postby daveculp » Sat Aug 06, 2016 11:22 pm

Just a guess here - could it be that your changes result in an unreadable file, so FlightGear looks for another one?
User avatar
daveculp
 
Posts: 505
Joined: Sun Feb 24, 2013 2:50 am
Location: Las Vegas, USA
Callsign: DCulp
Version: 2017.3.1
OS: Ubuntu 17.10

Re: I'm an idiot that can't get my Logitech 3D Pro to work

Postby john3342 » Sun Aug 07, 2016 1:07 am

Quite possible...I'm not entirely sure on the procedure of editing such files - I'm using excel and saving as xml file type. I've been working on it for a couple of hours and its hopeless. It's impossible to maintain steady flight with my current control. Sometimes I seem to loose the use of my ailerons and elevators (plane goes into a 30 degree nose up attitude and with elevator control hard down to rectify the problem nothing happens. Returning the stick to centre position increases nose up attitude to 70 degrees or more, plane stalls and falls from the sky with the nose finally coming down 500 ft from the ground.

I've been trying some autopilot stuff too and find it quite frustrating too. I think I had everything set correctly for a NAV1 glidestream approach with a Cessna 550, plane started descending from 3000ft until it hit the water some 15 miles from the runway. Grr.

Another annoying thing is when flying with autopilot on if I disengage the system sometimes the plane sharply banks left and quickly becomes inverted and its hard to recover.
john3342
 
Posts: 5
Joined: Sat Aug 06, 2016 4:23 pm

Re: I'm an idiot that can't get my Logitech 3D Pro to work

Postby wkitty42 » Sun Aug 07, 2016 1:34 am

john3342 wrote in Sun Aug 07, 2016 1:07 am:Quite possible...I'm not entirely sure on the procedure of editing such files - I'm using excel and saving as xml file type.

nononononono... it is just a plain text file, really... you can edit it manually with a plain jane text editor... no, not a document editor... old school stuff like edlin, edit, notepad, notepad++, etc... just ensure that you handle the property tags as needed...
"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: 9161
Joined: Fri Feb 20, 2015 4:46 pm
Location: central NC, USA
Callsign: wk42
Version: git next
OS: Kubuntu 22.04

Re: I'm an idiot that can't get my Logitech 3D Pro to work

Postby Richard » Sun Aug 07, 2016 1:27 pm

john3342 wrote in Sat Aug 06, 2016 7:55 pm:Hi Richard. Thank-you for trying to help me with my problem. Unfortunately this isn't working as when I reload Flightgear under File-Joystick Configuration the file selected has changed with no option to manually choose a file.

Once the file in the APPdata section of my hard drive is changed, under file-joystick configuration the selected file changes to a xml file in my program files folder. If I then change this xml file the joystick configuration file selected in Flightgear changes again.


Use a text editor rather (xemacs, notepad, notepad+) to edit the XML file. If the XML file is not valid then FlightGear will overwrite it with the standard one from program files. You can edit the standard one in program files, but this is only recommended for advanced users as if you get it wrong you'll have no file to start with.

Flightgear will save a copy of the file when you change it. This is why I said to change something in the current configuration first.

This approach definitely works as it's the way I do it (under windows). So I suspect it's an invalid XML file that's the root of the problem.
Richard
 
Posts: 810
Joined: Sun Nov 02, 2014 11:17 pm
Version: Git
OS: Win10

Re: I'm an idiot that can't get my Logitech 3D Pro to work

Postby Richard » Sun Aug 07, 2016 10:54 pm

The following picture illustrates this; the first is before changing anything, then I just bound the first button to something, exited FG and restarted; note that the configuration file pathname is now coming from %APPDATA%
Image
Richard
 
Posts: 810
Joined: Sun Nov 02, 2014 11:17 pm
Version: Git
OS: Win10

Re: I'm an idiot that can't get my Logitech 3D Pro to work

Postby john3342 » Thu Aug 11, 2016 5:54 pm

Hi guys.

Thanks for your comments offering advice. I shall try editing the file with notepad instead and report back shortly :)
john3342
 
Posts: 5
Joined: Sat Aug 06, 2016 4:23 pm

Re: I'm an idiot that can't get my Logitech 3D Pro to work

Postby john3342 » Thu Aug 11, 2016 6:08 pm

Thank-you so much, it worked using notepad and should make a big difference to my flying experience.

Can I manually map other controls to other buttons such as reverse thrust? There is no option for this within the Flightgear Joystick Configuration menu.
john3342
 
Posts: 5
Joined: Sat Aug 06, 2016 4:23 pm

Re: I'm an idiot that can't get my Logitech 3D Pro to work

Postby Richard » Thu Aug 11, 2016 9:46 pm

john3342 wrote in Thu Aug 11, 2016 6:08 pm:Thank-you so much, it worked using notepad and should make a big difference to my flying experience.

Can I manually map other controls to other buttons such as reverse thrust? There is no option for this within the Flightgear Joystick Configuration menu.


You can do pretty much anything from the XML. Here's one of mine where I rebound two buttons to allow differential throttle control

Code: Select all
<?xml version="1.0"?>

<!--Based on the standard Logitech Extreme 3D Pro, but with modifications to suit me. Also allows differential engine control-->
<PropertyList>
  <name type="string">Logitech Extreme 3D Pro</name>
  <axis>
    <desc type="string">Aileron</desc>
    <binding>
      <command type="string">property-scale</command>
      <property type="string">/controls/flight/aileron</property>
      <dead-band type="double">0</dead-band>
      <factor type="double">1</factor>
      <offset type="double">0</offset>
    </binding>
  </axis>
  <axis n="1">
    <desc type="string">Elevator</desc>
    <binding>
      <command type="string">property-scale</command>
      <property type="string">/controls/flight/elevator</property>
      <dead-band type="double">0</dead-band>
      <factor type="double">-1</factor>
      <offset type="double">0</offset>
    </binding>
  </axis>
  <axis n="2">
    <desc type="string">Throttle2</desc>
      <binding>
          <command>property-scale</command>
          <property>/controls/engines/throttle-dmd</property>
          <offset type="double">-1.0</offset>
          <factor type="double">-0.5</factor>
      </binding>
      <binding>
          <command type="string">nasal</command>
          <script type="string">
              <![CDATA[
              #
              # this uses the two buttons on the joystick (next to the throttle control)
              # to allow independent control of the engines. The lower button toggles the left engine
              # and the upper the right engine
                    if (getprop("/controls/engines/engine[0]/active") == nil)
                        setprop("/controls/engines/engine[0]/active",1);
                    if (getprop("/controls/engines/engine[1]/active") == nil)
                        setprop("/controls/engines/engine[1]/active",1);

                    if (getprop("/controls/engines/engine[0]/active"))
                    setprop("/controls/engines/engine[0]/throttle", getprop("/controls/engines/throttle-dmd"));
                    if (getprop("/controls/engines/engine[1]/active"))
                    setprop("/controls/engines/engine[1]/throttle", getprop("/controls/engines/throttle-dmd"));
]]>
          </script>
          <module type="string">__js0</module>
      </binding>
  </axis>
  <axis n="3">
    <desc type="string">Rudder</desc>
    <binding>
      <command type="string">property-scale</command>
      <property type="string">/controls/flight/rudder</property>
      <dead-band type="double">0</dead-band>
      <factor type="double">1</factor>
      <offset type="double">0</offset>
    </binding>
  </axis>
  <axis n="4">
    <desc type="string">View Direction</desc>
    <number>
      <unix type="string">4</unix>
      <windows type="string">6</windows>
      <mac type="string">4</mac>
    </number>
    <low>
      <repeatable type="string">true</repeatable>
      <binding>
        <command type="string">property-adjust</command>
        <property type="string">/sim/current-view/goal-heading-offset-deg</property>
        <step type="double">5</step>
        <offset type="double">1</offset>
      </binding>
    </low>
    <high>
      <repeatable type="string">true</repeatable>
      <binding>
        <command type="string">property-adjust</command>
        <property type="string">/sim/current-view/goal-heading-offset-deg</property>
        <step type="double">-5</step>
        <offset type="double">1</offset>
      </binding>
    </high>
    <binding n="0" type="string">
    </binding>
    <binding n="0">
      <setting type="double">0</setting>
    </binding>
  </axis>
  <axis n="5">
    <desc type="string">View Elevation</desc>
    <number>
      <unix type="string">5</unix>
      <windows type="string">7</windows>
      <mac type="string">5</mac>
    </number>
    <low>
      <repeatable type="string">true</repeatable>
      <binding>
        <command type="string">property-adjust</command>
        <property type="string">/sim/current-view/goal-pitch-offset-deg</property>
        <step type="double">5</step>
        <offset type="double">1</offset>
      </binding>
    </low>
    <high>
      <repeatable type="string">true</repeatable>
      <binding>
        <command type="string">property-adjust</command>
        <property type="string">/sim/current-view/goal-pitch-offset-deg</property>
        <step type="double">-5</step>
        <offset type="double">1</offset>
      </binding>
    </high>
    <binding n="0" type="string">
    </binding>
    <binding n="0">
      <setting type="double">0</setting>
    </binding>
  </axis>
  <button>
    <desc type="string">Trigger</desc>
    <repeatable type="string">false</repeatable>
    <binding>
      <command type="string">nasal</command>
      <script type="string">controls.trigger(1);</script>
    </binding>
    <mod-up>
      <binding>
        <command type="string">nasal</command>
        <script type="string">controls.trigger(0);</script>
      </binding>
    </mod-up>
  </button>
  <button n="1">
    <desc type="string">Custom</desc>
    <repeatable type="string">false</repeatable>
    <binding>
      <command type="string">property-adjust</command>
      <property type="string">sim/model/f15/controls/armament/weapon-selector</property>
      <step type="string">1</step>
      <min type="string">0</min>
      <max type="string">3</max>
      <repeat type="string">false</repeat>
      <wrap type="string">true</wrap>
      <offset type="double">1</offset>
    </binding>
  </button>
  <button n="2">
    <desc type="string">Elevator Trim Down</desc>
    <binding>
      <command type="string">nasal</command>
      <script type="string">controls.elevatorTrim(1);</script>
    </binding>
    <repeatable type="double">1</repeatable>
  </button>
  <button n="3">
    <desc type="string">View Decrease</desc>
    <binding>
      <command type="string">nasal</command>
      <script type="string">view.decrease(0.75);</script>
    </binding>
    <repeatable type="double">1</repeatable>
  </button>
  <button n="4">
    <desc type="string">Elevator Trim Up</desc>
    <binding>
      <command type="string">nasal</command>
      <script type="string">controls.elevatorTrim(-1);</script>
    </binding>
    <repeatable type="double">1</repeatable>
  </button>
  <button n="5">
    <desc type="string">View Increase</desc>
    <binding>
      <command type="string">nasal</command>
      <script type="string">view.increase(0.75);</script>
    </binding>
    <repeatable type="double">1</repeatable>
  </button>
  <button n="6">
    <desc type="string">Flaps Down</desc>
    <repeatable type="string">false</repeatable>
    <binding>
      <command type="string">nasal</command>
      <script type="string">controls.flapsDown(1);</script>
    </binding>
    <mod-up>
      <binding>
        <command type="string">nasal</command>
        <script type="string">controls.flapsDown(0);</script>
      </binding>
    </mod-up>
  </button>
  <button n="7">
    <desc type="string">Flaps Up</desc>
    <repeatable type="string">false</repeatable>
    <binding>
      <command type="string">nasal</command>
      <script type="string">controls.flapsDown(-1);</script>
    </binding>
    <mod-up>
      <binding>
        <command type="string">nasal</command>
        <script type="string">controls.flapsDown(0);</script>
      </binding>
    </mod-up>
  </button>
  <button n="8">
    <desc type="string">Gear Down</desc>
    <repeatable type="string">false</repeatable>
    <binding>
      <command type="string">nasal</command>
      <script type="string">controls.gearDown(1);</script>
    </binding>
    <mod-up>
      <binding>
        <command type="string">nasal</command>
        <script type="string">controls.gearDown(0);</script>
      </binding>
    </mod-up>
  </button>
  <button n="9">
    <desc type="string">Gear Up</desc>
    <repeatable type="string">false</repeatable>
    <binding>
      <command type="string">nasal</command>
      <script type="string">controls.gearDown(-1);</script>
    </binding>
    <mod-up>
      <binding>
        <command type="string">nasal</command>
        <script type="string">controls.gearDown(0);</script>
      </binding>
    </mod-up>
  </button>
    <button n="10">
        <desc type="string">LeftTHrottle</desc>
        <repeatable type="string">false</repeatable>
        <binding>
            <command>property-toggle</command>
            <property>/controls/engines/engine[0]/active</property>
        </binding>
        <binding>
            <command type="string">nasal</command>
            <script type="string">
                <![CDATA[
                    if (getprop("/controls/engines/engine[0]/active"))
{
#setprop("/controls/engines/engine[0]/throttle", getprop("/controls/engines/throttle-dmd"));
                    gui.popupTip("Left Engine Control Active");
}
else
                    gui.popupTip("Left Engine Control Inactive");
                    if (getprop("/controls/engines/engine[1]/active"))
                    setprop("/controls/engines/engine[1]/throttle", getprop("/controls/engines/throttle-dmd"));
]]>
            </script>
            <module type="string">__js0</module>
        </binding>
    </button>
    <button n="11">
        <desc type="string">RightThrottle</desc>
        <repeatable type="string">false</repeatable>
        <binding>
            <command>property-toggle</command>
            <property>/controls/engines/engine[1]/active</property>
        </binding>
        <binding>
            <command type="string">nasal</command>
            <script type="string">
                <![CDATA[
                    if (getprop("/controls/engines/engine[0]/active"))
setprop("/controls/engines/engine[0]/throttle", getprop("/controls/engines/throttle-dmd"));

if (getprop("/controls/engines/engine[1]/active"))
{
#setprop("/controls/engines/engine[1]/throttle", getprop("/controls/engines/throttle-dmd"));
                    gui.popupTip("Right Engine Control Active");
}
else
                    gui.popupTip("Right Engine Control Inactive");
]]>
            </script>
            <module type="string">__js0</module>
        </binding>
    </button>
</PropertyList>
Richard
 
Posts: 810
Joined: Sun Nov 02, 2014 11:17 pm
Version: Git
OS: Win10


Return to Hardware

Who is online

Users browsing this forum: No registered users and 4 guests

cron