-
Notifications
You must be signed in to change notification settings - Fork 112
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
Add support for XB1S BLE firmware update #315
Conversation
a1f5541
to
f54deb9
Compare
need this as I just got a controller some days ago, and I had no other option as to flash the newest firmware, as, according to xpadneos troubleshooting page, the stock firmware doesn't work. |
Yes, checkout this very PR branch and please test, report back what you find. I'm still waiting for a chance to update my own XB1S controller to the new firmware. It's likely that the PID of the device is different, so please post what you get from it. This PR is the single thing that mostly holds back a version bump of the v0.9 branch because I want to get it into that version. |
Also maybe important: with the stock version, I got a rumble on bluetooth pairing, steam detected the controller, xbox logo didn't stop blinking, with the updated firmware, I get no rumble, steam doesn't detect controller, but the xbox logo stops blinking Which are the best steps to test/ debug this version if I may ask? |
Is Steam Input enabled or disabled? Do you have RGB software installed? You probably get no rumble because xpadneo doesn't bind to the device. Could you show your dmesg after pairing? |
Can report that after installing this beta driver, stopping pc, pairing controller to phone, starting and pairing controller to pc it in fact works.
|
vibrator and steam also works. (Tested with ultimate chicken horse and shellshock live) |
Do all buttons work as expected? (check with evtest please) |
Just did some retesting and confirmed only the XB1S controller models on this new 5.11.3118.0 firmware don't map the select(view) button correctly. It isn't registered at all on the XB1S(1708) controller but does work correctly on the XBS(1914). Otherwise they seem to work correctly on this branch, though. Seems @UnrealValentin has an XBS(1914) model, those are still detected with the same ID they had before the firmware update. 0x0B13 You can downgrade the controller firmware using the xbox console with these instructions if you need to bypass this issue for now. The newest firmware version available for the XBS(1914) controller on Windows is 5.9.2709.0. |
Still didn't work before this version of xpadneo for me, for some reason.
All buttons (except xbox logo) work for me. |
The xbox logo button registers on a different device when used with xpadneo, that's normal its not detected with the rest of the inputs |
hi, I tested today this patch on top of version 0.9.1 with my updated XBOX One S Controller connected via BT. Before (with version 0.9.1) Rumble was not working and with the patch, the normal rumble is working, but not the trigger rumble. I tested with the provided Also the test with I tested to capture the things from My Blutetooth Controller is the integrated one from Intel® Dual Band Wireless-AC 8260, a Dual Mode Bluetooth® 4.2, BLE
|
I'm not sure if you're aware of that but please depress the triggers while testing the rumble: the effect depends on the pressure you apply to the triggers. |
From what I've gathered, for some reason, my back button is now bound to the share button. I'm not too sure if this is an issue for just me, but here's a bit of background, as well as what I've figured out. I tried using the main fork, but that had the same problem. I tried an older version of this branch and my problem was fixed. Now, it's started to happen again. I know that isn't mush help, but I've attached a file with the output of evtest. From what I've gathered, key code 314 (the back button) is activated when I hit the share button, while pressing the back button does nothing. I know this doesn't really help, but I'd be happy to get more info if I could Kernel: 5.16.10-artix1-1 |
(from Discord) Menu/Select button:
A button:
|
f54deb9
to
c3cd6f6
Compare
With each new device model, we would add a lot of characters to an already very long line. Let's break this down into more manageable pieces. Signed-off-by: Kai Krakow <kai@kaishome.de>
Microsoft added BLE support to existing controllers. This commit adds support for binding xpadneo to controllers flashed with the new firmware version which exposes the device under a new PID. The new firmware needs the Share button quirk. Affects: atar-axis#314 Signed-off-by: Kai Krakow <kai@kaishome.de>
c3cd6f6
to
db05d8c
Compare
Code Climate has analyzed commit db05d8c and detected 0 issues on this pull request. View more on Code Climate. |
From my testing this afternoon both the 1708 and 1914 controller mappings are correct on the 5.11 firmware. Rumble on the other hand is not working correctly. Using Generation Zero as a sample here: Steam input enabled- No rumble. This happens on both controllers, 1708 and 1914 |
Do you use qmk or OpenRGB? |
No, none of that installed on this pc |
Could be an issue in bluez then... There's a hidraw rumble tester in the |
Seems to be working correctly there Bit more testing: |
Then I'd say it's caused by Steam Input or SDL... Maybe try disabling Xbox controller support for Steam Input - I've not seen such an issue. Also check the permissions of the hidraw device, it should not be writable for your user. If it is, it can explain why rumble is acting weird because SDL bypasses xpadneo then and directly tries to send rumble commands. If it is readable but not writable, it would explain why some games cannot rumble at all. Currently, the best solution is to revoke all permissions from the hidraw device. xpadneo rules usually take care of it but some other software (like qmk or OpenRGB) may have deployed udev rules that unconditionally make the hidraw devices world readable and writable (which is bad for other reasons). |
Tested this on my model 1708 with the latest firmware. Everything works great except the select button is not functional. Nothing registers and button 6 is never activated. Looks like this was mentioned above but thought I would add my result here. |
How did you test the buttons? Did you try |
Should have been more specific. Tested with jstest and evtest. No response from the select button. Uninstalling xpadneo and the select button shows as button 10 in jstest and registers in evtest as BTN_SELECT. |
Are you sure you tried this particular branch? |
Yes. Using kakra/feature/xb1s-0b20 branch. Last commit hash db05d8c. Some more testing and I'm not sure what is happening. It is currently working but I disconnected/reconnected multiple times to get that to work. The first time I paired and ran evtest immediately and carefully only pressed the select button I got the below report. Pressing the button again and I received no response. Event: time 1646581004.887823, type 3 (EV_ABS), code 0 (ABS_X), value 2539 However on disconnect/reconnect the select button is now working. I'll update if I discover anything else. If anyone has any ideas they want me to try let me know. |
Here's a rumble packet in btmon using the c_hidraw test
And I've attached the rumble test btmon log from Rise of The Tomb Raider (outside of Steam using Wine Staging) where I saw the extended rumble effect |
This sounds weird. Why would it suddenly work after some reconnects? This either means the Bluetooth stack is acting weird (but that itself would not affect mappings) or xpadneo does not bind correctly to the device (module and/or udev rules not reloaded?). First, be sure that xpadneo actually initialized the device. It will be shown in dmesg but xpadneo also sends three short rumble bursts to the motors (weak motor, strong motor, trigger motors, in that order). I'd like to merge this patch, and if your problem persists, it should be tracked in a new issue report. |
Seems reasonable. I haven't been able to reproduce but I also haven't rebooted my machine since. I will open an issue if I'm able to consistently reproduce the issue. |
Microsoft added BLE support to existing controllers.
This PR adds support for binding xpadneo to controllers flashed with the new firmware version which exposes the device under a new PID. It is still work in progress as we may add mapping fixups and quirk handling.