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

    BEBONCOOL controller bluetooth issues

    Scheduled Pinned Locked Moved Help and Support
    bluetoothbeboncoolcontroller
    14 Posts 6 Posters 7.8k 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.
    • S
      slimbrick
      last edited by

      I am having bluetooth issues with a BEBONCOOL bluetooth wireless controller. I went through the bluetooth connection process with a terminal command line as specified on the Github page; the Pi reported the connection as active; and I ran jstest /dev/input/js0 and saw the Pi responding to button presses and joystick movements properly. Yet when I start emulationstation it does not recognize the controller. Here are my answers to the standard questions:

      Pi Model or other hardware: pi3
      Power Supply used: The one the cana kit came with
      RetroPie Version Used: v4.3
      Built From: Pre-made SD Image on RetroPie website (retropie-4.3-rpi2_rpi3.img)
      USB Devices connected: Keyboard
      Controller used: Beboncool - https://www.amazon.com/gp/product/B01N8WWOE5/ref=oh_aui_detailpage_o00_s01?ie=UTF8&psc=1
      Error messages received: None
      Log found in /dev/shm/runcommand.log (if relevant):
      Guide used: (Mention if you followed a guide) Gihub Bluetooth Controller Page (https://github.com/RetroPie/RetroPie-Setup/wiki/Bluetooth-Controller)
      File: (File with issue - with FULL path) N/A
      Emulator: (Name of emulator - if applicable) N/A
      Attachment of config files: (PLEASE USE PASTEBIN.COM FOR LARGE LOGS) N/A
      How to replicate the problem: Try to bluetooth connect the Beboncool controller

      Frankly, I'd get another controller, however given the jstest is working properly, I figured I should ask the question of what might be wrong. Oh, I should mention: when I connect this controller over USB it works fine. Any ideas?

      Thanks

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

        @slimbrick OK, so you got your controller paired, does jstest recognizes the button presses as buttons or something else ? My guess is that over bluetooth it's using some Android HID protocol that's not the standard joystick protocol.
        From their page (http://www.beboncool.com/product/beboncool-b21-bluetooth-gamepad-for-for-android-phonetablettv-boxgear-vremulator-not-clip-included/):

        Bluetooth controller function is only for Android Bluetooth Device. When for Windows PC, it works as Wired Gamepad not Bluetooth gamepad.

        S 1 Reply Last reply Reply Quote 0
        • S
          slimbrick @mitu
          last edited by

          @mitu When running jstest with the Beboncool controller paired through bluetooth, button presses on the controller respond as various "Buttons" in the jstest. For example, a press of "A" is Button 0, "X" is Button 3, "Start" is Button 11 and so forth. When I press the Dpad directions, I get responses in the Axes of jstest (up/down is Axes 1, left/right is Axis 0). Similarly, using the left and right joysticks also gets responses in Axes of jstest.

          I read the Android Bluetooth Device as well, however, given that I am getting these responses in jstest, shouldn't it work?

          Thanks again.

          1 Reply Last reply Reply Quote 0
          • S
            slimbrick
            last edited by

            It's been a few days and no one responded, so I thought I would ask again...I have my Beboncool bluetooth controller paired to the Pi and a jstest /dev/input/js0 responds correctly to all button presses and joystick inputs, yet is not recognized by emulationstation or the emulators. Seems to me that the jstest results tell me the emulators should work fine with this controller. Is there anything else I can do, or should I just buy another controller?

            Thanks

            mituM 1 Reply Last reply Reply Quote -1
            • mituM
              mitu Global Moderator @slimbrick
              last edited by

              @slimbrick I don't know why ES doesn't detect your joystick. Another way to test if SDL (which is used by Emulatiostation) detects your joystick is to use the jstest-sdl program from https://github.com/meleu/jstest-sdl.
              Use SSH to connect to the PI system, then clone the repository and install it

              git clone https://github.com/meleu/jstest-sdl
              cd jstest-sdl
              sudo apt-get install libsdl2-dev libncurses5-dev
              make
              

              If no error occurs, you should be able to run the test program with

              # List the available joysticks, get the index number
              ./jstest-sdl -l
              # Test the 1st joystick
              ./jstest-sdl -t 0
              

              This might give us a clue why ES doesn't detect your joystick, but it still doesn't work, then I don't know what else we can do.

              jonnykeshJ S 2 Replies Last reply Reply Quote 1
              • jonnykeshJ
                jonnykesh @mitu
                last edited by

                @mitu Thanks for this. Another great script from @meleu. I didn't even know this existed.

                1 Reply Last reply Reply Quote 0
                • S
                  slimbrick @mitu
                  last edited by

                  @mitu Thank you. jstest-sdl does not register this controller. When I run jstest-sdl -l, I get the return "No joysticks were found." If I try to force a test with jstest-sdl -t 0, I get "Unable to open joystick 0."

                  Yet, as I have written previously, jstest does find the joystick and show appropriate responses.

                  So, I suppose we have an answer. Emulationstation uses SDL (Simple DirectMedia Layer?) and jstest uses a different library to access bluetooth connected devices.

                  Thanks. Now I have to buy the right controller! :)

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

                    @slimbrick said in BEBONCOOL controller bluetooth issues:

                    So, I suppose we have an answer. Emulationstation uses SDL (Simple DirectMedia Layer?) and jstest uses a different library to access bluetooth connected devices.

                    The way it looks, SDL2 uses /dev/input/eventY files to read information about the available joysticks, unlike jstest which reads them from /dev/input/jsX. See https://wiki.archlinux.org/index.php/Gamepad#Joystick_input_systems for an explanation.

                    Sorry we couldn't make it work, perhaps in the future this might be supported, but right now I think getting another controller would be a better choice.

                    S 1 Reply Last reply Reply Quote 0
                    • S
                      slimbrick @mitu
                      last edited by

                      @mitu said in BEBONCOOL controller bluetooth issues:

                      The way it looks, SDL2 uses /dev/input/eventY files to read information about the available joysticks, unlike jstest which reads them from /dev/input/jsX. See https://wiki.archlinux.org/index.php/Gamepad#Joystick_input_systems for an explanation.

                      This link suggests I could fix it by setting the environment variable SDL_JOYSTICK_DEVICE=/dev/input/js0. I did so, but no luck. I have to be honest, this has little to do with me being too cheap to buy another controller. I just find sorting out what's going on so interesting!

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

                        @slimbrick said in BEBONCOOL controller bluetooth issues:

                        This link suggests I could fix it by setting the environment variable SDL_JOYSTICK_DEVICE=/dev/input/js0

                        I've seen that, but it's for SDL1 only and it's ignored by SDL2 - which is the version ES is using.

                        1 Reply Last reply Reply Quote 0
                        • S
                          slimbrick
                          last edited by

                          @mitu said in BEBONCOOL controller bluetooth issues:

                          I've seen that, but it's for SDL1 only and it's ignored by SDL2 - which is the version ES is using.

                          Maybe I should make up own environmental variable SDL2_JOYSTICK_DEVICE=/dev/input/js0. Hah! Logitech F710 is on the way.

                          1 Reply Last reply Reply Quote 0
                          • M
                            mark2472
                            last edited by

                            In case anyone else is having a problem with Beboncool controllers and comes here from google, mine works via bluetooth after following this:

                            1.) Register the controller using the RetroPie menu "Configure Bluetooth Devices"
                            2.) At the main screen, press F4 to drop to the command line (or SSH in using putty)
                            3.) Type "sudo nano /etc/udev/rules.d/55-local.rules" to create a new udev rule file containing the following entry:
                            SUBSYSTEM=="input", ATTRS{name}=="BBC-GAME", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"
                            4.) Press CTRL+X and save the changes
                            5.) Exit the command line by typing "reboot" or "exit"

                            From:
                            https://www.amazon.com/gp/customer-reviews/R3GVRHP307ROSX/ref=cm_cr_arp_d_rvw_ttl?ie=UTF8&ASIN=B01N8WWOE5

                            Y 1 Reply Last reply Reply Quote 3
                            • Y
                              youngmathimus @mark2472
                              last edited by

                              @mark2472 sorry for the necro, I just created an account to say thank you for posting this. This allows me to use my Bluetooth controllers on raspbian through the new steam link app. Thank you!

                              1 Reply Last reply Reply Quote 0
                              • I
                                i2b5k0
                                last edited by

                                Well yes this did get the BB-GAME controller working in emulation station. And non-retroarch emulators. Unfortunately, Retroach hates this controller for some reason.

                                1 Reply Last reply Reply Quote 0
                                • 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.