batocera-linux / batocera.linux

batocera.linux
https://batocera.org
Other
1.94k stars 501 forks source link

[v36][v37] Controller cannot reconnect after first use (8Bitdo SN30 pro and similar controllers) #9006

Open lucadellasantina opened 1 year ago

lucadellasantina commented 1 year ago

I am experiencing a strange bug limited only to 8bitdo (SN30 pro and similar) bluetooth controllers connected in switch mode (pressing Start+Y on the controller before pairing):

After the first pairing, calibration and use, the following time the controller is reconnected, emulationstation does not respond anymore to any button pressed on the controller. The same happens but inconsistently using the original pro controller.

To replicate the bug: 1) Turn on the SN30 pro controller in switch mode using Start+Y 2) Pair the controller in batocera using automatic bluetooth device pairing 3) Configure button mapping and navigate emulationstation to confirm all is working 4) Shut off the controller or restart batocera 5) Reconnect the controller in switch mode using Start+Y 6) Emulationstation does not respond anymore to buttons being pressed.

The only solution at this point is forgetting the bluetooth device and re-pairing it for another one-time use. The same controller works perfectly when connected using Xinput mode (Start+X). I am running batocera stable v36 and the controllers are updated with the latest 8itDo firmware.

Please let me know if there are any logs I can provide to identify this bug.

Thank you.

ordovice commented 1 year ago

I have SN30 controllers as well and can replicate this issue. If we can provide any logs, just let us know

ordovice commented 1 year ago

Can confirm issue is in v37 as well

ordovice commented 1 year ago

troubleshooting included running through a manual pair/connect/trust and watching in bluetoothctl a disconnect/reconnect. Unit connects to BT just fine but doesn't appear available at all in evtest

lucadellasantina commented 1 year ago

The bug is a slight different with the original switch pro controller: the controller pairs correctly but after a few minutes of use it automatically shuts off and restart trying to reconnect but without ever reaching connection state.

During the failed attempts to reconnection, this is the output of bluetoothclt:

[root@BATOCERA /userdata/system]# bluetoothctl
Agent registered
[CHG] Device 28:CF:51:A5:62:6F Connected: no
[CHG] Device 28:CF:51:A5:62:6F Connected: yes

As if the bluetooth stack thinks the controller is reconnected, although the lights on the controller are still blinking and the none of the buttons operates emulationstation.

For this controller there is no need to re-pair. Rebooting batocera allows to reconnect the controller temporarily until the connection drops again after some minutes of use.

lucadellasantina commented 1 year ago

None of these issues exist when the same controllers are connected via USB cable, it consistently happens only when connected via bluetooth.

joinski1 commented 1 year ago

Is there a certain reason, why you want to use Switch Mode (Start + Y) instead of X-Input or D-Input mode?

lucadellasantina commented 1 year ago

For 8bitdo controllers,this enables data streaming from the gyroscope. For the switch pro controller, this is the only mode of bluetooth connectivity.

Ninnteen commented 1 year ago

Any updates on this issue?

angelvega93 commented 1 year ago

Any updates on this issue? x2

bpierce444 commented 1 year ago

I'm on the latest beta of Batocera Beta v38 and it seems to be working better. There are still instances where it doesn't reconnect but most of the time it does. I'm using a cheap knockoff Switch controller.

TimWinkler commented 10 months ago

same issue with 8Bitdo SN30 pro on the latest batocera beta, any help?

joinski1 commented 10 months ago

same issue with 8Bitdo SN30 pro on the latest batocera beta, any help?

which mode do you use? x-input, d-input or switch mode? and how long did you wait? i noticed on some of my 8bitdo controllers, that reconnecting via bluetooth after a re-/new start of my machine can take up to 20-30 seconds.

TimWinkler commented 10 months ago

i was using x-input, but with d-input it works fine. layer 8 issue..... now i need to figure out how the hotkey is mapped start+select is not working

joinski1 commented 10 months ago

i was using x-input, but with d-input it works fine. layer 8 issue..... now i need to figure out how the hotkey is mapped start+select is not working

out-of-the-box the hotkey on 8bitdo controllers is either the star or the heart button. but you can always self define the hotkey to your liking by going into Controller Settings and do the button mapping.

TimWinkler commented 10 months ago

works perfectly fine - thank you

n2qz commented 8 months ago

works perfectly fine - thank you

Is this issue resolved?

catch-404 commented 8 months ago

