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

    Official PS3 controller dropping BT connection with BT dongle

    Scheduled Pinned Locked Moved Help and Support
    ps3 controllersixaxisbluetooth issue
    11 Posts 3 Posters 640 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.
    • J
      juzzy
      last edited by juzzy

      Hi,
      I just bought a BT dongle (CSR8510) to try and reduce some lag on my PS3 controllers (one official other a clone).

      Wierd thing is the official PS3 controller pairs but then drops BT immediately when I use the sixaxis driver.
      If I use the ps3controller driver it works fine but using the ps3controller driver I cant connect my clone console (ps3controller driver does not seem to allow both official and clone at the same time.)

      I had both controllers working fine with on board Bluetooth using the sixaxis driver.

      So do not know why the external BT dongle would not work with sixaxis driver but will with PS3controller driver. And why only the official controller has issues and not the clone.

      Any explanation or help?
      I can add what ever logs you need.

      I have tried the below referenced fix but no luck.

      Re: PS3 controllers does not work with bt on 4.4

      mituM 1 Reply Last reply Reply Quote 0
      • mituM
        mitu Global Moderator @juzzy
        last edited by

        @juzzy Did you disable the onboard Bluetooth on the PI ?

        J 1 Reply Last reply Reply Quote 0
        • J
          juzzy @mitu
          last edited by

          @mitu yep. Disabled it through /boot/config.txt

          1 Reply Last reply Reply Quote 0
          • mituM
            mitu Global Moderator
            last edited by

            Maybe something similar to https://retropie.org.uk/forum/topic/24590/ ?
            You say your controllers worked with the sixaxis driver, what changed since they were working ? New Pi/updated system ?

            J 1 Reply Last reply Reply Quote 0
            • J
              juzzy @mitu
              last edited by juzzy

              @mitu thanks for the link. But unfortunately seems like a slightly different issue. But I will try changing the baud rate with the on-board BT and see if it fixes the lag (which lead to me trying a BT dongle).

              Both controllers (official and clone) currently work with the sixaxis driver with on board BT.
              I have done no upgrades recently either.
              Its when I change to a BT dongle that the sixaxis driver does not work (but for some reason only on the official PS3 controller).

              It works great with no input lag with the clone controller, BT dongle and sixaxis driver.
              I notice a noticeable difference in lag and ghost inputs between on-board BT and the dongle.
              Hence why I would love to get both controllers working with the dongle and sixaxis driver.

              Just seems so strange that one controller (clone) works fine but then the official one does not.
              and only when using a BT dongle
              Whats the difference?

              1 Reply Last reply Reply Quote 0
              • mituM
                mitu Global Moderator
                last edited by

                Have you tried clearing you existing Bluetooth pairings and re-pair the controllers again, after using the new BT dongle ?

                J 2 Replies Last reply Reply Quote 0
                • J
                  juzzy @mitu
                  last edited by

                  @mitu yep. removed the paired controllers from the registry and then re-paired. Official PS3 controller still drops the BT with the sixaxis driver. Works with the PS3controller driver.
                  I can send you system logs of what happens when I get home.

                  1 Reply Last reply Reply Quote 0
                  • J
                    juzzy @mitu
                    last edited by

                    @mitu this is the system log of what happens trying to connect the official PS3 controller:

                    Jan 28 20:05:35 raspberrypi kernel: [204371.027616] sony 0005:054C:0268.0003: unknown main item tag 0x0
                    Jan 28 20:05:36 raspberrypi kernel: [204372.165059] input: PLAYSTATION(R)3 Controller Motion Sensors as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/bluetooth/hci0/hci0:48/0005:054C:0268.0003/input/input8
                    Jan 28 20:05:36 raspberrypi kernel: [204372.167757] input: PLAYSTATION(R)3 Controller as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/bluetooth/hci0/hci0:48/0005:054C:0268.0003/input/input7
                    Jan 28 20:05:36 raspberrypi kernel: [204372.173014] sony 0005:054C:0268.0003: input,hidraw0: BLUETOOTH HID v80.00 Joystick [PLAYSTATION(R)3 Controller] on 00:1a:7d:da:71:10
                    Jan 28 20:05:36 raspberrypi systemd[1]: Started sixaxis helper (sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/bluetooth/hci0/hci0:48/0005:054C:0268.0003/input/input7).
                    Jan 28 20:05:36 raspberrypi systemd-udevd[27918]: Process '/usr/bin/jscal-restore /dev/input/js0' failed with exit code 1.
                    Jan 28 20:05:37 raspberrypi systemd-udevd[27918]: Process '/usr/sbin/th-cmd --socket /var/run/thd.socket --passfd --udev' failed with exit code 1.
                    Jan 28 20:05:37 raspberrypi systemd[1]: Started sixaxis helper (/dev/input/js0).
                    Jan 28 20:05:37 raspberrypi systemd-udevd[27915]: Process '/usr/sbin/th-cmd --socket /var/run/thd.socket --passfd --udev' failed with exit code 1.
                    Jan 28 20:05:37 raspberrypi systemd-udevd[27931]: Process '/usr/sbin/th-cmd --socket /var/run/thd.socket --passfd --udev' failed with exit code 1.
                    Jan 28 20:05:37 raspberrypi systemd[1]: Started sixaxis helper (/dev/input/event4).
                    Jan 28 20:05:37 raspberrypi sixaxis-helper.sh[27951]: BlueZ <5.48 hack: renaming BT profile to make consistent with kernel module name
                    Jan 28 20:05:37 raspberrypi systemd[1]: Stopping BluezALSA proxy...
                    Jan 28 20:05:37 raspberrypi systemd[1]: Stopped BluezALSA proxy.
                    Jan 28 20:05:37 raspberrypi systemd[1]: Stopping Bluetooth service...
                    Jan 28 20:05:37 raspberrypi bluetoothd[371]: Endpoint unregistered: sender=:1.5 path=/A2DP/SBC/Source/1
                    Jan 28 20:05:37 raspberrypi bluetoothd[371]: Terminating
                    Jan 28 20:05:37 raspberrypi bluetoothd[371]: Stopping SDP server
                    Jan 28 20:05:37 raspberrypi bluetoothd[371]: Exit
                    Jan 28 20:05:37 raspberrypi systemd[1]: Stopped Bluetooth service.
                    Jan 28 20:05:37 raspberrypi systemd[1]: Starting Bluetooth service...
                    Jan 28 20:05:38 raspberrypi bluetoothd[27999]: Bluetooth daemon 5.50
                    Jan 28 20:05:38 raspberrypi systemd[1]: Started Bluetooth service.
                    Jan 28 20:05:38 raspberrypi bluetoothd[27999]: Starting SDP server
                    Jan 28 20:05:38 raspberrypi bluetoothd[27999]: Bluetooth management interface 1.14 initialized
                    Jan 28 20:05:38 raspberrypi bluetoothd[27999]: Sap driver initialization failed.
                    Jan 28 20:05:38 raspberrypi bluetoothd[27999]: sap-server: Operation not permitted (1)
                    Jan 28 20:05:38 raspberrypi dbus[327]: [system] Activating via systemd: service name='org.freedesktop.hostname1' unit='dbus-org.freedesktop.hostname1.service'
                    Jan 28 20:05:38 raspberrypi systemd[1]: Starting Hostname Service...
                    Jan 28 20:05:38 raspberrypi dbus[327]: [system] Successfully activated service 'org.freedesktop.hostname1'
                    Jan 28 20:05:38 raspberrypi systemd[1]: Started Hostname Service.
                    

                    As you can see the bluetooth service completely drops out and restarts.
                    Then log of what happens paring the clone PS3 controller:

                    Jan 28 20:06:37 raspberrypi kernel: [204433.090033] sony 0005:054C:0268.0004: unknown main item tag 0x0
                    Jan 28 20:06:37 raspberrypi kernel: [204433.100511] input: Sony PLAYSTATION(R)3 Controller Motion Sensors as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/bluetooth/hci0/hci0:48/0005:054C:0268.0004/input/input10
                    Jan 28 20:06:37 raspberrypi kernel: [204433.102377] input: Sony PLAYSTATION(R)3 Controller as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/bluetooth/hci0/hci0:48/0005:054C:0268.0004/input/input9
                    Jan 28 20:06:37 raspberrypi kernel: [204433.104076] sony 0005:054C:0268.0004: input,hidraw0: BLUETOOTH HID v80.00 Joystick [Sony PLAYSTATION(R)3 Controller] on 00:1a:7d:da:71:10
                    Jan 28 20:06:37 raspberrypi systemd[1]: Started sixaxis helper (sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/bluetooth/hci0/hci0:48/0005:054C:0268.0004/input/input9).
                    Jan 28 20:06:37 raspberrypi systemd-udevd[28396]: Process '/usr/bin/jscal-restore /dev/input/js0' failed with exit code 1.
                    Jan 28 20:06:38 raspberrypi systemd-udevd[28396]: Process '/usr/sbin/th-cmd --socket /var/run/thd.socket --passfd --udev' failed with exit code 1.
                    Jan 28 20:06:38 raspberrypi systemd-udevd[28392]: Process '/usr/sbin/th-cmd --socket /var/run/thd.socket --passfd --udev' failed with exit code 1.
                    Jan 28 20:06:38 raspberrypi systemd-udevd[28395]: Process '/usr/sbin/th-cmd --socket /var/run/thd.socket --passfd --udev' failed with exit code 1.
                    Jan 28 20:06:38 raspberrypi systemd[1]: Started sixaxis helper (/dev/input/event4).
                    Jan 28 20:06:38 raspberrypi sixaxis-helper.sh[28410]: Calibrating: Sony PLAYSTATION(R)3 Controller (02:07:B4:92:63:25)
                    Jan 28 20:06:38 raspberrypi sixaxis-helper.sh[28410]: Setting 600 second timeout on: Sony PLAYSTATION(R)3 Controller (02:07:B4:92:63:25)
                    

                    Pretty much the same until it comes to sixaxis-helper.sh

                    1 Reply Last reply Reply Quote 0
                    • mituM
                      mitu Global Moderator
                      last edited by

                      The logs don't show much.

                      What version of RetroPie/Raspbian are you using ? Add more info about your system, as detailed in https://retropie.org.uk/forum/topic/3/read-this-first.

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

                        @juzzy

                        What version of Raspbian is your installation running? You can see it on the main page of the RetroPie-Setup script.

                        The BlueZ <5.48 hack in the log is the reason why Bluetooth is restarting on your installation. When a BT profile that matches the name PLAYSTATION(R)3 Controller is found, it renames it to Sony PLAYSTATION(R)3 Controller and then restarts Bluetooth for the rename to take effect. This is a hack to ensure the BT profile matches the name of the USB device (with the Sony prefix) to avoid the need to set up separate mappings for the BT vs USB connection in EmulationStation and other applications.

                        The Bluetooth stack should only restart one time after you've initially paired, and then work normally for subsequent pairings. I've not tested the hack with a BT adapter dongle, so there may be unexpected behaviour causing problems.

                        If you're running on an image based on jessie, I highly recommend that you upgrade to a stretch-based image, as newer versions of BlueZ will set the same device name for BT as USB by default, which avoids the need for the aforementioned hack to be executed by the sixaxis-helper.sh script. If upgrading your image is too disruptive, installing custombluez or enabling third-party support in the sixaxis script's configuration page should upgrade your version of BlueZ to the newer version that uses the correct BT profile name to match the USB name by default.

                        J 1 Reply Last reply Reply Quote 0
                        • J
                          juzzy @psyke83
                          last edited by juzzy

                          @psyke83

                          Love this community. Thanks for a fast response @psyke83 & @mitu.

                          I ended up hacking your hack in sixaxis-helper.sh.
                          I basically disabled the whole restart and renaming section by commenting it out.

                          sixaxis_rename() {
                              local bt_profile="/var/lib/bluetooth/${BLUETOOTH_MAC^^}/${SIXAXIS_MAC^^}/info"
                              if [[ "$(grep -e "^Name=PLAYSTATION(R)3 Controller" -e "^Trusted=true" -c "$bt_profile" 2>/dev/null)" == "2" ]]; then
                                  echo "BlueZ <5.48 hack: renaming BT profile to make consistent with kernel module name"
                                  # systemctl stop bluetooth
                                  # sed 's/.*Name=PLAYSTATION(R)3 Controller.*/Name=Sony PLAYSTATION(R)3 Controller/' -i "$bt_profile"
                                  # systemctl start bluetooth
                                  exit 0
                              fi
                          }
                          

                          The controller paired then.
                          but like you stated I had to re-config the controller inputs (for BT vs USB).

                          Digging deeper I compared the two files under var/lib/bluetooth/${BLUETOOTH_MAC^^}/${SIXAXIS_MAC^^}/info for the On-board BT and the Dongle BT addresses.

                          The file for the on-board BT holds the changes to the renaming "Sony PLAYSTATION(R)3 Controller"
                          But for the BT dongle - on restart it must overwrite the file again with the old name "PLAYSTATION(R)3 Controller".

                          Anyway I have a fix that works for me.

                          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.