Closed habakuk1979 closed 1 year ago
Servus!
This is probably addressed to @atar-axis - I'm not sure if he can still give some insight here. He's the original author of the driver and worked through the early stages of getting the controller work. But maintainership has been transferred to me since, and I didn't really dug deep into Bluetooth, or BLE for that matter.
But I collected a bunch of known problems with work-arounds or fixes here:
You may want to take a look there as a starting point.
Also, there are a few reports at https://github.com/bluez/bluez/issues?q=is%3Aissue+is%3Aopen+ble about BLE, maybe even look through the complete set of issues there. There have been a lot of fixes lately to bluez, I don't think your problem is really related to the CSR A10 dongle, or its kernel driver, at least not if you're using the latest kernels (mainline or LTS 5.10). Also, I'd be guessing that you tried different dongles if you struggled for years - so that probably rules out kernel or driver issues. Thus, the people from the bluez project may most likely help you best - although it seems they are lacking some man power.
My latest experience for connection problems is instability of previous working connections, even unable to connect again when paired successfully previously. What worked for me was stopping the Bluetooth services, then purging /var/lib/bluetooth/$DONGLE_MAC/cache
clean, rebooting, then removing the affected device and pairing it again. There may be some artifacts left in the attribute caches due to previous bugs in bluez. I think bluez has an option to disable attribute caching, maybe that helps.
All I can say is that currently, all my controllers work fine (after doing the above cleanup, with kernel 5.10.50 with L2CAP patch and bluez 5.60 on Gentoo): Xbox Series One S, Xbox Elite 2 (both classic Bluetooth), and Xbox Series X|S (BLE).
There's one issue, tho: The XB1S controller feels a bit laggy, the XBE2 controller loses connection sometimes (which may be related to intermediate scanning activity of the bluetooth service, and games do not detect that, the controller eventually times out after 30-60s), and the XBXS controller sometimes drops the connection then reconnects a few seconds later (and games immediately detect the connection loss, which may partly be due to my BLE latency settings I've put into the bluez config).
Possibly related:
@kakra
thanks for your input - unfortunately nothing new on that side - I hope I can get in touch with atar-axis.
@atar-axis
Servus and hello!
I would really appreciate your input on my issue here (see above!)
Please help.
kakar said, you were possibly the right guy to help me out on this.
Hey there, It took me a while to find the pairing issue/bug back when xpadneo started because I only know a little about the Bluetooth Specifications.
What I did back then was compiling the Bluetooth stack by myself and replacing the original module. This helped me especially to find where the problem is (I added some printk(...)
commands). I then found out that the original module was not fully implementing a special but optional feature.
Anyway, I would suggest to talk to the Bluetooth guys at the kernel mailing list.
Closing old Bluetooth issues, please report to the bluez project if the problem persists.
hello, servus!
My name is peter and I am from Braunau /Austria. This is probably a bit off topic but: Since about 2 years I am working ambitiously on connecting a GoPro to an Odroid via HTTP, UDP and BLE in order to get a powerful node-red controlled dashcam/balckbox for my cars (fleet control). (please see: https://github.com/cepoon/GoProRemote, https://github.com/KonradIT/goprowifihack, https://github.com/sepp89117/GoPro-Multiple-Smart-Remote-ESP8266)
However I stumbled over your thread: https://github.com/atar-axis/xpadneo/issues/96
and figured that you are deep into debugging of BLE connections.
Our hardware configuration (unfortunately old):
However, we do suffer from an comparable annoying problem since more than a year(!). We do have an unstable BLE Connection between Dongle and Gopro. When just paired, the first connection stays up for about 30mins, but the reconnect is a problem: gets connected but after 2 - 15 sec: disconnect. Mainly because of:
Issue 1: (btmon) Why is it disconnecting after MTU request?
@ Discovering: 0x00 (6)
issue 2: btmon: Error: Timeout/ Disconnect after attribute not found!? (main issue obviously)
@ Discovering: 0x00 (6) << HCI Command: LE Create Connect.. (0x08|0x000d) plen 25 #102 [hci0] 21.277573 Scan interval: 60.000 msec (0x0060) Scan window: 30.000 msec (0x0030) Filter policy: White list is not used (0x00) Peer address type: Random (0x01) Peer address: C9:0F:D9:47:48:B4 (Static) Own address type: Public (0x00) Min connection interval: 50.00 msec (0x0028) Max connection interval: 70.00 msec (0x0038) Connection latency: 0 (0x0000) Supervision timeout: 420 msec (0x002a) Min connection length: 0.000 msec (0x0000) Max connection length: 0.000 msec (0x0000)
for sure there are Authentification failures too, but I cannot btmon-capture 'em right now.
However, it is really hard to find somebody who has a glue what is going on here, and where the best, we should start to debug.
So please can you help us any further.
We are struggeling for a solution on this for years.
greets
peter