Add mappings for the SteelSeries Stratus XL |
|
Issue descriptionThe device appears on html5gamepad.com with the ID string: SteelSeries SteelSeries Stratus XL (Vendor: 1038 Product: 1418) This gamepad supports both Bluetooth and USB connections, although the micro-USB port is hidden inside the battery compartment.
,
Nov 30
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/49997881e430f5f35b4ebf232cf6c2c2df7436b2 commit 49997881e430f5f35b4ebf232cf6c2c2df7436b2 Author: Klaus Weidner <klausw@chromium.org> Date: Fri Nov 30 02:56:04 2018 Add standard mapping for SteelSeries Stratus XL USB gamepad BUG=809826 Change-Id: I41250680f22aacac2c1f193276d5d0e0beaa2a00 Reviewed-on: https://chromium-review.googlesource.com/c/1356228 Reviewed-by: Matt Reynolds <mattreynolds@chromium.org> Commit-Queue: Klaus Weidner <klausw@chromium.org> Cr-Commit-Position: refs/heads/master@{#612534} [modify] https://crrev.com/49997881e430f5f35b4ebf232cf6c2c2df7436b2/device/gamepad/gamepad_standard_mappings_linux.cc
,
Nov 30
To clarify, the patch from comment #2 only enables a mapping for a wired USB connection through the MicroUSB port in the battery compartment. Bluetooth still doesn't work at this point. It pairs but only the Home and Back buttons work, triggering corresponding browser actions.
,
Nov 30
I've put my old Samsung Chromebook snow/daisy into developer mode on m71 beta, and interestingly the Bluetooth paired device already seems to work at the evdev level.
After Bluetooth pairing via the normal ChromeOS UI, it's visible in bluetoothctl:
[SteelSeries Stratus XL]# info
Device 28:9A:4B:09:2D:8F
Name: SteelSeries Stratus XL
Alias: SteelSeries Stratus XL
Class: 0x002508
Icon: input-gaming
Paired: yes
Trusted: yes
Blocked: no
Connected: yes
LegacyPairing: yes
UUID: Human Interface Device... (00001124-0000-1000-8000-00805f9b34fb)
UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb)
Modalias: usb:v0111p1419d0109
RSSI: -57
And the evtest tool shows it as a selectable device:
Input driver version is 1.0.1
Input device ID: bus 0x5 vendor 0x111 product 0x1419 version 0x109
Input device name: "SteelSeries Stratus XL"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 139 (KEY_MENU)
Event code 158 (KEY_BACK)
Event code 172 (KEY_HOMEPAGE)
Event code 272 (BTN_LEFT)
Event code 273 (BTN_RIGHT)
Event code 274 (BTN_MIDDLE)
Event code 275 (BTN_SIDE)
Event code 276 (BTN_EXTRA)
Event code 304 (BTN_A)
Event code 305 (BTN_B)
Event code 306 (BTN_C)
Event code 307 (BTN_X)
Event code 308 (BTN_Y)
Event code 309 (BTN_Z)
Event code 310 (BTN_TL)
Event code 311 (BTN_TR)
Event code 312 (BTN_TL2)
Event code 313 (BTN_TR2)
Event code 314 (BTN_SELECT)
Event code 315 (BTN_START)
Event code 316 (BTN_MODE)
Event code 317 (BTN_THUMBL)
Event code 318 (BTN_THUMBR)
Event code 319 (?)
Event type 2 (EV_REL)
Event code 0 (REL_X)
Event code 1 (REL_Y)
Event code 8 (REL_WHEEL)
Event type 3 (EV_ABS)
Event code 0 (ABS_X)
Value 0
Min -2047
Max 2047
Fuzz 15
Flat 255
Event code 1 (ABS_Y)
Value 0
Min -2047
Max 2047
Fuzz 15
Flat 255
Event code 2 (ABS_Z)
Value 0
Min -2047
Max 2047
Fuzz 15
Flat 255
Event code 5 (ABS_RZ)
Value 0
Min -2047
Max 2047
Fuzz 15
Flat 255
Resolution 745
Event code 9 (ABS_GAS)
Value 0
Min 0
Max 4095
Fuzz 15
Flat 255
Event code 10 (ABS_BRAKE)
Value 0
Min 0
Max 4095
Fuzz 15
Flat 255
Event code 16 (ABS_HAT0X)
Value 0
Min -1
Max 1
Event code 17 (ABS_HAT0Y)
Value 0
Min -1
Max 1
Event code 40 (ABS_MISC)
Value 0
Min 0
Max 255
Event type 4 (EV_MSC)
Event code 4 (MSC_SCAN)
Event type 17 (EV_LED)
Event code 0 (LED_NUML)
Event code 1 (LED_CAPSL)
Event code 2 (LED_SCROLLL)
Event code 3 (LED_COMPOSE)
Properties:
Testing ... (interrupt to exit)
Event: time 1543555529.000302, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90001
Event: time 1543555529.000302, type 1 (EV_KEY), code 304 (BTN_A), value 1
Event: time 1543555529.000302, -------------- SYN_REPORT ------------
Event: time 1543555529.135103, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90001
Event: time 1543555529.135103, type 1 (EV_KEY), code 304 (BTN_A), value 0
Event: time 1543555529.135103, -------------- SYN_REPORT ------------
[...]
More output in the attached file where I try various inputs. The Home button is still intercepted by ChromeOS, but everything else seems to work,
Do you have a tip where to look next? Does ChromeOS use evdev, or does it read the Bluetooth HID device directly?
,
Nov 30
Here's the rdesc file from /sys/kernel/debug/hid on Chromebook:
,
Nov 30
for the record, here's the udevadm info requested by mattreynolds@: localhost / # udevadm info --query=all /dev/input/js0 P: /devices/virtual/bluetooth/hci0/hci0:1:2/input6/js0 N: input/js0 E: DEVNAME=/dev/input/js0 E: DEVPATH=/devices/virtual/bluetooth/hci0/hci0:1:2/input6/js0 E: ID_INPUT=1 E: ID_INPUT_KEY=1 E: ID_INPUT_MOUSE=1 E: MAJOR=13 E: MINOR=0 E: SUBSYSTEM=input E: TAGS=:powerd: E: USEC_INITIALIZED=468403332 mattreynolds@ thinks that the missing ID_INPUT_JOYSTICK would cause it to be ignored in UdevGamepadLinux (https://cs.chromium.org/chromium/src/device/gamepad/udev_gamepad_linux.cc). FWIW, this device works via Bluetooth connection in Chrome on Linux (as opposed to ChromeOS). It appears as device {0x0111, 0x1419}. The HOME and BACK buttons are directly used by the browser and not accessible to the gamepad API. Proposed standard mapping in https://chromium-review.googlesource.com/c/chromium/src/+/1356892
,
Dec 8
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/401770722daeea00304d0c06bf3cf57c5ca5b686 commit 401770722daeea00304d0c06bf3cf57c5ca5b686 Author: Klaus Weidner <klausw@chromium.org> Date: Fri Dec 07 23:59:58 2018 Add Bluetooth gamepad mapping for SteelSeries Stratus XL This is missing the select/back and meta (home) buttons which are treated separately as keyboard keys, and which trigger browser actions. This currently seems to work on Chrome for Linux, but not ChromeOS. BUG=809826 Change-Id: Ie328c8990e03cdda167ddac624b41f6b78710fd8 Reviewed-on: https://chromium-review.googlesource.com/c/1356892 Commit-Queue: Klaus Weidner <klausw@chromium.org> Reviewed-by: Matt Reynolds <mattreynolds@chromium.org> Cr-Commit-Position: refs/heads/master@{#614874} [modify] https://crrev.com/401770722daeea00304d0c06bf3cf57c5ca5b686/device/gamepad/gamepad_id.h [modify] https://crrev.com/401770722daeea00304d0c06bf3cf57c5ca5b686/device/gamepad/gamepad_id_list.cc [modify] https://crrev.com/401770722daeea00304d0c06bf3cf57c5ca5b686/device/gamepad/gamepad_standard_mappings_linux.cc |
|
►
Sign in to add a comment |
|
Comment 1 by klausw@chromium.org
, Nov 25