atar-axis / xpadneo

Advanced Linux Driver for Xbox One Wireless Controller (shipped with Xbox One S)
https://atar-axis.github.io/xpadneo/
GNU General Public License v3.0
1.87k stars 110 forks source link

Xbox Wireless Controller Axis 2 and 5 calibration #410

Closed mariomaz87 closed 1 year ago

mariomaz87 commented 1 year ago

Version of xpadneo

v0.9-131-g0150346

Controller Model

Connection mode

Installed Software

Protocol Information

Please help us identify at which layer the problem can be found if you want to report mapping errors or if the controller fails to be detected:

Please describe how it is failing below in the next sections.

Severity / Impact

Describe the Bug

Axis 2 and Axis 5 (shoulder triggers) are always pressed

Steps to Reproduce

I added the controller via bluetooth on Linux Mint and I noticed a weird behaviour. Double checking with Jstest I noticed the bug above.

Expected Behavior

I expected the Axis 2 and 5 to be a 0 while not pressed.

Screenshots / GIFs / Videos

image

System Information

# uname -a
# xxd -c20 -g1 /sys/module/hid_xpadneo/drivers/hid:xpadneo/0005:045E:*/report_descriptor | tee >(cksum)

Controller and Bluetooth Information

Additional Context

mariomaz87 commented 1 year ago

Sorry, my bad. I can't reproduce the issue now, everything is working as expected!

kakra commented 1 year ago

Don't calibrate the Xbox controllers, they calibrate themselves: Just turn them on without pressing any triggers or pushing any sticks. If you feel like something is off, press each trigger two or three times, and rotate the stick axes a few times and it should be properly calibrated.

The old jsdev calibration interface is only there for old devices which are queried via a time-based analogue interface (like old-school game ports). Modern input controllers are almost always self-calibrating and report digital input values properly scaled.

The old jsdev interface doesn't even know about axes that have no center position but an idle position at zero. Look at evtest instead which properly knows the ranges.