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

RPi 3 B+ : tricky bluetooth problem with multiple PS3 controllers



  • Hi every one!

    As the title says,
    I have troubles with bluetooth of my Raspberry pi 3 B+,
    with multiple PS3 controllers.
    I have installed last version of Retropie and updated it.

    So,

    • with 1 controller : the connection is perfect.
    • with 2 (or higher) : buttons don't respond correctly
      (freeze and repeated buttons or not responding) in emulation station AND in games.

    It's like a conflict of the two controllers.
    somebody on Facebook told me about "diff signal".
    (info: the controller 2 takes more time to connect)

    I have tested bluetooth with 3 differents PS3 controllers:
    same problem, so it's not the controllers.
    I have tested appairing on all USB ports (uninstall/install PS3 driver in between)
    And I have tested with a fresh install of Retropie too.

    I have conscientiously installed controllers following tutorials
    and I have tried "sudo pi-bluetooth" script.
    None of these manipulations have changed the situation.

    And weird problem:
    I have a wired fake SNES controller
    and it works in EmulationStation
    but in games, it doesn't respond at all.
    Moreover, this gamepad blocks every controller:
    PS3 bluetooth or wireless keyboard.
    So I can't combine bluetooth and wired to play with friends.

    Does anybody has seen this kind of bluetooth problem/conflict before?
    Is it possible that the Raspberry itself has a hardware/software problem?

    By advance,
    thank you for reading this and for your help!


  • Global Moderator

    @Bunnyface Please add more info about your system, as requested in https://retropie.org.uk/forum/topic/3/read-this-first.
    Try removing the PS3 driver, reboot and then and install the customhidsonly driver from the RetroPie-Setup driver packages. This should make the PS3 controllers use the PI's bluetooth stack.



  • @mitu
    Sorry, I confess I read the rules quickly :(

    • Pi Model or other hardware:
    3 B+

    • Power Supply used:
    non-official with on/off switch

    • RetroPie Version Used :
    v4.4 (updated)

    • Built From:
    Pre made SD Image on RetroPie website

    • Controller used:
    PS3 controller (bluetooth) / fake SNES USB / wireless keyboard

    I'm gonna try the customhidsonly driver, thank you very much for your help!



  • @Bunnyface If @mitu ttipps will for some reason not work then ...

    1. Try reducing distance from your controller to Raspberry
    2. Try to disable WiFi - this helps to extent signal strength, you can use this script to disable/enable Wifi

    I faced also this problem and point 2 helps a bit but the solution for me was point 3

    1. Buy a new BT adapter and put it to your Raspberry. Use dtoverlay=pi3-disable-bt in /boot/config.txt to disable internal BT module.


  • @cyperghost Thank you for your help!

    I have tried @mitu's solution
    but the standard bluetooth is not as stable as PS3 driver:
    controllers don't connect directly, I have to plug them with USB to switch them on.

    Moreover with pi's bluetooth stack;

    • one controller: works fine in EmulationStation and games
    • two controllers: work fine in EmulationStation but no response in games.

    So I remove bluetooth devices and try to reconnect them but it fails now...

    The distance of the controllers doesn't have any impact on the BT signal.
    I will try to disable wifi.

    @cyperghost, what BT adapter do you recommand?
    And does this solution works flawlessly with 3-4 bluetooth controllers?
    And can you add wired + bluetooth controllers at the same time?

    Again, thanks for helping me guys!



  • Try turning off your wifi connection. That works fine for me



  • @Bunnyface Uff.. I used kind of this one ... very cheap but works best. As I mentioned before try to disable WiFi. You can do it manually with rfkill command or use my script. No need to worry you can enable/disable WiFi on the fly with this.

    And does this solution works flawlessly with 3-4 bluetooth controllers?

    Well I was in the same issue like you. With one controller I had lags from time to time (signal strength) but with 2 controllers it was no fun at all to play.
    I can use that adapter with 2 controllers and they run flawless.

    And can you add wired + bluetooth controllers at the same time?

    Yes but I've no PS-controllers. I've two Bluetooth controllers from Snakebyte and some cheap wired pads for first setups. So I can't say if a wired PS-controller and a PS-BT-paired will work. But my two BT controllers and a wired pad works good.



  • I can confirm that 4 genuine ps3 controllers will work with retropie as I use it most weekends this way.
    My setup works flawless, I play many of ps1 multi tap games, alot of micro machines for the mega drive (4 players) and also alot of mame beat'em ups 4 players.
    You must disable WiFi for it to work properly, I worked this out a while back.
    All I do is disable WiFi then install the ps3 driver.
    After that all works perfect.
    Before disabling WiFi my player 1 controller would work fine but the others would work intermittent.
    Hope this helps.



  • @robmcc83 Nice feedback so indeed WiFi Switch Script is useful

    @Bunnyface So try before buy



    • two controllers: work fine in EmulationStation but no response in games.

    Just an idea, am not an expert but is the second controller configured correctly in retroarch, Im only suggesting this cause I had the same problem with a friends pi I set up for him



  • @robmcc83 @cyperghost @chicuelo @mitu

    Thank you again guys! It works!

    I have disabled wifi with f4 "rfkill block wifi"
    and the two controllers work flawlessly!
    The controller 1 is connected instantly without wifi!

    @cyperghost, your script is awesome!
    I don't need keyboard to switch off wifi now :)

    Just one tiny "problem" with the wifi off:
    now, at the start of the Pi,
    there is a boot text (code) between the splashscreen and EmulationStation
    which says "bluetooth stopped" during 10 seconds
    (and other infos loading)

    The only solution I see for this is to let the wifi on.
    Having a nice boot with a cool splashscreen (and shorter boot)
    And disable wifi with cyperghost's script.

    But maybe somebody has the solution to skip the 10 seconds "bluetooth stopped" text?


  • Global Moderator

    @Bunnyface Try disabling the Wait for network boot option in the Raspbian tools, which you can start from the RetroPie system from a terminal with sudo raspi-config.



  • @mitu
    Thank you for this tip!
    The boot is faster disabling "wait for network"
    and I don't have this text between splashscreen and emulation station.

    So, for anybody having buggy bluetooth with 2 PS3 controllers
    with a Raspberry Pi 3B+ and Retropie,
    here is a solution:

    Thanks again everyone,
    we are going to have fun with my friends! :D



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.