RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    SteelSeries Stratus XL (Windows and Android) can't bind 2 buttons

    Scheduled Pinned Locked Moved Help and Support
    20 Posts 9 Posters 9.3k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      mornen
      last edited by

      Hi,

      I am trying to get my SteelSeries Stratus XL working through bluetooth. So far it's been tough, but I have it paired, and recognized in Emulation Station. But the problem is the SELECT button and what I guess is supposed to be the XBOX button don't register at all.

      I have added my own rules file for udev, which is how I got Emulation Station to recognize it as a controller to begin with. Below is some information that might help someone more knowledgeable than me:

      results of cat /proc/bus/input/devices

      I: Bus=0005 Vendor=0111 Product=1419 Version=0109
      N: Name="SteelSeries Stratus XL"
      P: Phys=b8:27:eb:23:75:bb
      S: Sysfs=/devices/platform/soc/3f201000.uart/tty/ttyAMA0/hci0/hci0:11/0005:0111:1419.0006/input/input7
      U: Uniq=28:9a:4b:04:81:27
      H: Handlers=kbd mouse1 event2 js0
      B: PROP=0
      B: EV=2001f
      B: KEY=ffff0000 1f0000 0 0 1000 40000800 0 0 0 0
      B: REL=103
      B: ABS=ffffff00 30627
      B: MSC=10
      B: LED=f

      jstest works except for those two buttons. It is recognized as a 32 axis controller with 21 buttons (it's basically an xbox 360 controller clone) so it's not correct.

      Any help would be appreciated!

      mediamogulM 1 Reply Last reply Reply Quote 0
      • mediamogulM
        mediamogul Global Moderator @mornen
        last edited by

        @mornen

        Do the buttons at least register in evtest?

        RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

        M 1 Reply Last reply Reply Quote 0
        • M
          mornen @mediamogul
          last edited by

          @mediamogul

          Thanks for replying.

          evtest does not list this controller. the cat ../devices shows it's handled by event2, but evtest skips that event totally:

          /dev/input/event0: Logitech USB Receiver
          /dev/input/event1: Logitech USB Receiver
          /dev/input/event3: Xbox Gamepad (userspace driver)
          /dev/input/event4: Xbox Gamepad (userspace driver) #2

          mediamogulM 1 Reply Last reply Reply Quote 0
          • mediamogulM
            mediamogul Global Moderator @mornen
            last edited by mediamogul

            @mornen

            Try running evtest /dev/input/event2 to see if the system registers any input from those particular buttons.

            Edit: the userspace driver (xboxdrv I assume) might be interfering with it.

            RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

            M 1 Reply Last reply Reply Quote 0
            • M
              mornen @mediamogul
              last edited by mornen

              @mediamogul

              I get:

              evtest: No such file or directory

              Oops.. The controller powered off on me.. trying again..

              evtest registers all button presses

              Edit: Here's the output of the keys in question:

              Select:
              Event: time 1464139499.568293, -------------- EV_SYN ------------
              Event: time 1464139557.911248, type 4 (EV_MSC), code 4 (MSC_SCAN), value c0224
              Event: time 1464139557.911248, type 1 (EV_KEY), code 158 (KEY_BACK), value 1
              Event: time 1464139557.911248, -------------- EV_SYN ------------
              Event: time 1464139557.989988, type 4 (EV_MSC), code 4 (MSC_SCAN), value c0224
              Event: time 1464139557.989988, type 1 (EV_KEY), code 158 (KEY_BACK), value 0

              Home(XBOX):
              Event: time 1464139599.142817, type 4 (EV_MSC), code 4 (MSC_SCAN), value c0223
              Event: time 1464139599.142817, type 1 (EV_KEY), code 172 (KEY_HOMEPAGE), value 1
              Event: time 1464139599.142817, -------------- EV_SYN ------------
              Event: time 1464139599.255305, type 4 (EV_MSC), code 4 (MSC_SCAN), value c0223
              Event: time 1464139599.255305, type 1 (EV_KEY), code 172 (KEY_HOMEPAGE), value 0
              Event: time 1464139599.255305, -------------- EV_SYN ------------

              1 Reply Last reply Reply Quote 0
              • mediamogulM
                mediamogul Global Moderator
                last edited by mediamogul

                Someone might have a better plan of attack, but if you're stuck for a solution, i believe you can disable xboxdrv from the "RetroPie Setup" menu, find the event codes for those buttons using evtest and then proceed to manually map those events into an instance of xboxdrv in /etc/rc.local.

                Edit: If you chose to proceed in this direction, you can find a full guide below. Just keep in mind that the run-time command in the given example would be inserted into /etc/rc.local for your purposes.

                https://steamcommunity.com/app/221410/discussions/0/558748653738497361/

                RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

                M 2 Replies Last reply Reply Quote 0
                • M
                  mornen @mediamogul
                  last edited by mornen

                  @mediamogul

                  Thanks for your help. I'll look into that and post back.

                  1 Reply Last reply Reply Quote 0
                  • M
                    mornen @mediamogul
                    last edited by

                    @mediamogul

                    I followed the guide, but had no luck. I'm at a loss, obviously.

                    mediamogulM 1 Reply Last reply Reply Quote 0
                    • mediamogulM
                      mediamogul Global Moderator @mornen
                      last edited by mediamogul

                      @mornen

                      Did you add the full path to xboxdrv (/opt/retropie/supplementary/xboxdrv/bin/xboxdrv) in /etc/rc.local? Also, did you remember to reboot afterward?

                      RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

                      M 1 Reply Last reply Reply Quote 0
                      • M
                        mornen @mediamogul
                        last edited by mornen

                        @mediamogul

                        I did not put the full path to xboxdrv originally. I copied the input that was placed by retropie when I enabled the xboxdrv through setup. I have since added the full path, however, I have the same issue still.

                        Here is the line I added to rc.local:

                        /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/event3 --evdev-absmap ABS_RZ=y2,ABS_Z=x2,ABS_X=x1,ABS_Y=y1,ABS_HAT0Y=dpad_y,ABS_HAT0X=dpad_x --axismap -Y1=Y1,-Y2=Y2 --evdev-keymap BTN_NORTH=y,BTN_EAST=b,BTN_SOUTH=a,BTN_WEST=x,BTN_THUMBR=tr,BTN_THUMBL=tl,BTN_TL=lb,BTN_TR=rb,ABS_BRAKE=lt,ABS_GAS=rt,BTN_START=start,KEY_BACK=back -mimic-xpad --silent

                        If I watch the boot text it errors out with -mimic-xpad requires an argument.

                        1 Reply Last reply Reply Quote 0
                        • M
                          mornen
                          last edited by mornen

                          So, I finally got the entry correct I believe, and the error I'm running into is there is no event3. I believe this stems from the bluetooth not having paired at this point in the boot process, and so there is nothing to be found. The controller often doesn't pair until just before or just after Emulationstation loads.

                          Edit:

                          I connected to the pi via SSH, and manually loaded xboxdrv with the same lines, and it works! Now, is there a way to execute this after the device is paired automatically? Or perhaps to delay the startup of Emulationstation until the device is paired, and the xboxdrv is loaded?

                          mediamogulM 1 Reply Last reply Reply Quote 0
                          • mediamogulM
                            mediamogul Global Moderator @mornen
                            last edited by mediamogul

                            @mornen

                            If a line can be added to /etc/rc.localjust before the xboxdrv command that initiates the pairing first, you might be home free. However, I don't know if that's advisable or even possible. I'm going to experiment with this a little later this evening.

                            RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

                            1 Reply Last reply Reply Quote 0
                            • mediamogulM
                              mediamogul Global Moderator
                              last edited by mediamogul

                              Well, it's always something. A friend of mine made off with all my Bluetooth controllers to test with one of his own projects. What I was going to try was following this guide:

                              https://github.com/RetroPie/RetroPie-Setup/wiki/Setting-up-a-Bluetooth-controller#step-25---forcing-the-pi-to-reconnect-to-the-controller

                              Specifically step 2.5 if the bookmark doesn't load properly.

                              After following all the steps, the command: sudo systemctl enable /etc/systemd/system/connect-bluetooth.service would be added to /etc/rc.local right before the xboxdrv command rather than executing it normally as per the guide's instructions. This should do the job, but again, I am unable to test it myself.

                              RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

                              1 Reply Last reply Reply Quote 0
                              • N
                                ninjasinpjs
                                last edited by ninjasinpjs

                                Not to try to revive an old thread... But, what did your udev rules file you manually added look like? I have a Steelseries Stratus XL that I am also trying to get working with RetroPie. Unfortunately google searching yields this as the only real source of information at all.

                                1 Reply Last reply Reply Quote 1
                                • W
                                  WastlJ
                                  last edited by

                                  Same here... the Steelseries Stratus Controllers are perfect for me. I have two of them. Any chance of making them work with RetroPie?

                                  1 Reply Last reply Reply Quote 1
                                  • O
                                    OneAdam12
                                    last edited by

                                    I too am having a problem getting retropie to communicate with this device.

                                    evtest and jstest all work just fine and recognize every single button, but I can not get retropie to use the controller.

                                    What file was used to get it to start initially? Can you give steps for this? I would be happy with any keys working at this point.

                                    1 Reply Last reply Reply Quote 0
                                    • T
                                      TheBlueDragon
                                      last edited by TheBlueDragon

                                      @ninjasinpjs @WastlJ @OneAdam12

                                      I used to have a SS Stratus XL. Did you try updating the firmware with SteelSeries engine 3 on PC? Use the MicroUSB port inside the battery compartment.

                                      1 Reply Last reply Reply Quote 0
                                      • U
                                        unclejoe01
                                        last edited by unclejoe01

                                        Has anyone been able to map all buttons on the Steelseries Stratus xl? I can map everything but 2 buttons and left of the right thumb stick. when it is connected, it shows up as /dev/input/js0, event4,event5,event7 and mouse0, jtest shows all buttons but those 3, evtest /dev/input/event4 shows the missing buttons. I am new at this, does anyone have any ideas. I have updated firmware, and the joypad is detect when Retropie starts.

                                        thanks
                                        Joe

                                        1 Reply Last reply Reply Quote 0
                                        • T
                                          TheGuruAU
                                          last edited by

                                          I was trying the same tonight. Only bought the joypad a few months ago. It always failed to detect the "start/xbox button" and "back" type buttons, and also seemed to easily skip through some of the key-presses for emulationstation device configuration.

                                          I could see using the evtest tool that it would pick up those buttons for me on event6 (but those buttons only):

                                          /dev/input/event6: SteelSeries Stratus XL Keyboard
                                          /dev/input/event7: SteelSeries Stratus XL Mouse
                                          /dev/input/event8: SteelSeries Stratus XL
                                          /dev/input/event9: SteelSeries Stratus XL

                                          This joypad seems to have a strange mode where it can emulate a mouse as well. Even just in Windows using Steam I had to turn off some settings to make it usable as a normal joypad as you would expect. In Windows it doesn't even detect as a Xbox 360 type device until the custom windows driver has been loaded and it's been rebooted - then it re-detects itself in windows as an xbox 360 controller. Took me a while just in Windows just to get it behaving as a normal xbox360 clone device.

                                          I suspect due to the proprietress of this it may not be easy. I guess the question would be can retroarch/retropad handle a virtual device that is using say /dev/input/js0 and /dev/input/event6 and combine them?

                                          Discovered in a box my old xbox 360 USB controller interface so I've given up on perusing this further.

                                          1 Reply Last reply Reply Quote 0
                                          • J
                                            jplopez
                                            last edited by

                                            Hi, @TheGuruAU :

                                            I had the same problem and had to change the approach. Instead of directly trying to remap the direct bluetooth configuration, I have used the xboxdrv to change the default driver. Now Retropie sees my Stratus XL as an XBox joypad and I can use it in any emulator.

                                            Full instructions are here. I removed the --force-feedback option.

                                            My final command line to be included in /etc/rc.local to launch the xboxdrv was:

                                            sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
                                            	--evdev /dev/input/js1 \
                                            	--silent \
                                            	--detach-kernel-driver \
                                            	--deadzone-trigger 15% \
                                            	--deadzone 4000 \
                                            	--mimic-xpad \
                                            	--evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_Z=x2,ABS_RZ=y2,ABS_BRAKE=lt,ABS_GAS=rt,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y \
                                            	--evdev-keymap BTN_SOUTH=a,BTN_EAST=b,BTN_NORTH=x,BTN_WEST=y,BTN_THUMBL=lb,BTN_THUMBR=rb,BTN_TL=tl,BTN_TR=tr,KEY_HOMEPAGE=guide,KEY_BACK=back,BTN_START=start \
                                            	&
                                            

                                            Please note that I had to point directly to /dev/input/js1, and that this might change in your setup. If you only have that joypad, it will probably js0 instead.

                                            KR,
                                            JP

                                            1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                                            Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.