RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    Sony DualShock 3 - call for testers: "sixaxis" script module

    Scheduled Pinned Locked Moved Ideas and Development
    sixaxisdriverbeta
    208 Posts 24 Posters 35.7k 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.
    • P
      psyke83 Global Moderator
      last edited by psyke83

      Unfortunately, it's going to take some time before you'll see this merged in any form as we're currently busy testing everything for stretch compatibility.

      Additionally, there are issues with this scriptmodule that are going to require some evaluation:

      • I've backported the hid-sony driver from the 4.15 kernel, but patched it to revert to the old button mappings that were used by the driver in the 4.9 kernel (as well as the ps3controller driver), with the intention of minimizing user frustration from getting stuck in menus/having to remap their controller, after installing this module. I'm not sure this is a good idea, because the next Raspberry Pi firmware update on stretch will bump the kernel to 4.14.x, and the hid-sony driver from this kernel release will start using the newer button mappings anyway.
      • In order to support third-party (Shanwan/Gasia) controllers, we need BlueZ 5.48. The packages I've provided work well, but there are always potential pitfalls, complications and upgrade issues when overwriting distribution versions of packages. This won't be an issue once the official Debian/Raspbian packages are upgraded to this version, but the question is how long that will take to happen, or if it will happen at all in the case of stretch.
      • I haven't yet received any feedback on third-party Gasia controller compatibility. I'm fairly sure it will work just as well as Shanwan, but I need to be sure in order for us to consider this a full replacement for the old ps3controller driver.
      SanoS 1 Reply Last reply Reply Quote 1
      • SanoS
        Sano @psyke83
        last edited by Sano

        @psyke83
        I see.
        I saw the future 4.14 kernel/firmware upgrade as stated above through rpi-update github.

        Regarding button mapping, IMHO, I think it would be better to stay as close as possible of the upstream packages/drivers.
        Moreover, the stretch image is still a beta and apparently no direct upgrade path from jessie will be supported, so we could hope than by integrating this directly in stretch, very few users will be bothered by controller remapping, because the new installs will use the new mapping anyway...

        My two cents.

        Oh, and thanks again for your work and advices !

        1 Reply Last reply Reply Quote 0
        • P
          psyke83 Global Moderator
          last edited by

          @Sano,

          Yes, but stretch is not yet using the new mappings. Once the next firmware package is released, I'd certainly be happy to drop the old mappings.

          BTW, one more thing you could try is to verify that it's not BlueZ 5.48 causing your issue with Bluetooth stability.

          • Revert the change to /usr/bin/btuart
          • Revert the Bluetooth packages back to Raspbian defaults:
            sudo apt-get install $(dpkg -l | grep 5.48-1~rpi1 | awk -v os_rel=$(lsb_release -sc) '{print $2"/"os_rel}')

          Reboot and see if your controller is stable with the default BlueZ packages. To go back to the new BlueZ packages, just re-install the sixaxis module.

          SanoS 1 Reply Last reply Reply Quote 0
          • SanoS
            Sano @psyke83
            last edited by

            @psyke83
            Just tested as requested.
            hci0: Frame reassembly failed (-84) errors are back, as well as unwanted analog stick events.
            Going back to the working solution then :)

            P 1 Reply Last reply Reply Quote 0
            • P
              psyke83 Global Moderator @Sano
              last edited by psyke83

              @sano said in Sony DualShock 3 - call for testers: "sixaxis" script module:

              @psyke83
              Just tested as requested.
              hci0: Frame reassembly failed (-84) errors are back, as well as unwanted analog stick events.
              Going back to the working solution then :)

              At least we know it's not caused by my custom BlueZ packages - much appreciated! I'm still curious as to why I don't experience the same issue, given that we have the exact same revision of Pi 3. Hopefully more people will test this to help discern if it's going to be a common issue.

              SanoS 1 Reply Last reply Reply Quote 0
              • SanoS
                Sano @psyke83
                last edited by Sano

                @psyke83
                Could the answer be that my RPi is near my wifi router (maybe 30cm) ?
                Nevertheless those unwanted stick inputs were not there a couple of weeks ago.
                Maybe a new firmware/driver/config rendering the BT controller more sensitive ?

                P 1 Reply Last reply Reply Quote 0
                • P
                  psyke83 Global Moderator @Sano
                  last edited by

                  @sano said in Sony DualShock 3 - call for testers: "sixaxis" script module:

                  @psyke83
                  Could the answer be that my RPi is near my wifi router (maybe 30cm) ?
                  Nevertheless those unwanted stick inputs were not there a couple of weeks ago.
                  Maybe a new firmware/driver/config rendering the BT controller more sensitive ?

                  Could be, or perhaps some interference if you have your Pi inside a metal case. Are you on jessie or the stretch testing image? The latter may have different BT/wifi firmware that can affect how Bluetooth behaves.

                  SanoS 1 Reply Last reply Reply Quote 0
                  • SanoS
                    Sano @psyke83
                    last edited by Sano

                    @psyke83
                    My Pi is in a plastic case, and I use the stretch image for a few weeks.
                    Still trying to find bugs with my "regular" use of retropie, but no big deal ATM.

                    1 Reply Last reply Reply Quote 0
                    • pjftP
                      pjft
                      last edited by

                      I have seen those hci0: Frame reassembly failed (-84) errors in the past in my setup, before I even tried to play with these new drivers. I never got to the bottom of it, though since it didn't seem to have any material impact on the performance I just ignored them.

                      SanoS P 2 Replies Last reply Reply Quote 0
                      • SanoS
                        Sano @pjft
                        last edited by Sano

                        @pjft
                        Just FYI those errors are logged in /var/log/kern.log*.
                        On my setup that was several MB of logs rewritten on a daily basis (I tested and had 500kB of logs for a few minutes of DS3 use), in addition to the random inputs.
                        Even with a F2FS formatted root partition, I don't like having error logs writing over and over a a several MB per day on a SD card for nothing :)
                        Gasp, my OCD is still kicking here...

                        P 1 Reply Last reply Reply Quote 0
                        • P
                          psyke83 Global Moderator @pjft
                          last edited by

                          @pjft said in Sony DualShock 3 - call for testers: "sixaxis" script module:

                          I have seen those hci0: Frame reassembly failed (-84) errors in the past in my setup, before I even tried to play with these new drivers. I never got to the bottom of it, though since it didn't seem to have any material impact on the performance I just ignored them.

                          Yeah, those messages aren't unique to the BlueZ sixaxis plugin - they definitely occurred with sixad (ps3controller) too. I don't recall seeing complaints about ghost analog movements, though.

                          It's hard to debug sixad because the virtual uinput device reports a lot of accelerometer events, and doesn't support setting axis fuzz (needed to skip reporting events when there's a small deviation).

                          1 Reply Last reply Reply Quote 0
                          • P
                            psyke83 Global Moderator @Sano
                            last edited by psyke83

                            @sano said in Sony DualShock 3 - call for testers: "sixaxis" script module:

                            @pjft
                            Just FYI those errors are logged in /var/log/kern.log*.
                            On my setup that was several MB of logs rewritten on a daily basis (I tested and had 500kB of logs for a few minutes of DS3 use), in addition to the random inputs.
                            Even with a F2FS formatted root partition, I don't like having error logs writing over and over a a several MB per day on a SD card for nothing :)
                            Gasp, my OCD is still kicking here...

                            That seems quite excessive. I would see perhaps a dozen or so messages in one day at most, not several megabytes worth. I haven't seen any warnings at all since reducing the UART speed.

                            Perhaps it's due to overclocking your Pi?

                            SanoS 1 Reply Last reply Reply Quote 0
                            • SanoS
                              Sano @psyke83
                              last edited by Sano

                              @psyke83
                              No overclock :)
                              I have a personal motto to stay as vanilla as possible.
                              The only changes I make on my installs are :

                              • disabling overscan
                              • disabling wifi
                              • migrate root partition to F2FS

                              Here is an example of log I had for a single second before reducing speed :

                              Feb 24 09:51:37 retropie kernel: [552204.012012] Bluetooth: hci0: Frame reassembly failed (-84)
                              Feb 24 09:51:37 retropie kernel: [552204.012040] Bluetooth: hci0: Frame reassembly failed (-84)
                              Feb 24 09:51:37 retropie kernel: [552204.012088] Bluetooth: hci0: Frame reassembly failed (-84)
                              Feb 24 09:51:37 retropie kernel: [552204.012184] Bluetooth: hci0: Frame reassembly failed (-84)
                              Feb 24 09:51:37 retropie kernel: [552204.012274] Bluetooth: hci0: Frame reassembly failed (-84)
                              Feb 24 09:51:37 retropie kernel: [552204.012353] Bluetooth: hci0: Frame reassembly failed (-84)
                              Feb 24 09:51:37 retropie kernel: [552204.114573] Bluetooth: hci0: Frame reassembly failed (-84)
                              Feb 24 09:51:37 retropie kernel: [552204.114577] Bluetooth: hci0 ACL packet for unknown connection handle 520
                              Feb 24 09:51:37 retropie kernel: [552204.114642] Bluetooth: hci0: Frame reassembly failed (-84)
                              Feb 24 09:51:37 retropie kernel: [552204.114728] Bluetooth: hci0: Frame reassembly failed (-84)
                              Feb 24 09:51:37 retropie kernel: [552204.114813] Bluetooth: hci0: Frame reassembly failed (-84)
                              Feb 24 09:51:37 retropie kernel: [552204.114900] Bluetooth: hci0: Frame reassembly failed (-84)
                              Feb 24 09:51:37 retropie kernel: [552204.114966] Bluetooth: hci0: Frame reassembly failed (-84)
                              Feb 24 09:51:37 retropie kernel: [552204.181939] Bluetooth: hci0: Frame reassembly failed (-84)
                              Feb 24 09:51:37 retropie kernel: [552204.181991] Bluetooth: hci0: Frame reassembly failed (-84)
                              Feb 24 09:51:37 retropie kernel: [552204.182071] Bluetooth: hci0: Frame reassembly failed (-84)
                              Feb 24 09:51:37 retropie kernel: [552204.182165] Bluetooth: hci0: Frame reassembly failed (-84)
                              Feb 24 09:51:37 retropie kernel: [552204.182252] Bluetooth: hci0: Frame reassembly failed (-84)
                              Feb 24 09:51:37 retropie kernel: [552204.182340] Bluetooth: hci0: Frame reassembly failed (-84)
                              Feb 24 09:51:37 retropie kernel: [552204.182426] Bluetooth: hci0: Frame reassembly failed (-84)
                              Feb 24 09:51:37 retropie kernel: [552204.182480] Bluetooth: hci0: Frame reassembly failed (-84)
                              
                              P 1 Reply Last reply Reply Quote 0
                              • P
                                psyke83 Global Moderator @Sano
                                last edited by

                                @sano said in Sony DualShock 3 - call for testers: "sixaxis" script module:

                                @psyke83
                                No overclock :)
                                I have a personal motto to stay as vanilla as possible.

                                It's good that we have a mitigation for the issue; regardless, if your warranty isn't void, perhaps you could report the issue to the firmware issues tracker. No need to go into detail about RetroPie or this scriptmodule, as you can replicate the behaviour with stock bluez and the default hid_sony driver on the current stretch kernel.

                                I have a suspicion that your Pi's bluetooth module may be faulty, considering that we have the same revision of Pi. I've often seen them offer to replace boards when a HW fault is diagnosed (but of course, I'm only speculating about your board).

                                To be clear, the problem is not that the frame reassembly errors are appearing; our revision board doesn't support HW flow control, so those messages are (unfortunately) expected. The reason I suspect a HW fault is due to the magnitude to which the error is occurring for you along with the phantom feedback. Perhaps if you can test in a "quieter" environment and rule out interference etc., it might help. I'd like to see more people test this module so we can get a wider assessment as to whether this would be a common problem.

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

                                  Hi all,
                                  i have a Shanwan and a Gaisa controller, i would like to try sixaxis.
                                  I installed sixaxis and automatically it will install customhidsony.
                                  Becasue my controllers are not sony i try to install custombluez but it give me an error because a lot of package are missing

                                  dh-systemd git-buildpackage icu-devtools libcap-ng-dev libdbus-glib-1-dev libdw-dev libical-dev libicu-dev libreadline-dev libsubunit-dev libsubunit0 libtinfo-dev libical2
                                  

                                  Tried to install all the packages manually with the command

                                  sudo apt-get update
                                  sudo apt-get install dh-systemd git-buildpackage icu-devtools libcap-ng-dev libdbus-glib-1-dev libdw-dev libical-dev libicu-dev libreadline-dev libsubunit-dev libsubunit0 libtinfo-dev libical2 
                                  

                                  I was able to install all the packages except libical2
                                  E: Unable to locate package libical2.
                                  Someone can help me ?
                                  I'm using Retropie 4.3.12 on a Raspberry Pi 3.

                                  Thank you

                                  1 Reply Last reply Reply Quote 0
                                  • P
                                    psyke83 Global Moderator
                                    last edited by psyke83

                                    @MadHorse,

                                    Thanks for bringing the problem to my attention. It seems that I accidentally left in some unnecessary depends that should fulfilled by the corresponding -dev packages; libical-devshould be sufficient, as it selects libical2 on stretch, but on jessie it probably selects the old package.

                                    I've updated the PR/branch to remove the excess depends, so it should work for you now.

                                    P.S. You have the option to install custombluez from binary, but it's also possible to build from source. If building from source fails, then I may need to add more explicit dependencies to the script for jessie. I only have Raspbian stretch installed on my test card at the moment, so let me know if installing from source is broken and I'll re-flash jessie to test.

                                    In case you're not familiar with git, this should refresh the branch for you due to the branch update being forced, assuming you chose the remote name as psyke83:

                                    git fetch psyke83
                                    git reset --hard psyke83/sixaxis
                                    

                                    Thanks.

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

                                      @psyke83
                                      Thank you for replying me.
                                      As asked i try to install custombluez from source but it fail with the following error

                                      make[2]: *** [client/bluetoothctl] Error 1
                                      Makefile:3183: recipe for target 'all' failed
                                      make[1]: *** [all] Error 2
                                      make[1]: Leaving directory '/home/pi/RetroPie-Setup/tmp/build/custombluez/build-area/bluez-5.48'
                                      dh_auto_build: make -j1 returned exit code 2
                                      debian/rules:35: recipe for target 'build' failed
                                      make: *** [build] Error 2
                                      dpkg-buildpackage: error: debian/rules build gave error exit status 2
                                      debuild: fatal error at line 1376:
                                      dpkg-buildpackage -rfakeroot -D -us -uc -i -I failed
                                      gbp:error: 'debuild -i -I -us -uc' failed: it exited with 29
                                      /home/pi/RetroPie-Setup/tmp/build/custombluez /home/pi/RetroPie-Setup
                                      /home/pi/RetroPie-Setup
                                      Could not successfully build custombluez - Updated version of BlueZ Bluetooth stack
                                      
                                      Install alongside 'sixaxis' driver if you need to pair third-party (Gasia/Shanwan) DualShock 3 controllers. (/home/pi/RetroPie-Setup/tmp/build/custombluez/build-area/bluetooth_5.48-1~rpi1_all.deb not found).
                                      

                                      Installing from binary seems to install without problems.
                                      Let me know if you need the full log if you need me to do some test.

                                      thank you

                                      P 1 Reply Last reply Reply Quote 0
                                      • SanoS
                                        Sano @psyke83
                                        last edited by

                                        @psyke83
                                        The Hori controller is in fact a PS3 and PS4 compatible controller (with a switch to choose PS3/4 compatibility, but this doesn't seem to affect the driver).
                                        Will it use the Sony hid driver even if it's seen as a regular USB controller by the OS ?

                                        Anyway, please feel free to relocate the last few posts to your thread if you think it's more relevant.

                                        P 1 Reply Last reply Reply Quote 0
                                        • P
                                          psyke83 Global Moderator @Sano
                                          last edited by psyke83

                                          @sano said in Sony DualShock 3 - call for testers: "sixaxis" script module:

                                          @psyke83
                                          The Hori controller is in fact a PS3 and PS4 compatible controller (with a switch to choose PS3/4 compatibility, but this doesn't seem to affect the driver).
                                          Will it use the Sony hid driver even if it's seen as a regular USB controller by the OS ?

                                          Anyway, please feel free to relocate the last few posts to your thread if you think it's more relevant.

                                          Yes, the sony-hid driver is used for both PS3 and PS4 controllers. However, I'm not very familiar with DS4 clone compatibility.

                                          Without this scriptmodule, the hid-sony kernel driver is used for DS3 pads via USB, while the ps3controller userspace driver claims the input device on the Bluetooth connection, but names the controller differently (without the manufacturer prefix). You may have noticed that on a fresh install, if you map buttons via USB, then install ps3controller and pair, you have to map them again - that's because of the name discrepancy. When using this scriptmodule, the hid-sony driver is used on USB and Bluetooth connections, and thus shares the same name for both.

                                          What happens if you pair your DS3 pad, unplug the Hori and then plug in again? Does the Hori display a player led for you to tell if it's player 1/2/3/4?

                                          SanoS 1 Reply Last reply Reply Quote 0
                                          • SanoS
                                            Sano @psyke83
                                            last edited by Sano

                                            @psyke83
                                            I have to say that I configured the Hori on the fresh install, then installed sixaxis, and didn't have to reconfigure the HORI.
                                            Unfortunately too, the Hori controller doesn't have LEDs for player number...

                                            P 1 Reply Last reply Reply Quote 0
                                            • 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.