After going nuts for a couple of days, I found a somewhat solution that is working for me.
I reset the bluetooth module with Shift-Option click the BT menu bar item > Debug > Reset the Bluetooth module.
After that I ran the command to read the configuration for the Bluetooth audio daemon.
sudo defaults read bluetoothaudiod
Mine had 0 entries witch means that it is all defaulted to what Bluetooth audio daemon thinks its best.
Then I ran the command bellow.
sudo defaults write bluetoothaudiod "Apple Bitpool Max" 40
sudo defaults write bluetoothaudiod "Disable AAC codec" 1
sudo defaults write bluetoothaudiod "Disable AptX codec" 1
It disables AAC and AptX codec, I think because my BT headphone is a little older is getting some incompatibility with then, and set the max Bitpool to 40 (I think it defaults to 64).
Then I tried to connect my BT headphone again and it's working like a charm for a hole day.
Well. I did find a evidence for my solution...
Using this site and Apple Packet Logger on the Additional Tools for Xcode I extracted
How to create btsnoop log on macOS?
- Download Additional Tools for Xcode
- Mount the DMG
- Open PacketLogger in the Hardware folder
- Stop the capture (Play icon on the top left)
- Clear the list (Trash icon)
- Turn off Bluetooth
- Start the capture (Play icon on the top left)
- Turn on Bluetooth, connect to your headset
- Let it run for at least 30 seconds
- Stop the capture again
- Filter by the device you are trying to find the info (top middle)
- Go to File > Export > BTsnoop...
- Save it on your Desktop for easy reference
- Use this file to upload on the site above
After upload you will be redirected to a page with the info bellow:
78:4f:43:78:2e:61 () → b0:91:22:bc:5d:4e (JBL Everest Elite 150NC)
Audio SBC (48000 | Mono JointStereo | block: 4 8 12 16 | subbands: 8 | allocation: Loudness | bitpool: 2..40)
Audio non-A2DP (aptX - 48000, Stereo)
Used for audio:
Audio SBC (48000 | JointStereo | block: 16 | subbands: 8 | allocation: Loudness | bitpool: 2..40)
Latest SBC Bitpool value: 40
Found other values that work
"AAC Bitrate" = 255;
"Apple Initial Bitpool" = 53;
"Enable AAC codec" = 1;
I found that my headphone apear to have AAC codec compatibility and enabled it. And for my surprise setting the initial SBC Bitpool above de one it was auto discovering (48) it still works