Recently I've purchased a USB gamepad with analog sticks which shows up as a HID joystick. Testing it with jstest /dev/input/js0 works a treat. All axes and buttons function properly. There is only one minor problem: the dead band is huge. The jstest program doesn't show any movement on axis 0, for example, until it goes beyond -5743. However, axis 2 (which is apparently linked to the same axis) starts showing data as soon as it reaches -338. Both have the same -32767 .. 32768 range. Clearly this has something to do with a software deadband, but for the life of me, I can't figure out where to adjust this (googled the better part of a day away). I've already tried jscal, but this doesn't help.
Example output of jscal (after calibration):
Code:
Setting correction to:
Correction for axis 0: broken line, precision: 0.
Coeficients: 128, 128, 4194176, 4227201
Correction for axis 1: broken line, precision: 0.
Coeficients: 128, 128, -4227201, -4194176
Correction for axis 2: broken line, precision: 3.
Coeficients: 137, 137, 3918646, 4549615
Correction for axis 3: broken line, precision: 0.
Coeficients: 128, 128, 4194176, 4227201
Correction for axis 4: broken line, precision: 0.
Coeficients: 128, 128, -4227201, -4194176
Correction for axis 5: broken line, precision: 0.
Coeficients: 0, 0, 536854528, 536854528
Correction for axis 6: broken line, precision: 0.
Coeficients: 0, 0, -536854528, -536854528
What do these coefficients mean? And how can I tell the kernel or the joydev driver to PLEASE use a smaller deadzone (or none at all?)
Any advice will be greatly appreciated.