====== 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