Thrustmaster Flightstick X

pluggin in

$ dmesg | tail
[   21.010553] usb 10-5.2.2: new full-speed USB device number 9 using ehci-pci
[   21.103981] usb 10-5.2.2: New USB device found, idVendor=044f, idProduct=b106
[   21.103990] usb 10-5.2.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[   21.103997] usb 10-5.2.2: Product: T.Flight Stick X
[   21.104003] usb 10-5.2.2: Manufacturer: Thrustmaster
[   21.106673] input: Thrustmaster T.Flight Stick X as /devices/pci0000:00/0000:00:13.2/usb10/10-5/10-5.2/10-5.2.2/10-5.2.2:1.0/0003:044F:B106.0005/input/input16
[   21.106941] hid-generic 0003:044F:B106.0005: input,hidraw4: USB HID v1.00 Joystick [Thrustmaster T.Flight Stick X] on usb-0000:00:13.2-5.2.2/input0

FGROOT/Input/joystick.xml

<?xml version="1.0"?>
<PropertyList>
	<js-named include="../../../../../custom/Input/Joystick/Thrustmaster/FlightStickX.xml"/>
	<js-named include="../../../../../custom/Input/Joystick/Saitek/Pro-Flight-Combat-Rudder-Pedals.xml"/>	
</PropertyList>

Functionality check under Flightgear

Aileron correct
Elevator inverted
Rudder correct
Pedal brakes correct
Throttle inactive
Flaps correct
Elevator-trim correct
View-elevation/View-deg correct
View-reset correct

Corrections in my FlightStickX.xml


<?xml version="1.0"?>
<PropertyList>
	<name>Thrustmaster T.Flight Stick X</name>
	<axis n="0">
		<desc>Aileron</desc>
		<name>Joystick longitudinal axis</name>
		<binding>
			<command>property-scale</command>
			<property>/controls/flight/aileron</property>
		</binding>
	</axis>
	
	<axis n="1">
		<desc>Elevator</desc>
		<name>Joystick lateral axis</name>
		<binding>
			<command>property-scale</command>
			<property>/controls/flight/elevator</property>
			<factor type="double">-1.0</factor>
		</binding>
	</axis>
	
	<axis n="2">
		<desc>Rudder</desc>
		<name>Joystick vertical axis</name>
	</axis>
	
	<axis n="3">
		<desc>Throttle</desc>
		<name>Joystick Throttle</name>
		<command>nasal</command>
		<script>
			<![CDATA[
				controls.throttleAxis();
			]]>
		</script>
	</axis>
	
	<axis n="4">
		<desc>View Direction</desc>
		<name>Coolie hat left-right</name>
		<low>
			<repeatable>true</repeatable>
			<binding>
				<command>property-adjust</command>
				<property>/sim/current-view/goal-heading-offset-deg</property>
				<step type="double">2.0</step>
			</binding>
		</low>
		<high>
			<repeatable>true</repeatable>
			<binding>
				<command>property-adjust</command>
				<property>/sim/current-view/goal-heading-offset-deg</property>
				<step type="double">-2.0</step>
			</binding>
		</high>
	</axis>
	
	<axis n="5">
		<desc>View Elevation</desc>
		<name>Coolie hat top-bottom</name>
		<low>
			<repeatable>true</repeatable>
			<binding>
				<command>property-adjust</command>
				<property>/sim/current-view/goal-pitch-offset-deg</property>
				<step type="double">2.0</step>
			</binding>
		</low>
		<high>
			<repeatable>true</repeatable>
			<binding>
				<command>property-adjust</command>
				<property>/sim/current-view/goal-pitch-offset-deg</property>
				<step type="double">-2.0</step>
			</binding>
		</high>
	</axis>
	
	<button n="1">
		<desc></desc>
		<name>Fire Button 2</name>
		<binding>
			<command>nasal</command>
			<script>
				<![CDATA[
					view.resetView();
				]]>
			</script>
		</binding>
	</button>
	
	<button n="2">
		<desc>Elevator trim up</desc>
		<name>Button 3</name>
		<repeatable type="bool">true</repeatable>
		<binding>
			<command>nasal</command>
			<script>controls.elevatorTrim(1)</script>
		</binding>
	</button>
	
	<button n="3">
		<desc>Elevator trim down</desc>
		<name>Button 4</name>
		<repeatable type="bool">true</repeatable>
		<binding>
			<command>nasal</command>
			<script>controls.elevatorTrim(-1)</script>
		</binding>
	</button>
	
	<button n="4">
		<desc>Flaps Down</desc>
		<name>Button 5</name>
		<binding>
			<command>nasal</command>
			<script>controls.flapsDown(1);</script>
		</binding>
		<mod-up>
			<binding>
				<command>nasal</command>
				<script>controls.flapsDown(0)</script>
			</binding>
		</mod-up>
	</button>
	
	<button n="5">
		<desc>Flaps Up</desc>
		<name>Button 6</name>
		<repeatable>false</repeatable>
		<binding>
			<command>nasal</command>
			<script>controls.flapsDown(-1)</script>
		</binding>
		<mod-up>
			<binding>
				<command>nasal</command>
				<script>controls.flapsDown(0)</script>
			</binding>
		</mod-up>
	</button>
</PropertyList>