[4.1-unstable] Need testers for a bluetooth major improvement

  • Hi !

    Before pushing a major enhancement concerning bluetooth to the unstable branch, i do need as much feedback as possible on some changes.

    You must :

    • have a pi3 or pi2
    • understand this is for testing purpose only, so i expect some feedbacks, you should expect some bugs/failures/apocalypse
    • have already upgraded to 4.1

    Devices not concerned :

    • anything related to Dualshock 3 (they don't follow the standard bt pairing protocol)
    • own a board other than a pi2/3 (just because i only built for pi 2 and 3 for now)
    • any BT audio device (this won't be supported in recalbox)

    Devices concerned :

    • any bluetooth pad, including DualShock 4
    • any keyboard

    What you should do:

    1. preliminary
      • have a 4.1 recalbox on pi2/3
      • edit recalbox.conf and change updates.type=gitlab/30-make-bluetooth-more-reliable and update
      • if you own a DualShock 4, edit recalbox.conf and set controllers.ps3.driver=bluez
      • delete paired devices in ES
    2. the real deal
      • scan for BT devices
      • pair your pad(s)
      • make sure your pad is properly configured in ES
      • test in games
      • test reconnection once the pad went to sleep mode
      • poweroff recalbox, turn it on, turn on your pads, make sure they reconnect
      • test if you can (or not) change players order

    Expected feedback:

    • pad name + firmware version if you ever know it
    • if it worked or not
    • what BT dongle you have

    Known bugs:

    • my 8bitdo Zero would not automatically connect if I turn it on before recalbox. In that case, power cycle, and it's good
    • recalbox will only use the HCI0 bt device. If you're unsure if you're using the internal BT or your dongle, hciconfigmay help you. The device on a /dev/tty is the internal BT. If you want to disable the Pi3 internal BT, edit /boot/config.txt and add dtoverlay=pi3-disable-bt

    I hope i've said it all, now your turn, merry recalboxers 🙂

  • Staff
    Global moderator


    Hi, here are the results from my tests:

    tested with Rpi3 internal Bluetooth

    • Official DualShock 4:

    Working fine, found in a second, configured.
    The pad turns off when rebooting Recalbox. When turning it back on, paired in 3-4 seconds.

    • 8bitdo NES30 (latest firmware)

    Working fine, found in a second, configured.
    The pad satys on when rebooting Recalbox but doesn't automatically pair again.
    When turning it off/on, paired in 2 seconds.

  • So, running an Rpi3, internal bluetooth, with an 8bitdo SFC30 (latest firmware, but I forgot the exact version).

    On first try, the pad connects and pairs perfectly and almost immediately. Setting it up and using it in games works as expected.

    Doesn't turn off when rebooting, and once Recalbox is up and running, it doesn't pair again.

    After turning it off and on again, the pad is totally ineffective, but seems to be paired : Recalbox finds it when I try to enter the pads settings, but keeping a button pressed to enter configuration does nothing.

    I had the same issue before the update. I still have to try with my BT dongle.

  • Avec une manette 8bitdo SFC30 dernière version de firmware : appairage possible en démarrant avec R + Start.
    Au reboot même chose, je dois lancer la manette avec R + Start sinon ça ne fonctionne pas.

    Pour ma manette PS4 : Elle allume la PS4 au lieu d'essayer de s'appairer 😛 Je débrancherais la console et retesterais ce soir.

    J'ai un clavier Qilive Q.8912 pas réussi à l'appairer il n'est même pas vu... J'avais réussi une fois à l'appairer via SSH il y a quelques semaines mais depuis j'ai pas mal réinstallé et n'ai pas recommencé. Quelque chose pourrait aider ?

    Sinon pas de dongle, BT natif du Pi3 🙂

  • Staff
    Global moderator

    I tested it with my NES30 Pro and the Zero.

    • Behaviour before this build:
      After pressing PAIR and selecting the controller, it "paired" instantaneously and the controller didn't respond (kept blinking as well).
    • Behaviour using this build:
      It took some times to press on PAIR for the scanning to begin, but once the devices where found, the system finally took the time to properly pair and connect the controllers.
      I rebooted recalbox and the NES30 Pro connected again without touching it. The zero kept blinking, I power cycled it once and it paired after 3 seconds.

    One thing about the zero. I need to change to sdl2 and add a udev for it to work. Firmwares are 1.02 and 1.03.
    On the NES30 Pro I'm using the v1.72 beta 0.

  • @supernature2k thanks for the feedback 🙂

    @mercvtio the "doesn't reconnect when recalbox reboot" is expected for now, the workaround is just to power cycle your pad. I'm surprised it didn't reconnect. Could you try agani and make a pastebin of you /var/log/messages please ? Thank you

    @DjLeChuck Can't you reset your keyboard ? Or just try with the bluetoothctl CLI (tell me if you need more info on what to do )

    @paradadf thanks for the feedback. Despite the slow discovry, it works as expected 🙂

  • Staff
    Global moderator

    @Substring something worth mentioning is that I am not able to change the Input Player #. The controllers don't appear on the list.
    Can anyone else verify that, please?

    Update: I just entered a game and quit to pair a second controller, and the first controller was selectable from the list!

  • @paradadf said in [4.1-unstable] Need testers for a bluetooth major improvement:

    not able to change the Input Player #

    I'll try on my side. I've updated the 1st post so that people also test it for their feedback

  • @Substring Keyboard: Added with bluetoothctl works yes, that's what I used in the past. (I followed the Pairing Process part of this site: https://wiki.archlinux.org/index.php/bluetooth_keyboard)
    After reboot, the keyboard is paired instantaneously and I can use it.

    PS4 pad: Added with bluetoothctl too. Works great and paired after reboot.

  • @Substring The odd thing is my pad seems to reconnect, but the inputs have absolutely no effect.
    I did a pastebin of my /var/log/messages, but it is quite long. Do you want me to paste it here, or do I look for something in particular ?

    I should add that when I try to set a pad for a specific player, my sfc30 seems to show up as a PS3 controller. Very strange.

  • @Substring OK, problem settled. The PS3 controller had me wondering, and so I took a look at my recalbox.conf file. Turns out PS3 controllers were enabled, and disabling them seems to have resolved my issue.

    SFC30 now reconnects just fine after a reboot and regular power cycle. Nothing to worry about !

  • @DjLeChuck supernature2k DS4 worked straight out of the box, no need to use the CLI ... WHAT HAVE YOU DONE ?!?!?

  • @Substring installed over 4.1, rasp pi3, internal BT.

    on first reboot it immediately told me another software update was available. but first i attempted to pair my NES30. Pair a controller instantly found like 10 devices in my area. Paired the NES 30, it was fine. turned off the controller, turned it back on via Start+R (which never ever worked before) and the controller won't reconnect. Rebooted the recalbox, still wouldn't reconnect. So i plugged it in via USB and ran the second update. when that finished it said the update turned off vibration for PSX or something. So i attempted to re-pair my NES30. Now the BT is acting like it did prior to the "Better bluetooth" update. It only finds my TV and my iMac instead a ton of devices. When it finally does find my NES30, i try to pair it, it says its successfully paired but the controller is still blinking and it doesn't actually connect.

    I tried turning the controller off and back on with just START. nothing
    turned it off and back on with START+R. Nothing.

    I don't know why but START+R has never worked for me ever, even on the 4.0 release . I alway had to turn the controller on and off multiple times before it would just decide to connect.

    Did the update after the "better bluetooth" update kill the new BT functionality? Cuz now it takes longer to find devices and only finds me TV and iMac half the time.

  • Staff
    Global moderator

    @jimmirehman maybe stupid question but... did you ever update the 8bitdo firmware? Start+R mode is not available in old firmwares...

  • @jimmirehman you have to switch back to the update type i mentionned on the first post, because you switched back to the unstable branch (well, ES did it for you, sadly). Once your on my branch, do not follow updates

  • @supernature2k running the absolute latest release version of the nes30 firmware. Updated it this past weekend

  • @Substring so switch the better Bluetooth update then once it reboots, change back to "stable" updates to kill the update prompt?

  • @jimmirehman just don't do any update once you switched to the BT specific update unless you want to get back to the "normal" unstable

  • @Substring ok, giving this another shot. And after i pair the nes30, i should be able to connect it via START+R correct?

  • @jimmirehman yup. The pad will autoconnect only if the bluetooth on recalbox is already started. If it doesn't connect, Power cycle

Want to support us ?