joycond icon indicating copy to clipboard operation
joycond copied to clipboard

Pro controller gyro axes mixed up

Open zeusttu opened this issue 2 years ago • 6 comments

I managed to pair a Pro Controller, and it'r recognised mostly fine. Motion controls are also being recognised, but every motion is misinterpreted.

When testing from Steam's settings dialog (I read on the internet Steam used to use its own driver but it probably no longer does?):

  • When I rotate the controller within the horizontal plane, it gets interpreted as moving the left/right side up/down.
  • When I move the left/right side up/down, it gets interpreted as moving the front/back side up/down.
  • When I move the front/back side up/down, it gets interpreted as rotating the controller within the horizontal plane.

When testing with evtest:

  • Rotating the controller within the horizontal plane seems to correspond to the ABS_RZ axis.
  • Moving the left/right of the controller up/down seems to correspond to the ABS_RX axis.
  • Moving the front/back of the controller up/down seems to correspond to the ABS_RY axis.

I know these axes have official names, but I don't know which is which, so I hope I described each axis in an understandable way. I also don't know whether this is an issue with Joycond or with the underlying hid-nintendo driver, so if I created this issue for the wrong project, feel free to redirect me to the correct one.

Could there be a mismatch between Joycond and the underlying driver regarding the gyro axes? I think I read something somewhere about something like that happening in the past.

For what it's worth:

$ uname -r
6.5.5-arch1-1

$ pacman -Qi joycond-git
Name            : joycond-git
Version         : v0.1.0.r52.g5b590ec-1
Description     : Userspace daemon to combine joy-cons from the hid-joycon kernel driver
Architecture    : x86_64
URL             : https://github.com/DanielOgorchock/joycond
Licenses        : GPL3
Groups          : None
Provides        : joycond-git
Depends On      : libevdev
Optional Deps   : hid-nintendo-dkms: provides driver for pre-5.16 kernels
Required By     : None
Optional For    : None
Conflicts With  : joycond-git
Replaces        : None
Installed Size  : 120.84 KiB
Packager        : Unknown Packager
Build Date      : Sun 01 Oct 2023 02:29:35 PM CEST
Install Date    : Sun 01 Oct 2023 02:30:02 PM CEST
Install Reason  : Explicitly installed
Install Script  : Yes
Validated By    : None

The installed commit hash seems to be 5b590ecc9bca181d8bc21377e752126bc9180319, which matches the current state of the master branch. I don't have hid-nintendo-dkms installed because my kernel is recent enough to have it built-in.

zeusttu avatar Oct 01 '23 16:10 zeusttu

Further detail: the controller wasn't fully up-to-date when I created this issue, but it is now, and the issue persists with no change in the behaviour I'm seeing.

zeusttu avatar Oct 01 '23 17:10 zeusttu

I'm currently having the same issue. Have you found any workarounds?

Victor-Silva-3000 avatar Dec 23 '23 22:12 Victor-Silva-3000

same issue here. I use doyoko gamecube. nobara 39. gyro is not functioning

Tostibrand avatar Feb 01 '24 20:02 Tostibrand

image it seems to be an SDL thing, this results in correct motion data

I am also having this issue. Have you or anyone found a workaround?

DarBar92 avatar Apr 08 '24 14:04 DarBar92

My solution was to just drop joycond altogether and use the built-in driver in the Linux Kernel for the Nintendo Controllers.

I also had an issue related to the controller not being recognized in any application due to it being assigned (for some reason) to the root user. If anyone has a similar issue feel free to ask and I will try to elaborate as best I can.

Note that at the time I posted this I was using an older version of Manjaro KDE and after updating everything worked flawlessly.

Victor-Silva-3000 avatar Apr 10 '24 12:04 Victor-Silva-3000