Site Tools


Sidebar

hardwarerelated:headset:bose_quietcomfort_35

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 (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
hardwarerelated/headset/bose_quietcomfort_35.txt · Last modified: 2024/03/03 06:43 by chris