BEBONCOOL controller bluetooth issues
-
@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.
-
@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.
-
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
-
@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 itgit 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.
-
-
@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! :)
-
@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.
-
@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!
-
@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.
-
@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.
-
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" -
@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!
-
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.
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.