SHANWAN / PS3 CONTROLLER Pi3 RETROPIE 3.6 BLUETOOTH SETUP
-
@MrGlad8
I think that most Shanwan users in this thread managed to pair their controllers by following instructions which can be found in my blog post at https://raspberryblog.de/?p=1870
I received a lot of feedback, indicating that it worked for most of them. You shouldn't be worried about coding - it is not necessary for installation of patched bluez. If you are on archlinux, you may want to try the AUR package from https://aur.archlinux.org/packages/bluez-ps3/ which is based on the patched bluez fork.Cheers,
/luetzel -
@luetzel said in SHANWAN / PS3 CONTROLLER Pi3 RETROPIE 3.6 BLUETOOTH SETUP:
I received a lot of feedback, indicating that it worked for most of them. You shouldn't be worried about coding - it is not necessary for installation of patched bluez. If you are on archlinux, you may want to try the AUR package from https://aur.archlinux.org/packages/bluez-ps3/ which is based on the patched bluez fork.
I don't want to hijack the thread too much but I was wondering if it was possible to run RetroPie on a non-Debian distro (like Arch) so I could attempt a 64-bit build and compile from source to try and optimize a bit for the Pi3 hardware over the Pi 1 and Pi Zero hardware.
-
Hello,
After some weeks of not using Retropie I updated and started it and found out and my two controllers are now identified as player 3 and player 4, and in retropie it says that there are 4 controllers available. Can you tell me how to reset all the controllers configuration so I can start over?Thanks!
-
Just sharing my experience...
I've tried to pair my two SHANWAN PS3 controllers with retropie 4.1 (raspberry 3). Even bluez I tried. Nothing really worked.
Then I did a full distro update and it magically started to work (I didn't have any PS3 drivers installed anymore).Cheers
-
HCI sniffer - Bluetooth packet analyzer ver 5.23
device: hci0 snap_len: 1500 filter: 0xffffffffHCI Event: Connect Complete (0x03) plen 11
status 0x10 handle 1 bdaddr 05:99:63:69:63:25 type ACL encrypt 0x00
Error: Connection Accept Timeout Exceeded
HCI Event: Connect Request (0x04) plen 10
bdaddr 05:99:63:69:63:25 class 0x000540 type ACL
HCI Event: Command Status (0x0f) plen 4
Accept Connection Request (0x01|0x0009) status 0x00 ncmd 1
HCI Event: Connect Complete (0x03) plen 11
status 0x00 handle 0 bdaddr 05:99:63:69:63:25 type ACL encrypt 0x00
HCI Event: Command Status (0x0f) plen 4
Read Remote Supported Features (0x01|0x001b) status 0x00 ncmd 1
HCI Event: Read Remote Supported Features (0x0b) plen 11
status 0x00 handle 0
Features: 0xff 0xff 0x8d 0x7a 0x98 0x1f 0x78 0x83
HCI Event: Command Status (0x0f) plen 4
Read Remote Extended Features (0x01|0x001c) status 0x00 ncmd 1
HCI Event: Read Remote Extended Features (0x23) plen 13
status 0x00 handle 0 page 1 max 0
Features: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
HCI Event: Command Status (0x0f) plen 4
Remote Name Request (0x01|0x0019) status 0x00 ncmd 0
HCI Event: Remote Name Req Complete (0x07) plen 255
status 0x00 bdaddr 05:99:63:69:63:25 name 'PLAYSTATION(R)3Conteroller-PANHAI'
HCI Event: Command Status (0x0f) plen 4
Unknown (0x00|0x0000) status 0x00 ncmd 1
HCI Event: Connect Request (0x04) plen 10
bdaddr 05:99:63:69:63:25 class 0x000540 type ACL
HCI Event: Command Status (0x0f) plen 4
Accept Connection Request (0x01|0x0009) status 0x00 ncmd 1
HCI Event: Connect Complete (0x03) plen 11
status 0x12 handle 0 bdaddr 05:99:63:69:63:25 type ACL encrypt 0x00
Error: Invalid HCI Command Parameters
HCI Event: Disconn Complete (0x05) plen 4
status 0x00 handle 0 reason 0x08
Reason: Connection Timeout
HCI Event: Connect Complete (0x03) plen 11
status 0x10 handle 1 bdaddr 05:99:63:69:63:25 type ACL encrypt 0x00
Error: Connection Accept Timeout Exceededlsusb:
Bus 001 Device 004: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)dmesg (when the controller is usb connected)
[ 479.403082] input: SHANWAN PS3 GamePad as /devices/platform/soc/20980000.usb/usb1/1-1/1-1.5/1-1.5:1.0/0003:054C:0268.0008/input/input7
[ 479.427206] sony 0003:054C:0268.0008: input,hiddev0,hidraw0: USB HID v1.10 Joystick [SHANWAN PS3 GamePad] on usb-20980000.usb-1.5/input0Also:
pi@retropie:~ $ sudo sixad --start
[ ok ] Starting bluetooth (via systemctl): bluetooth.service.
sixad-bin[2056]: started
sixad-bin[2056]: sixad started, press the PS button now
Watching... (5s)
^Csixad-bin[2056]: unable to accept info stream
sixad-bin[2056]: DoneCould the problem be the dongle is only BT 2.0?
-
This post is deleted! -
@Wolfman100 I personally confirm with my SZMY-POWER gamepad that your instruction works! The most important part is to use "gasia only" sixad. Read here:
http://raspberrypi.stackexchange.com/questions/54522/retropie-ps3-controller-over-bluetooth/54630
Unfortunately, I don't have my Pi with me so I did this in my laptop running Debian Jessie. So, I downloaded sixad source code from GitHub and compile it with "make GASIA_GAMEPAD_HACKS=1" which essentially should equivalent to "gasia only" in RetroPie. I tested the gamepad connected via bluetooth with PPSSPP v1.3 and I can use the buttons and analog controls.
-
@dhanar10 Hi,thankyou for the update with your success.I've just randomly seen this as it seems that I do not get properly notified of new posts.
I'm curious as to how you've managed to get this working,as currently I still cannot get the SZMY-POWER pad to pair correctly other than one rare time!
-
I can also now happily confirm that I have got the SZMY-POWER pad paired and working!
I achieved this on the latest build of RetroPie running inside OSMC as 'RetroOSMC'.
The steps taken were as follows:
1)Updating RetroPie Setup to latest build.
2)Uninstalling all PS3 controller packages
3)Installing 'GASIA ONLY' PS3 package
4)navigating via SSH to
cd /usr/sbin/
5)Changing the permissions inside this directory by doing:
sudo chmod 755 sixad-sixaxis
6)Then restarting the Sixad Daemon:
sudo /etc/init.d/sixad restart
7)Happy Days!!
I'm not sure exactly what has changed for this to now work but I am assuming it's something to do with the RetroPie build?
I am over the moon that this is now working as I actually feel that the SZMY-POWER controllers are much better build quality than the SHANWAN's and actually eventually now seem to not require any Bluez patching to be done etc.
I just hope that the pairing is consistent and reliable.Fingers crossed.
-
Hmmmmmm...as ever yet more work to be done! :-(
Controller paired and worked fine.I quit Emulation Station numerous times and booted back in and the controller was still paired nicely.
The stumbling block however came when I rebooted the Pi itself,as I wanted to check the stability of the pairing.Upon rebooting the Pi and then back into Emulation station,the one light on the controller stays on indicating that it is paired,however the controls don't do anything and when plugging the controller in via USB lead it also doesn't work (which previously worked with no trouble) and instead it just starts rumbling while the 1+3 lights stay on and then just continues to endlessly rumble even when I unplug it from the USB with no way to stop it!!!Arrrrgggggghhhhhhhhhh!!!
SO CLOSE.
-
Got the SHANWAN controller working like this:
Insert the bt-dongle, fire the retropi up.
Update all packages
- remove sixad installation from gui
- sudo apt-get update
- sudo apt-get bluez-tools (at least CSR 4.0 wasn't fully recognized without it)
- sudo hciconfig hci0 up (at least CSR 4.0 required this)
- reboot
- install the ps3contoller from the GUI (extras)
- install/config the SHANWAN controller (third option)
- Pair the controller by plugging it in via usb-cable for few seconds (it rumbles). Press the p3-button
- remove the usb cable and press the p3 button. It takes few moments while all the leds blink and then only the 1st led should be lit.
- configure the input using the gui.
If it still does not work, buy CSR 4.0 -bluetooth adapter. Then it's guranteed to work.
-
I have worked out that the issue seems to be that when rebooting the system the Sixad Daemon does not restart and after running the following again it once again it seems to pair:
sudo /etc/init.d/sixad restart
Can anyone help me with how to make this run upon Reboot/Launch?I think this may well solve the issue
-
I can confirm that if I reboot and restart the Sixad service it now pairs every time without fail,if someone could just enlighten me as to how I can make this automated so that it restarts on reboot automatically that would be amazing.
-
@Wolfman100 i finally got my SZMY-POWER controller to work even after reboot. Stoked! What worked for me was after you restart the sixad service and pair the controller, save the sixad as a daemon by typing "sudo update-rc.d sixad defaults" then reboot and it should be all good.
I noticed from test playing that the controls get very laggy. Has anyone experienced this? I have to literally point my controller at the pi. I wonder if it's because it's sitting right next to my xbox one s (which is turned on) in the shelf under the tv, and my router is sitting behind the tv. Could that cause any interference? It's pretty bad trying to control games. Bt signal seems very weak. Gotta be within 3 feet to work properly, still with minor lag.
Would appreciate any feedback and help. Thanks guys. I've learned so much from everyone at this forum.Happy New Year!
Cheers!
-
@Krayzie I now too have managed to get it paired everytime by adding some script.I think my case is slightly different as I am running RetroPie inside OSMC.
Regarding the lag,mine seems to be OK...slight lag,but bearable.Bear in mind that the use of shaders and high-res rendering etc will increase the lag time considerably.
-
I am interested on getting a PS3 gamepad because it has a similar symbol layout and button layout in Japan to the one of a SNES gamepad, is true that the XBOX gamepad uses the same XABY buttons as a SNES but its locations are swapped
-
hello
All the messing around Ive done with this! lol I was on retrOSMC, but now have retropie on attract 200gb image. I couldve bought 10 genuine PS3 controllers with all the time Ive burned.. hehe anyway all part of the fun, init. What actually worked for me was this,.. https://raspberrypi.stackexchange.com/questions/54522/retropie-ps3-controller-over-bluetoothHad to configure buttons which took a while but got there in the end!! Aint possible for retropie build guys to incorporate this so it works out the box?? just a thought. would save 1000's man hours globally Im sure! LOL
cheers
-
There's so much to read.. and I am totally new to all of this. I am having the same issue, my replica PS3 controllers will not pair wirelessly and there is a constant vibration when plugged directly in, how do I fix this?
-
ShanWan gamepad controllers in Linux - vibration bug fix for the USB connection
Original idea:
https://forums.gentoo.org/viewtopic-t-1038906-start-0.htmlUbuntu (Should work for RetroPie which is debian based):
Kernel recompillation (https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel).
sudo apt-get source linux-image-$(uname -r)
sudo apt-get build-dep linux-image-$(uname -r)
cd linux-4-4-0 (for 16.04, may be different in the newer version)
edit drivers/hid/hid-sony.c:+/*
-
- The ShanWan PS(R) Ga`epad reports the same id as the Sony SixAxis, therefore
-
- it can't be added to sony_devices[], but we still need to know which one
-
- we're dealing with.
- */
+static int is_shanwan_gamepad(struct hid_device *hdev)
+{ - return strstr(hdev->name, "ShanWan") || strstr(hdev->name, "SHANWAN");
+}
static __u8 *sixaxis_fixup(struct hid_device *hdev, __u8 *rdesc,
unsigned int *rsize)
{<---->
static __u8 *sony_report_fixup(struct hid_device *hdev, __u8 *rdesc,
unsigned int *rsize)
{
struct sony_sc *sc = hid_get_drvdata(hdev);- /*
-
- The ShanWan gamepads, when used over USB, times out when
-
- initialising reports, but it works just fine without init.
- */
- if((sc->quirks & SIXAXIS_CONTROLLER_USB) && is_shanwan_gamepad(hdev))
-
hdev->quirks |= HID_QUIRK_NO_INIT_REPORTS; /* * Some Sony RF receivers wrongly declare the mouse pointer as a * a constant non-data variable. */ if ((sc->quirks & VAIO_RDESC_CONSTANT) && *rsize >= 56 &&
<--------------->
/* * Some compatible controllers like the Speedlink Strike FX and * Gasia need another query plus an USB interrupt to get operational.
-
* The ShanWan gamepads don't like these additional steps. */
-
if(is_shanwan_gamepad(hdev))
-
goto out; ret = hid_hw_raw_request(hdev, 0xf5, buf, SIXAXIS_REPORT_0xF5_SIZE, HID_FEATURE_REPORT, HID_REQ_GET_REPORT);
compile kernel with:
fakeroot debian/rules cleanquicker build:
fakeroot debian/rules binary-headers binary-generic binary-perarch
install the new kernel
cd ../
sudo dpkg -i linux-headers*.deb linux-image-*.debLakka:
Compiling with Ubuntu (http://www.lakka.tv/doc/Compiling-Lakka/):
sudo apt install build-essential u-boot-tools
(the second is needed for mkimage command)git clone https://github.com/libretro/Lakka-LibreELEC
cd Lakka-LibreELEC
DISTRO=Lakka PROJECT=Generic ARCH=i386 make image # for 32 bits PCsinterrupt compillation during linux kernel compillation (when driver section is started), edit build.Lakka-Generic.i386-8.0-devel/linux-4.9.29/drivers/hid/hid-sony.c as before
continue compillation
DISTRO=Lakka PROJECT=Generic ARCH=i386 make image # for 32 bits PCsflash image on USB
install image from USBSwitch off ribbon (needed for my old Acer AA0 110 netbook):
with USB enter command line:- At the boot press tab and type:
live retroarch=0 tty
after logo appears press Alt+F3 - edit roms/System/linux.conf (or similar file name) adding in the beginning:
TIMEOUT 15
SAY PRESS TAB FOR OPTIONS
INTERRUPT 1
(or option which is 0 there). The exact definition can be checked in *conf file in ~/
Reboot from main disk.
- At the boot press tab and type:
linux retroarch=0 tty
after logo appears press Alt+F3
type
retroarch
see error if retroarch does not start and edit
.config/retroarch/retroarch.conf
add line:
menu_shader_pipeline = "O" -
-
wow that looks a bit hard core! Anyway, thought I'd chime in with another issue Im facing..
now my clone shanwan PS3 controllers been working awesomely now for months until I did a full retropie update.
Now they still work, but will not pair to player 1 or position 1 led. it always pairs to player 2. Then the 2nd controller pairs to player 3 etc.. I have completely removed PS3 driver, reboot, reinstall shanwan, reboot, but still same behaviour. Even tried without my keyboard plugged in.
I looked in retropie bluetooth see if anything to clear in there, but nothing.
Is there some residual config thats not being cleaned up by a PS3 driver uninstall? Can I try a manual clean up to start from scratch so to speak?
What was in this latest update, or maybe just something I've done wrong?cheers
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.