PS3 clone controller not pairing via bluetooth, errors via USB

Welcome Page Forums RetroPie Project Controller Configuration in RetroPie PS3 clone controller not pairing via bluetooth, errors via USB

This topic contains 6 replies, has 3 voices, and was last updated by Profile photo of elahi elahi 1 year, 6 months ago.

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #112342
    Profile photo of elahi
    elahi
    Participant

    Retropie 3.3, upgraded from 3.2. PS3 clone controller when connected using USB shows following error during boot:

    [    4.997125] input: SHENGHIC 2009/0708ZXW-V1Inc. PLAYSTATION(R)3Conteroller as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:054C:0268.0001/input/input2
    [    5.019724] sony 0003:054C:0268.0001: input,hiddev0,hidraw2: USB HID v1.11 Joystick [SHENGHIC 2009/0708ZXW-V1Inc. PLAYSTATION(R)3Conteroller] on usb-3f980000.usb-1.2/input0
    [    5.047198] sony 0003:054C:0268.0001: can't set operational mode: step 3
    [    5.124475] usbcore: registered new interface driver rtl8192cu
    [    5.144216] sony: probe of 0003:054C:0268.0001 failed with error -71

    Running sixpair reproduces the issue:

    pi@retropie ~ $ sudo sixpair
    Current Bluetooth master: 20:36:00:32:00:de
    Setting master bd_addr to 00:15:83:3d:0a:57
    pi@retropie ~ $ dmesg | tail
    ...
    [ 1161.009755] usb 1-1.2: reset full-speed USB device number 4 using dwc_otg
    [ 1161.128576] input: SHENGHIC 2009/0708ZXW-V1Inc. PLAYSTATION(R)3Conteroller as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:054C:0268.0004/input/input5
    [ 1161.130738] sony 0003:054C:0268.0004: input,hiddev0,hidraw2: USB HID v1.11 Joystick [SHENGHIC 2009/0708ZXW-V1Inc. PLAYSTATION(R)3Conteroller] on usb-3f980000.usb-1.2/input0
    [ 1161.136223] sony 0003:054C:0268.0004: can't set operational mode: step 3
    [ 1161.200246] sony: probe of 0003:054C:0268.0004 failed with error -71

    Master bd_addr 00:15:83:3d:0a:57 is USB Bluetooth dongle:

    pi@retropie ~ $ hcitool dev
    Devices:
            hci0    00:15:83:3D:0A:57
    pi@retropie ~ $ lsusb
    Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
    Bus 001 Device 004: ID 054c:0268 Sony Corp. Batoh Device / PlayStation 3 Controller
    Bus 001 Device 005: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
    Bus 001 Device 006: ID 24ae:2000
    Bus 001 Device 007: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter

    After disconnecting gamepad from USB and trying to connect via Bluetooth (by pressing Home button on gamepad) BT connection appears for ~30 seconds then goes down, gamepad is not paired:

    pi@retropie ~ $ hcitool con
    Connections:
            > ACL 00:1E:3D:DE:0B:CC handle 42 state 1 lm MASTER
    pi@retropie ~ $ hcitool info 00:1E:3D:DE:0B:CC
    Requesting information ...
            BD Address:  00:1E:3D:DE:0B:CC
            Device Name: PLAYSTATION(R)3Conteroller-ghic
            LMP Version: 3.0 (0x5) LMP Subversion: 0xc
            Manufacturer: RDA Microelectronics (97)
            Features page 0: 0xfc 0x07 0x82 0x7a 0x08 0x18 0x00 0x80
                    <encryption> <slot offset> <timing accuracy> <role switch>
                    <hold mode> <sniff mode> <park state> <RSSI> <channel quality>
                    <paging scheme> <broadcast encrypt> <EDR ACL 2 Mbps>
                    <enhanced iscan> <interlaced iscan> <interlaced pscan>
                    <inquiry with RSSI> <AFH cap. slave> <AFH cap. master>
                    <AFH class. master> <extended features>
            Features page 1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
            Features page 2: 0xff 0xa7 0xff 0xff 0x00 0x65 0x07 0x01
    
    ... wait 30 secs...
    pi@retropie ~ $ hcitool con
    Connections:
    pi@retropie ~ $

    Nothing is logged in /var/log/messages during BT connection attempt. Controller has not been tested with Retropie 3.2.

    Please help make this setup working. Thanks in advance!

    #112410
    Profile photo of gv0000
    gv0000
    Participant

    Any luck? I’ve been struggling with the same question and have only found a hundred incorrect suggestions on this site.

    #112411
    Profile photo of gizmo98
    gizmo98
    Participant

    Original and gasia clone controllers are supported at the moment. I have equal problems with a shanwan clone. This controller does not even work wired.

    #112424
    Profile photo of elahi
    elahi
    Participant

    I’ve found the similar issue with RedHat – https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=1255325 . Have anyone tried this with Retropie?

    #112433
    Profile photo of gizmo98
    gizmo98
    Participant

    Good to know. Looks like a linux kernel driver bug.

    #112568
    Profile photo of elahi
    elahi
    Participant

    I’ve tried implementing wokraround mentioned before (edit hid-sony.c) with no luck. Gamepad connects using USB successfully (no error -71) but still is not paired via bluetooth.

    #112595
    Profile photo of elahi
    elahi
    Participant

    I’ve spent some time playing with sixad (Gasia branch). I’ve found that hid_server() function (see bluetooth.cpp) loops continously and exits each and every cycle after getting zero or negative value from ppoll() (see code below). Pressing Home button while disconnected from USB does not affect behavior. Here I’m stuck since I do not really understand what ppoll() expected to return…

        while (!io_canceled()) {
            int i, idx = 2;
    
            for (i=0; i<idx; i++)
                p.revents = 0;
    
            timeout.tv_sec = 1;
            timeout.tv_nsec = 0;
    
            if (ppoll(p, idx, &timeout, &sigs) < 1)
                continue;
    
            events = p[0].revents | p[1].revents;
    
            if (events & POLLIN) {
                if (debug) syslog(LOG_INFO, "One event received");
                l2cap_accept(ctl, csk, isk, debug, legacy);
                if (debug) syslog(LOG_INFO, "One event proccessed");
                break;
            }
    
            if (events & (POLLERR | POLLHUP)) {
                if (debug) syslog(LOG_ERR, "Server mode loop was broken");
                break;
            }
    
        }
Viewing 7 posts - 1 through 7 (of 7 total)

Forums are currently read only - please visit the new RetroPie forums at https://retropie.org.uk/forums/

Skip to toolbar