I'm facing the same issue in v38 with an 8bitdo SN30 pro. As OP explained, X-input works fine for pretty much everything in batocera, but Switch input comes in handy when I want to play with motion controls (dolphin-emu/wii, for instance). Switch-input connection works fine after pairing, but the controller does not reconnect after shutting it off and on again, and I need to re-pair it to make it work.

I'll test later this week if the beta v39 resolves this.

catch-404 commented 8 months ago

I just tried in the latest beta build (x86_64 - 39-dev-c092931dfa 2024/01/11), the issue is still there in the exact same way: the controller pairs just fine in switch mode, works perfectly, but once it disconnects and you try to reconnect it, batocera/es does not recognize it anymore.

The led on the controller actually lights up, as if it were reconnected, but it is unresponsive in ES and there is no "controller connected" notification, so from ES's pov it's as if it wasn't there.

From that point on you have to re-start the pairing process to be able to use the controller in Switch input mode again. Essentially, you have to re-pair it every time.

Another detail: there are four led indicators on 8bitdo controllers, indicating the player # status (first led = player 1, first + second = player 2, etc to player 4). Every time the controller is paired again, it cycles through those different led/player status. Meaning:

As far as I can tell this behaviour (the whole issue) is exactly the same in stable v38 and in the beta build I tested.

jbleonesio commented 8 months ago

I can confirm this behavior on the latest batocera dev build.

benland2 commented 8 months ago

Hello, I have a similar problem with a Fake "switch Pro controller" , on Batocera 38 and "Bus 003 Device 004: ID 8087:0026 Intel Corp. AX201 Bluetooth". I have a computer with processeur Intel N100. My controller works at the first connection, but if the controller turn off, when I turn on it, the controller is detected and connected, but nothing works when I press the buttons.

