====== What? ====== Just some notes around the Bose QuietComfort 35. * pro: wireless: bluetooth profiles for headset and High Fidelity playback (A2DP) * pro: quite good noise cancelling * pro: build in rechargable battery * pro: simultaneous connections to 2 bluetooth devices possible * con: when the cable is used, only headphone functionality is available. No microphone signal goes over the analog cable. * con: after 45min of wearing, I need to take the headset off ====== bluetooth profiles ====== bluetooth profiles supported by the headset: * Advanced Audio Distribution Profile (A2DP) * Hands Free (HFP) * Headphones (HSP) * Audio/Video Remote Control Profile (AVRCP) * BTLE (Bluetooth Low Energy) Currently I can choose between pure Audio output (A2DP profile) in good quality, or hearing/listening (HFP/HSP profile) with lower quality. HFP in version 1.6 seems to also support better audio transport. The bluez5 implementation on Linux seems to support HFP v1.6 and HSP v1.2 ([[https://git.kernel.org/cgit/bluetooth/bluez.git/tree/doc/supported-features.txt|reference]]). Not sure how to see which version is used for communication with the headset. "Hands-Free Profile (HFP) Version 1.6 adds optional support for wide band speech with the mSBC codec, a 16 kHz monaural configuration of the SBC codec mandated by the A2DP profile." pacmd >>> set-card-profile 2 a2dp_sink >>> set-card-profile 2 headset_head_unit [root@Гага́рин ~]# hcidump avdtp HCI sniffer - Bluetooth packet analyzer ver 5.43 device: hci0 snap_len: 1500 filter: 0x400 < AVDTP(s): Discover cmd: transaction 11 nsp 0x00 > AVDTP(s): Discover rsp: transaction 11 nsp 0x00 ACP SEID 3 - Audio Sink ACP SEID 1 - Audio Sink < AVDTP(s): All Capabilities cmd: transaction 12 nsp 0x00 ACP SEID 3 > AVDTP(s): All Capabilities rsp: transaction 12 nsp 0x00 Media Transport Media Codec - MPEG-2,4 AAC MPEG-2 AAC LC MPEG-4 AAC LC 8kHz 11.025kHz 12kHz 16kHz 22.05kHz 24kHz 32kHz 44.1kHz 48kHz 1 2 Channels 320000bps VBR Content Protection 02 00 Delay Reporting < AVDTP(s): All Capabilities cmd: transaction 13 nsp 0x00 ACP SEID 1 > AVDTP(s): All Capabilities rsp: transaction 13 nsp 0x00 Media Transport Media Codec - SBC 16kHz 32kHz 44.1kHz 48kHz Mono DualChannel Stereo JointStereo 4 8 12 16 Blocks 4 8 Subbands SNR Loudness Bitpool Range 2-53 Content Protection 02 00 Delay Reporting < AVDTP(s): Set config cmd: transaction 14 nsp 0x00 ACP SEID 1 - INT SEID 1 Media Transport Media Codec - SBC 44.1kHz JointStereo 16 Blocks 8 Subbands Loudness Bitpool Range 2-53 > AVDTP(s): Set config rsp: transaction 14 nsp 0x00 < AVDTP(s): Open cmd: transaction 15 nsp 0x00 ACP SEID 1 > AVDTP(s): Open rsp: transaction 15 nsp 0x00 ====== Fedora 24 ====== [root@спутник ~]# dnf install pulseaudio-module-bluetooth.x86_64 # now restart your windowmanager, system, or ensure that # the bluetooth module is loaded in pulseaudio [root@спутник ~]# systemctl status bluetooth.service [root@спутник ~]# bluetoothctl [NEW] Controller 3C:77:E6:ED:1A:7F sputnik [default] [NEW] Device F4:F9:51:C1:BC:90 F4-F9-51-C1-BC-90 [NEW] Device 04:52:C7:33:D3:8F chorn Bose QuietComfort 35 [bluetooth]# show Controller 3C:77:E6:ED:1A:7F Name: sputnik Alias: sputnik Class: 0x0c010c Powered: yes Discoverable: no Pairable: yes UUID: Headset AG (00001112-0000-1000-8000-00805f9b34fb) UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb) UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb) UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb) UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb) UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb) UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb) UUID: Audio Source (0000110a-0000-1000-8000-00805f9b34fb) Modalias: usb:v1D6Bp0246d052B Discovering: no [bluetooth]# trust 04:52:C7:33:D3:8F Changing 04:52:C7:33:D3:8F trust succeeded [bluetooth]# connect 04:52:C7:33:D3:8F Attempting to connect to 04:52:C7:33:D3:8F [CHG] Device 04:52:C7:33:D3:8F Connected: yes Failed to connect: org.bluez.Error.Failed [CHG] Device 04:52:C7:33:D3:8F Connected: no # At this point I started the bose app on the android phone, # and did set the headphone into 'bluetooth pairing mode' # in moving the switch right [bluetooth]# discoverable yes Changing discoverable on succeeded [CHG] Controller 3C:77:E6:ED:1A:7F Discoverable: yes [bluetooth]# scan on Discovery started [CHG] Controller 3C:77:E6:ED:1A:7F Discovering: yes # removing all devices, adding them new [bluetooth]# devices Device F4:F9:51:C1:BC:90 F4-F9-51-C1-BC-90 Device 04:52:C7:33:D3:8F chorn Bose QuietComfort 35 [bluetooth]# remove F4:F9:51:C1:BC:90 [DEL] Device F4:F9:51:C1:BC:90 F4-F9-51-C1-BC-90 Device has been removed [NEW] Device F4:F9:51:C1:BC:90 F4-F9-51-C1-BC-90 [bluetooth]# remove 04:52:C7:33:D3:8F [DEL] Device 04:52:C7:33:D3:8F chorn Bose QuietComfort 35 Device has been removed [NEW] Device 04:52:C7:33:D3:8F chorn Bose QuietComfort 35 [bluetooth]# trust 04:52:C7:33:D3:8F [CHG] Device 04:52:C7:33:D3:8F Trusted: yes Changing 04:52:C7:33:D3:8F trust succeeded [bluetooth]# connect 04:52:C7:33:D3:8F Attempting to connect to 04:52:C7:33:D3:8F [CHG] Device 04:52:C7:33:D3:8F Connected: yes [CHG] Device 04:52:C7:33:D3:8F UUIDs: 00000000-deca-fade-deca-deafdecacaff [CHG] Device 04:52:C7:33:D3:8F UUIDs: 00001101-0000-1000-8000-00805f9b34fb [CHG] Device 04:52:C7:33:D3:8F UUIDs: 00001108-0000-1000-8000-00805f9b34fb [CHG] Device 04:52:C7:33:D3:8F UUIDs: 0000110b-0000-1000-8000-00805f9b34fb [CHG] Device 04:52:C7:33:D3:8F UUIDs: 0000110c-0000-1000-8000-00805f9b34fb [CHG] Device 04:52:C7:33:D3:8F UUIDs: 0000110e-0000-1000-8000-00805f9b34fb [CHG] Device 04:52:C7:33:D3:8F UUIDs: 0000111e-0000-1000-8000-00805f9b34fb [CHG] Device 04:52:C7:33:D3:8F UUIDs: 00001200-0000-1000-8000-00805f9b34fb [CHG] Device 04:52:C7:33:D3:8F ServicesResolved: yes [CHG] Device 04:52:C7:33:D3:8F Paired: yes Connection successful [chorn Bose QuietComfort 35]# # At this point, a sound source can be started, and # in 'pavucontrol' the headphone can be selected as # output sink ===== fixing HSF/HSP bluetooth profile ===== When connecting the Quietcomfort 35 to my Thinkpad x230, I was able to listen music with the A2DP profile. Yet, selecting the HSF/HSP, I did not hear anything/was not able to use the microphone. This message appeared in the logs: bluetooth hci0: Direct firmware load for brcm/BCM20702A1-0a5c-21e6.hcd failed with error -2 The firmware is not provided by Fedora and has to be extracted from the driver. [root@спутник ~]# dnf install innoextract [root@спутник ~]# lsusb|grep -i bluet Bus 001 Device 003: ID 0a5c:21e6 Broadcom Corp. BCM20702 Bluetooth 4.0 [ThinkPad] [chris@спутник bt]$ innoextract g4wh01ww.exe [chris@спутник bt]$ find .|grep inf ./app/Win32/bcbtums-win8x86-brcm.inf ./app/Win64/bcbtums-win8x64-brcm.inf [chris@спутник bt]$ grep -i 21E6 ./app/Win64/bcbtums-win8x64-brcm.inf [..] [chris@спутник bt]$ vi ./app/Win64/bcbtums-win8x64-brcm.inf [ find the reference of 21E6 to file ./app/Win64/BCM20702A1_001.002.014.1483.1669.hex [chris@спутник bt]$ hex2hcd ./app/Win64/BCM20702A1_001.002.014.1483.1669.hex Converting ./app/Win64/BCM20702A1_001.002.014.1483.1669.hex to ./app/Win64/BCM20702A1_001.002.014.1483.1669.hcd [chris@спутник bt]$ [chris@спутник bt]$ ll ./app/Win64/BCM20702A1_001.002.014.1483.1669.hcd -rw-r--r--. 1 chris chris 35042 11月 19 13:39 ./app/Win64/BCM20702A1_001.002.014.1483.1669.hcd [chris@спутник bt]$ sudo cp ./app/Win64/BCM20702A1_001.002.014.1483.1669.hcd /lib/firmware/brcm/BCM20702A1-0a5c-21e6.hcd [root@спутник ~]# modprobe -r btusb [root@спутник ~]# modprobe btusb