-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DS5 to PS5 Proxy #6
Comments
Seems that after I called
It doesn't disconnect right away but seems to time out in the btmgt I see this:
I am pretty sure my link key is correct, but I will re-capture it again later today EDIT: New key didn't help
|
A device address is unique, it can't be used by two nearby devices. It is expected to have connection issues in such case. This means you either need a second DS5 or a way to pair another address with the PS5. |
I have 2 DS5 controllers I am using BTAddr of that controller on a dongle DS5 I am using to connect to RPi has completely different BT address |
Are you sure device class is 0x2508? Did you get the changes from #4 ? |
At the time I used hcidump together with wireshark to check were the communication was failing. |
It seems that DS5 controller disconnects right away if I use 0x2508 or 0x508 as device class How were you pairing dongle at DS5? |
Something strange with repeating USB pairing flow I capture from PS5: Controller paired with Linux at first with auto-generated key and it works
Using USB cable on different machine After this the custom key in /var/lib/bluetooth/..... is replaced with completely brand new key So this makes me think that there was some link key manipulation in the controller, however how that key would get into config file I have no clue I did upgrade both controllers last night on PS5, so maybe that is causing additional issues |
Somewhat good news as PS5 supports DS4 I've tried GIMX DS4 BT mode connecting from PC to console over bluetooth works with PS5 This is very promising, that means the proxying can work, and I might be able to capture the BT packets. |
So it clear that my setup /dongle should be able to do BT proxying. I think its something to do with l2cap_proxy or configuration. Maybe I am missing some step or putting the link keys to wrong location. |
From the hcidump I think DS5 itself disconnects (Rcvd Disconnection Request) after receiving SDP / Service Search Attribute response form PS5 (`170 byte) |
Hi there. A couple remarks:
I'm starting to work on PS5 support for dsremap myself so I may have more to add later. |
For the record: the PS5 seems to have 2 Bluetooth addresses. They use the same link key. If you look at the hcidump you'll notice a failed link key negotiation for the second address; the PS5 closes the existing connections after that (thus your "Poll error"). When the key is configured for the second address, after the client (Dualsense) has connected to PSMs 0x11 and 0x13, the Playstation itself connects to it on those same PSMs, from its second address. As l2cap_proxy is designed to only handle one connection per PSM, things go south from there:
Here the PS5's addresses are DC:E9:94:AC:29:DC and DC:E9:94:AC:29:DD. I'm going to dig a little deeper... |
Maybe you could handle further connections with a second l2cap_proxy instance + a second bluetooth dongle? |
Good idea, I'll try this |
Nope, doesn't work; if the Dualsense is paired with dongle 1 and the PS5 with dongle 2, the PS5 does not accept incoming connections from dongle 1 (first proxy instance). Anyway I hacked up a proxy that supports multiple host/device pairs and managed to go further:
So, the PS5 does indeed "call back" to the Dualsense on PSMs 0x11 and 0x13, and uses those channels for the initial reports (0x05 IMU calibration data, 0x20 manufacturing info) and the auth challenge. There are still a few strange things, like the DS stops sending input reports altogether, but it may be a problem on my side, I'll play with this next week-end |
The hcidump FWIW https://jeromelaheurte.net/nextcloud/index.php/s/mj9eqf54wpcjMj4 |
Hi,
Just wanted to open separate thread from DS4Windows.
So what I am using right now is:
I setup link key for PS5 like this:
DS5 was paired using share+options method and this file was generated, unmodified, it is paiered with internal
BT on RPi (hci0)
hcitool
is not available instead there isbtmgmt
on latest distrosudo btmgmt --index 1 power off
sudo btmgmt --index 1 public-addr {DS5_PAIRED_WITH_PS5}
This changes the BT dongle address to DS5 address that I paired with PS5
sudo systemctl stop bluetooth
sudo btmgmt --index 0 power on
sudo btmgmt --index 1 power on
sudo ./l2cap_proxy {PS5_BT_ADDR} {DS5_PAIRED_WITH_PS5} 0x002508
Initially I was able to get some connection established, but I can't replicate that anymore.
During that time it seems that it was not being reset by PS5
Now I am always getting this:
The text was updated successfully, but these errors were encountered: