Pairing BT keyboard and PS3 Controllers with Pi3
-
Thanks! I can confirm your fix works:
- uninstall PS3 driver
- reboot
- pair the keyboard (or other BT device)
- reinstall the PS3 driver
This left both devices able to communicate with full support. Any way to add this to the Retropie documentation? I'm certain that I'm not the only one with this problem.
Another method that I didn't test was:
- run "sixad --stop; sixad -r" which will revert to regular bluetooth
- attempt to pair normal BT device through retropie setup
- post-pairing, run "sixad --stop; service sixad restart" to return to sixad mode, or just reboot
I'll test this procedure if I get an opportunity.
Also, fun fact! Regular bluetooth won't pair if you ssh in and run retropie_setup.sh. I (idiotically) tried on and off for about an hour through ssh before I ran retropie setup through the emulationstation menu and it worked, first try.
-
@citenx
This is very useful as I'm in a similar situation. Could you explain how you uninstalled then reinstalled the PS3 driver? -
@citenx normal Bluetooth is disabled somewhere in sixad' init script, and the shutdown portion of that doesn't try to restart it. That's why simply killing sixad won't quite do it (I believe).
Glad you got yours set up! I also have a BT keyboard and two DS3 controllers working like this.
-
I have the same question as @sharx: what specifically do we need to do to uninstall and reinstall the PS3 driver?
I start with the standard RetroPie 4.0.2 image and boot it up on my Pi3.
If I try and connect a bluetooth device, Bluetooth headphones in my case, before trying to get a PS3 controller working wirelessly, I can pair the headset. However once I install the PS3 controller driver (RetroPie Setup Script -> Manage Packages -> ps3controller -> Install from source) it will find and pair with my PS3 controller. However Bluetooth stops working and the steps I've tried to regain regular bluetooth functionality haven't worked.
I've researched other users' attempts to get bluetooth working whether or not those seemed to work, and the most promising pieces of info I've found are:
https://github.com/RetroPie/RetroPie-Setup/issues/1502
and
https://github.com/RetroPie/RetroPie-Setup/wiki/Setting-up-a-Bluetooth-controller
But I can't quite figure out how to do this. The "Bluetooth Freeze Fix" in the wiki clearly indicates it works for RetroPie 3.7 and below.I guess I'm writing this to find out how someone like myself with extensive Linux knowledge, a solid understanding of embedded systems and Linux drivers and scripting can help develop a permanent solution. Even if this solution is a "how-to" update to the Wiki to work out a repeatable and current work-around.
How might I get in touch with RetroPie's developers about getting involved with the active development of this piece of the pie?
-
@eltoddo Not sure what you are specifically after - as mentioned earlier in the thread "You can't use PS3 controllers and other bluetooth devices currently"
This is because the ps3 controller replaces the default bluetooth stack (we disable the standard bluetooth daemon when installing the ps3 driver and re-enable when removing)
Some people have found if they pair another bt controller first then install the ps3 driver, their controller still pairs, but it doesn't work for everyone.
Hopefully with a bluez update in the future we will have a better solution.
-
-
@BuZz What I'm specifically after is that I am offering my free engineering service to help solve this problem. I've never been one to see a challenge and let it go just because "that's the way it is". My drive to explore and change things for the better is the whole reason I became an engineer to begin with.
Putting my Product Manager hat on for a moment, if I were in charge, I would see Bluetooth and PS3 controller support as separate features, but requirements none the less. Both would need to exist simultaneously, and not flaky in ways that it works for some people and not others. It's great if someone knowledgeable enough can get them working, but it's better if the user experience is good enough for anyone to get it working. When a product is easy to use, configure and get working, you spend less time answering support calls. And I've seen this one on the forums quite a bit.
Putting my engineering hat back on, I'm very interested and motivated to help use my skills to solve this problem. It was a problem with RetroPie when I used it with an RPi2 over 2 years ago, but I didn't have the time to really dig into it then. Now that the project has come so far in terms of being a more mature open source project, years of hard work of the contributes has really put some polish on the project. I'd like to repay my gratitude by lending a hand myself.
So to the work at hand... is there a person on the project whom Bluetooth/PS3 or generic device support falls under their domain? Or at least a person who knows a good amount about how it's integrated specifically for RetroPie? If so I'd like to see if they could spare a few minutes to talk with me so I can cut the ramp-up time of learning how and why things are implemented the way they are on the RetroPie so I can plan where changes should be made.
I see that a fork of sixad is in the Retropie repos. How does that fit with bluez? I assume that's where the functional pieces of PS3 controller support are.
I can solve this problem with or without community and developer/admin support. I just think maybe it would be good to collaborate on this so we get it done right, in a way that's consistent with the philosophy of the RetroPie devs so they're happy with it too, and in a way that's reliable and repeatable so anyone can manage their devices without technical limitations getting in the way.
-
Feel free to look into it and propose a solution. Packaging a new bluez with raspbian patches and optionally some 3rd party patches if needed is an option, with some changes to the bluetooth module for pairing, but it's work and would need maintaining.
I personally don't consider it a major issue though, and have other things that I want to work on currently.
I don't have time to do a tutorial on how it works - and with your expertise it doesn't sound like you would need one anyway. All the code is available - bluetooth pairing gui and ps3 module are in the retropie-setup repository and the ps3 driver code is in the RetroPie/sixad repository. The commit history will give you an overview.
more info here https://retropie.org.uk/documentation/development/
-
Hey @BuZz thanks for pointing me in the right direction. I don't expect I'll have much trouble figuring things out. I had a look at sixad a couple years back and don't remember it being super complicated. I'll research and let you and/or the other devs know if I get stuck and need any help.
I'm super impressed with the work being done on RetroPie as of late and it's inspired me to help out. And since this is in my domain expertise, I'll see if we can put this one to rest.
Cue the flood of lurkers looking for constant updates...
-
Just arrived to RetroPie and still trying to configure my devices, after reading full topic here are my two cents:
- unistalled PS3 Driver (clone)
- Paired Sony official PS3 bluetooth controller successfully
- Installed PS3 Driver (clone)
- Connect PS3 Clone Gamepad on USB then disconnect
- Push PS button to connect Gamepad.
- All done :)
At this point two devices works properly. I can change from retorpie to kodi and back again and all its fine. Just played some games on joypad, exit retropie onto kodi, navigate using keyboard.. all fine !
But... after reboot, bluetooth keyboard can't be paired again. I need to start over again from point 1.
the question is: It's possible on boot process, disable sixaxis while normal stack connects to bluetooth keyboard (or other devices) and after some time (maybe 1 minute) reenable sixaxis again?
How is started bluetooth device during boot? and where are the scripts?Any advice are welcome if someone has tryed something like this.
Obocaman
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.