Joysticks and Flight Simulators

I just bought myself a “Logitech Extreme 3D Pro” USB Joystick. One main reason I did so, was out of curiosity, and wanting to know whether it would work under Linux.

As it turns out, this joystick is readily recognized on my laptop ‘Klystron’ as a run-out-of-the-box, plug-and-play. Yet, I was also curious about the kernel module issue. As the reader may recall, ‘Klystron’ has Kernel version 4.4.0… What this means, is that the exact naming of the kernel modules on that machine may not coincide with yours. Further, having Kernel 4.4.0 may also be a main reason, for which this joystick just works out-of-the-box. I did read that on certain other machines, the user needs to ensure that correct kernel modules are loaded, manually.

In order to test the joystick first, I installed and then ran a program called ‘jstest-gtk‘, which is the GUI version of ‘jstest‘. I found with a simple ‘lsmod‘ command, much to my surprise, that the kernel module ‘joydev‘ was already loaded, before I even plugged in my new joystick, but that ‘usbhid‘ was not. Some quick inspection through the ‘jstest-gtk‘ utility explained why.

Apparently, the Hewlett-Packard laptop I am using has a built-in accelerometer, announced as though it was the first joystick, and this may be due to a feature which, under Windows, warns the laptop that it is falling, and which under Windows, tells the hard-drive to park its head, to minimize damage when actually dropped.

Under Linux, I cannot expect such a reaction, but now know that the accelerometer starts out mapped as a joystick with 3 axes.

The “Logitech Extreme 3D Pro” is a twist-stick, which refers to how one controls the rudder pedals. Once I plugged it in, the kernel modules ‘usbhid‘ and a few specialized ones also loaded.

What I did next, was to start a Debian application named “Flightgear“, of which I have v3.0.0 installed from the package manager, and I began my first trials at getting the engine of a simple Cessna started.

Even as I was testing the joystick using the other GUI tool, and then within Flightgear, I noticed a strange drawback to the way the joystick configures itself. It seems to have a rather large dead-zone. Once I got the Cessna moving, I noticed again, that with such a large dead-zone in the middle of my joystick ranges, it was a bit of a challenge just to force the aircraft to accelerate straight, down the center of the runway, and then to make a controlled ascent.

One fact which this experience betrays, is that I am a complete noob at flight simulators. This might actually be the 5th time I have actually tried one out in my life. Maybe.

One fact which I should note, is that if Flightgear is not challenging enough for some users, then it is also possible to buy a paid-for application named “X-Plane“, of which there is a Linux version, and of which I only possess the minimalistic, Android-tablet version. I found it was quite challenging enough for me, just to get this one little Cessna working. I will not be needing more, right away.

As for the dead-zones, the GUI tool ‘jstest-gtk‘ has a dialog that allows the joystick to be calibrated. This application reassures the user, that unplugging the joystick or rebooting will reset the calibration. Yet, it might attempt to screw things up. So I guess that I will just tolerate large dead-zones for now.

But that short Cessna flight was already quite fun! :-)