However, sometimes the controller works: I need to turn off and turn on it several times, 3 or 6 times (it's random), and then button presses are well detected.

I noticed that when the Pro controller not works, on screen of Batocera, I can see "0%" next to the detected controller (in the top left corner), AND when it works I can see "100%".

I suspect a conflict with another module or there is a bug during new controller initialization ...

Does anyone have an idea how to fix this bug?

Update: I tested with the USB 8bitdo Adapter, I can pair it without issue, but if I turn off and turn of again , the controller can not longer reconnect. I tested on Windows or Mac OS, there is not problem. I think that my problem is probably a bug with the firmware of my controller at initialization time. (I use a VooFun controller)

New update: I tested Batocera 39 on another computer, and the problem still remains. Then I sniffed packet with hcidump, and I noticed that my controller send in loop this data "3F 00 00 08 00 80 00 80 00 80 00 80" My computer send in output some datas, but the controller doesn't catch them. If anyone is interested, I can send my dump file with the sniffed data.

gege-fr commented 7 months ago

Hi,

I have the same issue. Batocera 38.

Just bought a 8bitdo SN30 pro controler. Pairing is perfect and everything works great, but has to be re-done after every restart.

I only tried in switch mode for now. I'll try to confirm that it works in d-mode.

EDIT :

I confirm that it reconnects correctly in D-mode,and X-mode. X-mode seems not te be recognized by steam. D-mode i have issues with right joystick in yuzu i don't know why yet. Switch mode was working out of the box everywhere.

I also have the same symptom in switch mode, the light looks light it paired correctly, but no message in yuzu and of course no response to the inputs.

tomghub commented 7 months ago

From that point on you have to re-start the pairing process to be able to use the controller in Switch input mode again. Essentially, you have to re-pair it every time.

Another detail: there are four led indicators on 8bitdo controllers, indicating the player # status (first led = player 1, first + second = player 2, etc to player 4). Every time the controller is paired again, it cycles through those different led/player status. Meaning:

  • first pairing, only the first led is lit;
  • second pairing, the two first leds are on;
  • third pairing, 3 leds on
  • fourth pairing, 4 leds on
  • fifth pairing, back to only one led on.

Similar with EasySMX T39 controller. It cycles through different LEDs on Power cycle (blue,red,green,purple). Support told me those are different users. But i just need to restart Batocera in order to get it working. My guess is that Switch controllers change some information on reconnect which Linux thinks it is a different controller. When its not working, but controller thinks its connected, the controller symbol on top left shows 0%. But its not consistent, sometimes it doesnt connect at all. Sometimes i just need to powercycle a few times to get it back.

Bluetoothctl also shows multiple reconnects: Agent registered [CHG] Device 98:B6:E9:D2:C6:4A Connected: yes [CHG] Device 98:B6:E9:D2:C6:4A Connected: no [CHG] Device 98:B6:E9:D2:C6:4A Connected: yes [CHG] Device 98:B6:E9:D2:C6:4A Connected: no

bluetoothctl info shows: [CHG] Device 98:B6:E9:D2:C6:4A UUIDs: 00001124-0000-1000-8000-00805f9b34fb [CHG] Device 98:B6:E9:D2:C6:4A UUIDs: 00001200-0000-1000-8000-00805f9b34fb why there are 2 UUID? normal?

/var/log/messages: Feb 21 20:44:47 batocera kernel: [ 462.770638] input: Pro Controller (IMU) as /devices/pci0000:00/0000:00:14.0/usb1/1-9/1-9:1.0/bluetooth/hci0/hci0:21/0005:057E:2009.0005/input/input25 Feb 21 20:44:47 batocera kernel: [ 462.770786] input: Pro Controller as /devices/pci0000:00/0000:00:14.0/usb1/1-9/1-9:1.0/bluetooth/hci0/hci0:21/0005:057E:2009.0005/input/input24

after reboot: Feb 21 20:47:01 batocera kernel: [ 65.026542] input: Pro Controller (IMU) as /devices/pci0000:00/0000:00:14.0/usb1/1-9/1-9:1.0/bluetooth/hci0/hci0:21/0005:057E:2009.0004/input/input23 Feb 21 20:47:01 batocera kernel: [ 65.026595] input: Pro Controller as /devices/pci0000:00/0000:00:14.0/usb1/1-9/1-9:1.0/bluetooth/hci0/hci0:21/0005:057E:2009.0004/input/input22

note the different inputxx name and also different bluetooth address

somebody was testing if the controller works on different Linux? It could be possible that bluez is the problem, which is a very problematic module. https://bbs.archlinux.org/viewtopic.php?id=284149

Edit: On same PC i started Linux Mint Mate actual version. Gamepad can be tested with gamepad-tester.com. I had some initial problems on pairing but it works now and i also can switch off/on the controller without problems. The LED on the controller will also not change. However i cannot test the restart behaviour because its a Live USB system. bluetoothd -v shows bluez 5.64 here. Batocera seems to have 5.68 that may also explain why i read it was working on older Batocera 32. Also have impression that the controller stays on Mint a much longer time than on Batocera. Are there energy saving settings too aggressive?

EinFreierUser commented 7 months ago

hey, i can also confirm the problem

batocera v39 beta BT-adapter: rtl8821ce third party switch pro controller from amazon x64 system with N100 booting from nvme over usb

I pair the controller and it workes fine, until is goes into sleeping mode or i turn it off. After turning it on again, it connects but doesnt work anymore. After restarting the system it works again until the controller turns off again. The same controller works fine with same PC (Setup Retrobat on Windows 11), rpi 5 with newest Batocera beta, RK3588 (Radxa) with RTL8852BE and Adroid 12

gvassao commented 5 months ago

I'm glad I found this, as I was starting to think I was going crazy with the controller consistently stopping working after each play session. I can confirm that this issue persists on V39, with both of my 8BitDo SN30 Pro controllers running the latest firmware, V2.04.

cfranz-medsoto commented 5 months ago

i have this issue with the 8bitdo micro controller

mrtoad883 commented 5 months ago

So grateful for this thread, I was going crazy today trying to fix this. on v38, happening to me with SN30 pro in Y+input mode. Controller works fine though in X+input mode.

spiffyguy commented 4 months ago

TLDR:

/usr/bin/btmgmt ssp off fixes the reconnect issue for me... I have not figured out how to automate this on boot yet... And it's not a full fix by itself.. because having ssp off prevents pairing new controllers until you turn it back on.

MORE INFO

Hi All, I too am having this issue of my gamepad not reconnecting after first use. I don't have an 8BitDo gamepad but my reconnect issues were so similar to this thread... I decided to reply on this issue. I am running Batocera [v39] on a x86_64 mini PC. I have a PS4 Dual Shock gamepad (unbranded clone bought off Amazon).

After doing a ton of reading and trying things, it seems the bluetooth driver feature "Secure Simple Pairing" is somehow conflicting/preventing my gamepad's ability to reconnect and staying connected...

Here is what I did that is reproducible and consistent for all 3 of my gamepads (all different brands but same PS4 style clone gamepads)

  1. Put controller into pairing mode (for mine, I hold the [Share] + [Home] buttons, has a fast double blink going on)
  2. Pair controller with Batocera in the GUI either manually or using the "auto" method (both worked to pair the gamepad for me)
  3. Gamepad connected, Play games, all working great.
  4. Restarted my whole PC ([Menu] -> [Quit] -> [Restart System])
  5. Wait for it to boot back up
  6. Tap the [Home] button on my gamepad to wake it up, gamepad light just blinks and nothing happens on the Batocera GUI.
  7. Wait for the blinking on my gamepad to stop (in hopes it's just slow to connect, sadly never connects)
  8. SSH into batocera from another computer and run: /usr/bin/btmgmt ssp off
  9. After running that ssp off command (not before), I tap the [Home] button on my gamepad to wake it up
  10. The gamepad instantly reconnects to my batocera machine with a solid light after 1 blink (maybe not even 1 blink)
  11. Gamepad connected, Play games, all working great.

GOTCHAS

I have tried adding this command into the /userdata/system/custom.sh file. The btmgmt command in the custom.sh file seems to have no effect. Gamepads don't reconnect unless I SSH back in and run the command manually.

I am guessing it's a timing issue, maybe bluetooth has not been loaded yet when the custom.sh script runs so that is why it has no effect? hmmmm but the /userdata/system/custom.sh does run last according to the docs... I will try adding a bunch of "sleep" commands or "waiting for bluetoothd PID" type stuff next...

I am also not ruling out the fact that I may not be setting up custom.sh properly but it is a simple #!/bin/bash script and the docs even say things like this: "Be aware that the script will be executed independently of the executable (x) attribute being set to the script file or not!" https://wiki.batocera.org/launch_a_script?s[]=custom&s[]=sh#customlast_during_startup_first_after_shutdown

NEXT STEPS/QUESTIONS

  1. Does turning off "Secure Simple Pairing" fix the issue of reconnecting for anyone else?
  2. How do I fix turning off "Secure Simple Pairing" on boot?
  3. BONUS: If this is the fix... How can we set "Secure Simple Pairing" to be "off" as a default and then turn it to "on" whenever we want to pair a new device with batocera? Automatically turning off/on as needed... (I will be researching this and compiling my own local copy of batocera to test different ways to do this)
spiffyguy commented 4 months ago

Okay so my custom.sh script WAS running but it was instantly crashing on the /usr/bin/btmgmt ssp off command and exiting. I tried looking for logs or piping the output into a file but no luck, this command works when SSH'ed in but not when run from the custom.sh file... hmmmm

So I then thought to try using the "bluetoothctl" command to do it which is /usr/bin/bluetoothctl mgmt.ssp off and it worked...! Not sure what the difference was on why this command works vs why the btmgmt command did not... but hey it's working! So now my custom.sh script does not crash or exit early and my controllers can right away wake up and connect to Batocera after a reboot. So cool.

(Again this is not a permanent fix, just discussing more about this quirk and what I am noticing, still hoping someone else can try to turn of their bluetooth SSP and see if it fixes their reconnect gamepad issue.)

AndyX90 commented 3 months ago

@spiffyguy Thanks for your suggestion, but this method seems to only work for DS4 controllers. It does not work for me with 8bitdo SN30Pro+ controllers. I have paired one controller with my notebook (arch with kernel 6.9) and the behavior is the same. In switch mode this controller pairs and works but after a disconnect or reboot it has to be removed and re-paired to work again. In the other modes it works as expected.

spiffyguy commented 3 months ago

@AndyX90, thanks for letting me know. Dang...! I thought this would help. The issue listed seems so close to what I experienced with the DS4 controllers.

I need to get an 8Bitdo controller so I can mess around with things. I am new to Batocera but I have been enjoying setting things up and seeing what works! I found this SSR conflict through trial and error and pouring over the logs.... Now with the fix I discovered here, my controllers pair easily now every time. (Side note: I ended up making a service, in /userdata/system/services/ that is enabled by default, but I can disable it if I want to pair a new controller.)

Anyways, sorry my idea didn't pan out for your controllers. The "oddity" perhaps on the BlueZ driver still stands I think though... I mean... I know SSR is a good thing and introduced with Bluetooth 2.1... but what I don't understand why turning it off/on changes anything related to already paired devices... right? I mean if it's a method to help "pair" then it should only be on if you are actively searching to pair/trust a NEW bluetooth device/gamepad/controller... hmmmm

Maybe there is another bluetooth spec/feature related to pairing that should be turned off if you are NOT pairing... some other feature like SSR that turning off could help reconnect trusted/paired devices (and by extension turn on / be "Active" if you are scanning for new bluetooth devices.)

I will try to get an 8bitdo controller soon and see if I can find something that helps. No promises on timeline but I would love to find out why this issue exists. It's just.... odd.

Rolen28 commented 3 months ago

I have this issue as well with the switch pro controller. As far as I know, this is also an issue on windows and from a steam forum I found, it seems the issue involves bluetooth 5.0 as many found the problem to go away when they downgraded to a bluetooth 4.0 dongle.

AndyX90 commented 3 months ago

@Rolen28 I have just tested with a bluetooth 4.0 usb dongle and the issue is the same as with the onboard bluetooth 5.x. At least with 8Bitdo SN30Pro+ in switch mode.

gege-fr commented 3 months ago

Hi, just before disabling notifications on this topic in case that could be of interest for anyone : i sent back my sn30pro+ controler to amazon befor it was too late (it's a pity i really liked it) and my workaround since then is using the 8bitdo ultimate with the beta firmware that allows it to work in switch mode through 2.4 RF.

It works well (with motion and all), and there's no bluetooth-specific issues. Only issue i have left is when the controller goes to sleep. but that's another topic.

erexx23 commented 3 months ago

Still a problem in V39 Using the info spiffyguy provided I've been able to permantly pair multiple game pads. Thank you!

imho it looks like the system is having a problem re-authenticating the SN30pro after restarting. It just gets stuck in a loop.

anyway here is my custom.sh

#!/bin/bash
# Code here will be executed on every boot and shutdown.

# Fix for SN30pro 8BitDo reconnect after restart or shutdown. 
# Set 'mgmt.ssp on' to add additional BT controllers.
# Location: /userdata/system/custom.sh
/usr/bin/bluetoothctl mgmt.ssp off

EDIT: So I had to come back to this because this stopped working. To be clear I was using the #2Dongle to connect, but Dongle was sometimes recognized as a 360 gamepad. Eventually, I gave up using the dongle and sucessfully and permantely connected the SN30pro to the RasPi 02 BluTooth directly. No problems. Connected immediately and without issue.

prietveld commented 3 months ago

Adding another voice to the chorus. If anyone needs exact details about my setup let me know, but at this point it seems superfluous. Hope this can get fixed for v40, or at least eventually.

AndyX90 commented 3 months ago

Here are my summarized findings:

My controllers are 8bitdo SN30 Pro + but as far as i read in other posts, it should also affect the newer Pro 2. The problem refers to the use of the switch mode (usage with enabled motion controls).

Environment: Controllers: 3 x 8Bitdo SN30 Pro + OS Version: Batocera 39 Bluetooth-Version: 5.2

Description: You can pair the controller in switch mode and use it like every other controller. After a connection loss (ie. through power off the controller or a system shutdown/reboot) it cannot be used anymore. If you power on the controller after a disconnect it shows as connected (on the led bar) but the system does not recognize it anymore, no input is possible.

The only way to use the controller again is to delete it and re-pair it after every reboot/disconnect.

Attempted solutions

Notes: The problem does not only occur on batocera but also on other linux distros (i tested on arch-linux with bluez 1.76 and the problem is the same).

We have to differenciate between 8bitdo controllers and other 3rd party ones where above solutions seem to work.

Conclusion For me it seems that the problem we are facing can't be solved on batoceras side. I think it has to be solved on the bluez side or with an updated firmware from 8bitdo.

EinFreierUser commented 2 months ago

i also have the 8bitdo sn30 pro, and my problem is very similar. when i go into an emulation with it and switch controller for playing wii for example, it is loosing the connection after some time and turning off. when i turn it on again it connects but i cant press any keys. when i reconnect the controller in the main menu, the controller usually connects and works, also after second, third time etc... some other bluetooth devices that i have also are working even in an emulation... weird things are going on with these

joinski1 commented 2 months ago

when i go into an emulation with it and switch controller for playing wii for example, it is loosing the connection after some time and turning off

What exactly do you mean by that? You start a Wii game with the 8bitdo pad, but then use a Wiimote to play (so the 8bitdo pad stays on, but is not used)?

If so, then: 8bitdo pads switch off automatically after a certain period of non-use. This is completely normal and is because it is programmed into the 8bitdo firmware. Other controllers, such as Sony PS3 controllers (DualShock/Sixaxis) behave differently. They stay on until either the system is switched off (i.e. the Bluetooth connection is interrupted) or the controller's battery is empty. These are behaviors that are embedded in the controller firmware and over which batocera has no control. If you want the 8bitdo pad not to switch itself off after a certain period of non-use, you have to contact 8bitdo and ask for a firmware for this pad where this (automatic switch-off after a certain period of non-use) does not happen. However, I suspect that 8bitdo will not do this as they see this behavior as a useful feature (it prevents the battery from running down).

There is also this problem, which may still be involved here, which affects Wii (dolphin), PS2 (pcsx2) and possibly other emulators, and which unfortunately cannot be fixed (the issues have therefore already been closed): https://github.com/batocera-linux/batocera.linux/issues/9847 https://github.com/batocera-linux/batocera.linux/issues/9091

EinFreierUser commented 2 months ago

ah ok, so i will add a ps4 controller someday to my collection :) the other bluetooth devices that i mean are a BT-remote control and a BT-Keyboard with touchpad. These devices work flawlessly. I can start dolphin for example, and then switch on the keyboad (via on/off switch) and it is working. I am not a bluetooth expert, but i think the sn30 pro have some trouble with reaching its mapping somehow while in emulation? because the led on it says, that it is connecting to the hardware...

JoeyHSchmoe commented 2 months ago

@spiffyguy @erexx23 & @AndyX90 thanks so much for your work on this!

I've used a number of generic PS4 Controllers over the years that won't reconnect after reboot. The model I most often use is the P4-Plus T28 on v38. I've seen where some identical looking controllers will and some won't, assuming there is a revision or firmware version in play. I use BlueZ PS3 Bluetooth driver and confirmed that the /usr/bin/btmgmt ssp off command does allow them to reconnect after reboot.

Going to setup the custom.sh method above to fix on reboot, but wanted to ask: Is there someway to add the /usr/bin/btmgmt ssp on command to the beginning of the batocera Bluetooth script for automatically detecting bluetooth controllers? I suppose it would need to turn it back off as well at the end, but if that is a user editable script this would result in a pretty clean fix for most of these issues.

Also apologies if this is a thread highjack, maybe we should pull this out into a separate issue? [v38][v39] Bluetooth Controllers (Multiple) can't reconnect after first use

JoeyHSchmoe commented 2 months ago

I tried adding /usr/bin/btmgmt ssp off & /usr/bin/bluetoothctl mgmt.ssp off is my /system/custom.sh file, but neither seems to have any affect. If I try to run /usr/bin/bluetoothctl mgmt.ssp off from the console, I get:

[root@BATOCERA /userdata/system]# /usr/bin/bluetoothctl mgmt.ssp off
Invalid command in menu main: mgmt

Use "help" for a list of available commands in a menu.
Use "menu <submenu>" if you want to enter any submenu.
Use "back" if you want to return to menu main.
JoeyHSchmoe commented 1 month ago

Adding that v40 still has this same issue, I was hopeful the Bluez update would resolve. I've also found the new T50 model (looks pretty similar to T28) Generic P4 Controller has the same problem. I never got the custom.sh workaround to work for me either.

Happy to do some testing if anyone is looking at solving this...

joinski1 commented 1 month ago

v40 still has this same issue

Can you please in detail describe this issue? Which 8bitdo pad models do you use exactly? Firmware up to date? And most important question: Which mode do you use? Switch, D-Input or X-Input?

JoeyHSchmoe commented 1 month ago

Apologies, I'm not using an 8bitdo, see my other posts above for more details. I was observing generic china made P4 controllers (T28, T50 models) have this same issue where they won't reconnect after a system reboot but running the /usr/bin/btmgmt ssp off command lets them reconnect same as the 8bitdo controllers.

tomghub commented 1 month ago

I discovered T39 controller has also wireless xbox mode (x+home button). The controller will not loose connection when batocera is running but on reboot the controller has to be removed and added again. Still think the problem was introduced after bluez 5.64.

Batocera 40 was upgraded from bluez 5.68 to 5.76: /usr/libexec/bluetooth]# bluetoothctl -v bluetoothctl: 5.76

see also bluez related issues: https://github.com/bluez/bluez/issues/673 https://github.com/bluez/bluez/issues/824