Doesn't work with Galaxy Buds2
Firmware version R177XXU0AVC8 adds support for 360 audio:
I installed the update and ran this script. However, this script can't find the RFCOMM protocol.
python Headtracking.py MAC
Couldn't find the proprietary RFCOMM service
I modified the script to also show the service that it found (I can PM the full rawrecord on Telegram):
python Headtracking.py MAC -v
Galaxy Buds2 (****)
Searching for RFCOMM interface...
[{'host': 'MAC', 'name': b'FACTORY', 'description': '', 'port': 20, 'protocol': 'RFCOMM', 'rawrecord': b'6\x00V...\x01\x00%\x07FACCouldn't find the proprietary RFCOMM service
However, the Galaxy Buds Manager app works:

Environment:
- Windows 11, version 22000.434
- PyBluez 0.22
- Python 3.8.2
It appears that the name of the Bluetooth profile for serial communication has changed. For the previous earbuds, it was something like GEARMANAGER, but the Buds2 use FACTORY as a name instead.
I've pushed an update that should fix this: 19f78ad
I don't get any data from the buds now, and weirdly enough the buds disconnect from my machine after a few minutes and don't reconnect until I restart them.
Output with -v and -t flags:
Galaxy Buds2 (****)
Searching for RFCOMM interface...
RFCOMM interface found. Establishing connection...
Connected to device.
<< OUTGOING: fd 04 00 7c 00 34 4d dd
<< OUTGOING: fd 03 00 c3 2f e9 dd
>> INCOMING: fd 27 08 61 08 03 5e 61 01 01 21 2a 01 00 bf 22 00 00 3a 01 3a 01 03 00 03 66 01 00 00 10 00 00 01 00 22 04 01 01 00 00 3f d5 dd
<< OUTGOING: fd 07 00 c3 00 00 00 00 6a dd dd
<< OUTGOING: fd 07 00 c3 00 00 00 00 6a dd dd
<< OUTGOING: fd 07 00 c3 00 00 00 00 6a dd dd
<< OUTGOING: fd 07 00 c3 00 00 00 00 6a dd dd
<< OUTGOING: fd 07 00 c3 00 00 00 00 6a dd dd
<< OUTGOING: fd 07 00 c3 00 00 00 00 6a dd dd
<< OUTGOING: fd 07 00 c3 00 00 00 00 6a dd dd
<< OUTGOING: fd 07 00 c3 00 00 00 00 6a dd dd
<< OUTGOING: fd 07 00 c3 00 00 00 00 6a dd dd
<< OUTGOING: fd 07 00 c3 00 00 00 00 6a dd dd
<< OUTGOING: fd 07 00 c3 00 00 00 00 6a dd dd
Exception in thread Thread-2:
Traceback (most recent call last):
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\threading.py", line 932, in _bootstrap_inner
self.run()
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\User\Downloads\BudsPro-Headtracking-master\BudsPro-Headtracking-master\RepeatedTimer.py", line 20, in _target
self.function(*self.args, **self.kwargs)
File "C:\Users\User\Downloads\BudsPro-Headtracking-master\BudsPro-Headtracking-master\SpatialSensorManager.py", line 44, in __keepAlive
self.service.sendPacket(self.MSG_SPATIAL_AUDIO_CONTROL, bytes(self.CID_KEEP_ALIVE))
File "C:\Users\User\Downloads\BudsPro-Headtracking-master\BudsPro-Headtracking-master\BluetoothService.py", line 85, in sendPacket
self.socket.send(bytes(b))
File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\site-packages\bluetooth\msbt.py", line 75, in send
return bt.send (self._sockfd, data)
OSError: An established connection was aborted by the software in your host machine.
On my computer after adding missing or match["name"] == "FACTORY" (there was only or match["name"] == b"FACTORY") it causes earbuds to stutter and restart with no spatial data being printed. Logs look like that:
Alesya's Buds2 Pro
Searching for RFCOMM interface...
FACTORY
RFCOMM interface found. Establishing connection...
Connected to device.
Exception in thread Thread-2 (_target):
Traceback (most recent call last):
File "<string>", line 3, in send
_bluetooth.error: (107, 'Transport endpoint is not connected')
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/nix/store/0n4y44dnaxafqs7cg625aldrb152x7bx-python3-3.10.10/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
self.run()
File "/nix/store/0n4y44dnaxafqs7cg625aldrb152x7bx-python3-3.10.10/lib/python3.10/threading.py", line 953, in run
self._target(*self._args, **self._kwargs)
File "/home/me/p/fork/BudsPro-Headtracking/RepeatedTimer.py", line 20, in _target
self.function(*self.args, **self.kwargs)
File "/home/me/p/fork/BudsPro-Headtracking/SpatialSensorManager.py", line 44, in __keepAlive
self.service.sendPacket(self.MSG_SPATIAL_AUDIO_CONTROL, bytes(self.CID_KEEP_ALIVE))
File "/home/me/p/fork/BudsPro-Headtracking/BluetoothService.py", line 85, in sendPacket
self.socket.send(bytes(b))
File "<string>", line 5, in send
bluetooth.btcommon.BluetoothError: [Errno 107] Transport endpoint is not connected
Unlike @githubcatw I don't have the "Spatial Sensor" section anywhere in GalaxyBudsClient (tried 4.5.2 and master), although other features of it work fine (I'm on Linux)
Output with -v and -t (differs from @githubcatw 's - mine has 2 incoming messages with first one looking somewhat similar to theirs, and the second one being something new):
Alesya's Buds2 Pro
Searching for RFCOMM interface...
FACTORY
RFCOMM interface found. Establishing connection...
Connected to device.
<< OUTGOING: fd 04 00 7c 00 34 4d dd
<< OUTGOING: fd 03 00 c3 2f e9 dd
>> INCOMING: fd 2f 00 61 0b 04 63 63 01 00 11 00 01 00 bf 21 02 00 48 01 48 01 03 00 03 66 00 01 00 10 01 01 00 00 11 02 01 01 00 01 00 00 01 00 00 00 00 00 4d 63 dd
>> INCOMING: fd 0d 40 63 00 00 01 80 05 01 80 05 00 00 e7 a5 dd
<< OUTGOING: fd 07 00 c3 00 00 00 00 6a dd dd
<< OUTGOING: fd 07 00 c3 00 00 00 00 6a dd dd
<< OUTGOING: fd 07 00 c3 00 00 00 00 6a dd dd
<< OUTGOING: fd 07 00 c3 00 00 00 00 6a dd dd
<< OUTGOING: fd 07 00 c3 00 00 00 00 6a dd dd
<< OUTGOING: fd 07 00 c3 00 00 00 00 6a dd dd
<< OUTGOING: fd 07 00 c3 00 00 00 00 6a dd dd
<< OUTGOING: fd 07 00 c3 00 00 00 00 6a dd dd
Unlike @githubcatw I don't have the "Spatial Sensor" section anywhere in GalaxyBudsClient (tried 4.5.2 and master), although other features of it work fine (I'm on Linux)
I enabled it from the translator settings, though I don't remember how.
Hello, I have some buds pro 2 under the latest firmware (XXU0AWA5) and I encounter exactly the same problem. The device sends several frames "fd 07 00 c3 00 00 00 00 6a dd dd" and then disconnects after about 20 seconds.
Output with
-vand-t(differs from @githubcatw 's - mine has 2 incoming messages with first one looking somewhat similar to theirs, and the second one being something new):Alesya's Buds2 Pro Searching for RFCOMM interface... FACTORY RFCOMM interface found. Establishing connection... Connected to device. << OUTGOING: fd 04 00 7c 00 34 4d dd << OUTGOING: fd 03 00 c3 2f e9 dd >> INCOMING: fd 2f 00 61 0b 04 63 63 01 00 11 00 01 00 bf 21 02 00 48 01 48 01 03 00 03 66 00 01 00 10 01 01 00 00 11 02 01 01 00 01 00 00 01 00 00 00 00 00 4d 63 dd >> INCOMING: fd 0d 40 63 00 00 01 80 05 01 80 05 00 00 e7 a5 dd << OUTGOING: fd 07 00 c3 00 00 00 00 6a dd dd << OUTGOING: fd 07 00 c3 00 00 00 00 6a dd dd << OUTGOING: fd 07 00 c3 00 00 00 00 6a dd dd << OUTGOING: fd 07 00 c3 00 00 00 00 6a dd dd << OUTGOING: fd 07 00 c3 00 00 00 00 6a dd dd << OUTGOING: fd 07 00 c3 00 00 00 00 6a dd dd << OUTGOING: fd 07 00 c3 00 00 00 00 6a dd dd << OUTGOING: fd 07 00 c3 00 00 00 00 6a dd dd
hello, could u plz teach me how to get R177XXU0AVC8 this firmware version if i don't know how to use python
hello, could u plz teach me how to get R177XXU0AVC8 this firmware version if i don't know how to use python
If you are on a recent firmware version you have 360 audio. If you're unsure, check if your firmware version (which can be found in Earbuds settings > About earbuds in the mobile app) is above AVC8 in this list.
hello, could u plz teach me how to get R177XXU0AVC8 this firmware version if i don't know how to use python
If you are on a recent firmware version you have 360 audio. If you're unsure, check if your firmware version (which can be found in Earbuds settings > About earbuds in the mobile app) is above AVC8 in this list.
thx, i know it had have 360 audio, but i actually want to downgrade the firmware version T_T