Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gulikit KK3 Max rumble issues #490

Open
14 of 41 tasks
rishabh-os opened this issue Aug 8, 2024 · 4 comments
Open
14 of 41 tasks

Gulikit KK3 Max rumble issues #490

rishabh-os opened this issue Aug 8, 2024 · 4 comments

Comments

@rishabh-os
Copy link

Version of xpadneo

v0.9-172-gfd0cd48

Controller Model

  • Xbox One S controller
  • Xbox Elite 2 controller
  • Xbox Series X|S controller
  • Other: Gulikit KK3 Max

Connection mode

  • Bluetooth connection
  • USB cable (not yet supported)
  • Xbox Dongle connection (not yet supported)

Installed Software

  • Anti-Micro (may affect button mappings)
  • OpenRGB (may mess up mappings and rumble stability)
  • Steam Input (enabled by default via Steam Desktop client)
  • Steam Link (usually via Raspberry Pi or other micro computers)
  • devices with QMK firmware (may affect udev rules, similar to OpenRGB)
  • netstick (shares input devices via network similar to Steam Link)
  • xboxdrv (user-space gamepad driver)
  • xone (kernel-space gamepad driver using the Xbox dongle or USB)
  • xow (alternative driver using the Xbox dongle)

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:

  • Steam Proton games are having issues
  • Steam Linux-native games are having issues
    • I don't use Steam or did not try
  • games running through Lutris, wine and/or Bottles are having issues
    • I don't use Lutris, Bottles, wine or did not try
  • Linux-native games are having issues
    • I don't use native games or did not try
  • Other software is having issues (describe software and issues below)
  • Running evtest is showing issues (describe the issues below)
    • Keep in mind that BTN_NORTH and BTN_WEST are intentionally swapped
  • Running jstest is showing issues (describe the issues below)
    • I don't have this tool or don't know how to use it
  • Running gamepad-tool is showing issues (post console output below)
    • I don't have this tool

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

Severity / Impact

  • I've read the docs and the bug reporting instructions
  • I've applied the latest firmware update to the controller
  • I've tried disabling or running without above mentioned software
  • It does not work at all
  • It used to work in a previous version
  • It mostly works but sometimes it doesn't
  • I found a work-around
  • I probably didn't figure it all out but it's too early to give up
  • I don't know how to ...
  • It's too complicated
  • Fantastic work but ...
  • I can code and I want to help

Describe the Bug

I am able to use the controller in BT mode without xpadneo. However, rumble does not work. In an attempt to get rumble working, I installed xpadneo. However, upon connecting to the controller, it keeps rumbling forever and does not stop.

Using the fixes in #469, I am able to get the infinite rumble to stop. However, rumble continues to not work in Steam games.

The rumble functionality only seems to work if I connect the controller with the included USB dongle.

Steps to Reproduce

  1. Install xpadneo as indicated in the README.
  2. Pair/connect the controller in Windows (X-input) mode

Expected Behavior

I expect the controller to only vibrate for the welcome vibration and not vibrate forever. I also expect the vibration to work in games.

System Information

# uname -a
Linux rishabh-os 6.10.3-arch1-1 #1 SMP PREEMPT_DYNAMIC Sun, 04 Aug 2024 05:11:32 +0000 x86_64 GNU/Linux
# xxd -c20 -g1 /sys/module/hid_xpadneo/drivers/hid:xpadneo/0005:045E:*/report_descriptor | tee >(cksum)
00000000: 05 01 09 05 a1 01 85 01 09 01 a1 00 09 30 09 31 15 00 27 ff  .............0.1..'.
00000014: ff 00 00 95 02 75 10 81 02 c0 09 01 a1 00 09 33 09 34 15 00  .....u.........3.4..
00000028: 27 ff ff 00 00 95 02 75 10 81 02 c0 05 01 09 32 15 00 26 ff  '......u.......2..&.
0000003c: 03 95 01 75 0a 81 02 15 00 25 00 75 06 95 01 81 03 05 01 09  ...u.....%.u........
00000050: 35 15 00 26 ff 03 95 01 75 0a 81 02 15 00 25 00 75 06 95 01  5..&....u.....%.u...
00000064: 81 03 05 01 09 39 15 01 25 08 35 00 46 3b 01 66 14 00 75 04  .....9..%.5.F;.f..u.
00000078: 95 01 81 42 75 04 95 01 15 00 25 00 35 00 45 00 65 00 81 03  ...Bu.....%.5.E.e...
0000008c: 05 09 19 01 29 0a 15 00 25 01 75 01 95 0a 81 02 15 00 25 00  ....)...%.u.......%.
000000a0: 75 06 95 01 81 03 05 01 09 80 85 02 a1 00 09 85 15 00 25 01  u.................%.
000000b4: 95 01 75 01 81 02 15 00 25 00 75 07 95 01 81 03 c0 05 0f 09  ..u.....%.u.........
000000c8: 21 85 03 a1 02 09 97 15 00 25 01 75 04 95 01 91 02 15 00 25  !........%.u.......%
000000dc: 00 75 04 95 01 91 03 09 70 15 00 25 64 75 08 95 04 91 02 09  .u......p..%du......
000000f0: 50 66 01 10 55 0e 15 00 26 ff 00 75 08 95 01 91 02 09 a7 15  Pf..U...&..u........
00000104: 00 26 ff 00 75 08 95 01 91 02 65 00 55 00 09 7c 15 00 26 ff  .&..u.....e.U..|..&.
00000118: 00 75 08 95 01 91 02 c0 85 04 05 06 09 20 15 00 26 ff 00 75  .u........... ..&..u
0000012c: 08 95 01 81 02 c0                                            ......
3445511648 1458

Controller and Bluetooth Information

xpadneo-btmon.txt

xpadneo-dmesg.txt

xpadneo-lsusb.txt

Additional Context

Commands sent by misc/examples/c_hidraw

The interface for the program is as follows:

--[  MotorEnable  ]---------------[ Strength in % ][  10ms ][cnt]--
03  1   1   1   1   0   0   0   0  040 030 020 020  005 005  003
|   |   |   |                   |   |   |   |    |   |    |
STR WEA LTR RTR  -   -   -   -  STR WEA LTR RTR  SUS REL  LOP
[1] [2] [3] [4]                 q/a w/s e/d r/f  h/j k/l  u/i    <-- keys, or Enter = SEND, Ctrl+C = ABORT

The controller vibrates when only when the 3rd and 4th bit are set: corresponding to LTR and RTR.
However, the corresponding strength values for LTR and RTR have no effect. Instead, the strength values that are valid are STR and WEA. The values related to the timings (SUS, REL, LOP) seem to have no effect as far as I can tell.

So, the following combination will set the controller to vibrate forever:

03  0   0   1   1   0   0   0   0  001 001 000 000  000 000  000

And this will stop it:

03  0   0   1   1   0   0   0   0  000 000 000 000  000 000  000

Other controller modes

The controller is not detected by the OS as a controller when connected in Android/iOS mode despite being connected via Bluetooth. Installing xpadneo fixes this issue and the controller works flawlessly, as far as I can tell, the welcome vibration plays correctly and rumble works in games as well. So, as a workaround, this mode can be used.

The controller also has a Switch mode, which xpadneo does not support, of course. But the rumble issue is present in this mode also. The controller however is detected by the OS in this case.

@kakra
Copy link
Collaborator

kakra commented Aug 8, 2024

So this looks like this is another controller which has the motor enable bits swapped or in reverse order. Can you please check if LTR corresponds to STR or WEA (aka testing it in isolation).

Also, the controller for sure ignores the haptic timing parameters. We already have a quirk bit for it.

@rishabh-os
Copy link
Author

Apologies, should have made it clear in the initial post. LTR corresponds to STR and RTR corresponds to WEA.

I tried setting the quirk bit for pulse parameters, and the issues remain.

@0xInstrumentarium
Copy link

I also have this issue, the Android mode works but the Backpaddle won't.

@kakra
Copy link
Collaborator

kakra commented Sep 22, 2024

Apologies, should have made it clear in the initial post. LTR corresponds to STR and RTR corresponds to WEA.

Those clones have all sorts of funny quirks. So this one swaps the first two with the last two bits (3,4,1,2). We don't have a quirks flag for that yet, we only have one to reverse the bit mask (4,3,2,1). What a mess. I'll look into that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants