Score:0

Marley Exodus ANC Bluetooth headphone won't pair in 21.04

us flag

I just bought a new Bluetooth headphone, the Marley Exodus ANC, but it won't pair with my PC (Intel NUC) in Ubuntu 21.04. When trying to connect from GNOME settings, it attempts to pair but it just gives up without an error message.

I also tried to manually connect using bluetoothctl:

$ bluetoothctl
[bluetooth]# show
Controller 04:EA:56:86:78:50 (public)
        Name: saibot
        Alias: saibot
        Class: 0x003c0104
        Powered: yes
        Discoverable: no
        DiscoverableTimeout: 0x00000000
        Pairable: yes
        UUID: Message Notification Se.. (00001133-0000-1000-8000-00805f9b34fb)
        UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
        UUID: OBEX Object Push          (00001105-0000-1000-8000-00805f9b34fb)
        UUID: Message Access Server     (00001132-0000-1000-8000-00805f9b34fb)
        UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
        UUID: IrMC Sync                 (00001104-0000-1000-8000-00805f9b34fb)
        UUID: Vendor specific           (00005005-0000-1000-8000-0002ee000001)
        UUID: Headset                   (00001108-0000-1000-8000-00805f9b34fb)
        UUID: Headset AG                (00001112-0000-1000-8000-00805f9b34fb)
        UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
        UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
        UUID: Phonebook Access Server   (0000112f-0000-1000-8000-00805f9b34fb)
        UUID: Audio Sink                (0000110b-0000-1000-8000-00805f9b34fb)
        UUID: Device Information        (0000180a-0000-1000-8000-00805f9b34fb)
        UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
        UUID: Audio Source              (0000110a-0000-1000-8000-00805f9b34fb)
        UUID: OBEX File Transfer        (00001106-0000-1000-8000-00805f9b34fb)
        Modalias: usb:v1D6Bp0246d0538
        Discovering: no
        Roles: central
        Roles: peripheral
        Roles: central-peripheral
Advertising Features:
        ActiveInstances: 0x00 (0)
        SupportedInstances: 0x06 (6)
        SupportedIncludes: tx-power
        SupportedIncludes: appearance
        SupportedIncludes: local-name
        SupportedSecondaryChannels: 1M
        SupportedSecondaryChannels: 2M
        SupportedSecondaryChannels: Coded

[bluetooth]# scan on
Discovery started   

[NEW] Device 00:1E:7C:89:26:C8 Exodus ANC

[bluetooth]# connect 00:1E:7C:89:26:C8
Attempting to connect to 00:1E:7C:89:26:C8
Failed to connect: org.bluez.Error.Failed

[bluetooth]# pair 00:1E:7C:89:26:C8
Attempting to pair with 00:1E:7C:89:26:C8
Failed to pair: org.bluez.Error.AuthenticationTimeout

I also looked for system errors:

$ sudo journalctl -xb
bluetoothd[1208]: 00:1E:7C:89:26:C8: error updating services: Function not implemented (38)

$ dmesh
Bluetooth: hci0: advertising data len corrected

I have another Bluetooth headphone and I can pair that one just fine. And I can pair the Exodus ANC with my Android phone just fine. But I noticed that when pairing the Exodus ANC with Android, Android displays a PIN code from the Exodus ANC, and then I can confirm the pair. It's possible that this PIN code causes pairing to fail in Ubuntu. What can I do to pair this headphone in Ubuntu?

$ dpkg -l | grep blue
ii  bluez                                      5.56-0ubuntu4.2                                                      amd64        Bluetooth tools and daemons
ii  bluez-cups                                 5.56-0ubuntu4.2                                                      amd64        Bluetooth printer driver for CUPS
ii  bluez-obexd                                5.56-0ubuntu4.2                                                      amd64        bluez obex daemon
ii  gir1.2-gnomebluetooth-1.0:amd64            3.34.5-1                                                             amd64        Introspection data for GnomeBluetooth
ii  gnome-bluetooth                            3.34.5-1                                                             amd64        GNOME Bluetooth tools
ii  libbluetooth3:amd64                        5.56-0ubuntu4.2                                                      amd64        Library to use the BlueZ Linux Bluetooth stack
ii  libgnome-bluetooth13:amd64                 3.34.5-1                                                             amd64        GNOME Bluetooth tools - support library
rc  libkf5bluezqt-data                         5.80.0-0ubuntu1                                                      all          data files for bluez-qt
ii  pulseaudio-module-bluetooth                1:14.2-1ubuntu1.1                                                    amd64        Bluetooth module for PulseAudio sound server
ii  python-bluez                               0.22+really0.22-1build2                                              amd64        Python 2 wrappers around BlueZ for rapid bluetooth development

UPDATE:

Adding additional debugging information as per instructions by fabatera.

$ sudo systemctl stop bluetooth
$ sudo bluetoothd -d -C -E -n                                                                                        
bluetoothd[122796]: Bluetooth daemon 5.56
bluetoothd[122796]: src/agent.c:agent_ref() 0x5592e4338bd0: ref=2
bluetoothd[122796]: src/device.c:bonding_request_new() Requesting bonding for 00:1E:7C:89:26:C8
bluetoothd[122796]: src/agent.c:agent_ref() 0x5592e4338bd0: ref=3
bluetoothd[122796]: src/agent.c:agent_unref() 0x5592e4338bd0: ref=2
bluetoothd[122796]: src/adapter.c:suspend_discovery() 
bluetoothd[122796]: src/adapter.c:adapter_bonding_attempt() hci0 bdaddr 00:1E:7C:89:26:C8 type 0 io_cap 0x04
bluetoothd[122796]: src/adapter.c:connect_failed_callback() hci0 00:1E:7C:89:26:C8 status 8
bluetoothd[122796]: plugins/policy.c:conn_fail_cb() status 8
bluetoothd[122796]: src/adapter.c:bonding_attempt_complete() hci0 bdaddr 00:1E:7C:89:26:C8 type 0 status 0x8
bluetoothd[122796]: src/device.c:device_bonding_complete() bonding 0x5592e433eb20 status 0x08
bluetoothd[122796]: src/device.c:device_bonding_failed() status 8
bluetoothd[122796]: src/agent.c:agent_unref() 0x5592e4338bd0: ref=1
bluetoothd[122796]: src/adapter.c:resume_discovery() 
bluetoothd[122796]: src/adapter.c:pair_device_complete() Timeout (0x08)
bluetoothd[122796]: src/adapter.c:bonding_attempt_complete() hci0 bdaddr 00:1E:7C:89:26:C8 type 0 status 0x8
bluetoothd[122796]: src/device.c:device_bonding_complete() bonding (nil) status 0x08
bluetoothd[122796]: src/device.c:device_bonding_failed() status 8
bluetoothd[122796]: src/adapter.c:resume_discovery() 
bluetoothd[122796]: src/device.c:connect_profiles() /org/bluez/hci0/dev_00_1E_7C_89_26_C8 (all), client :1.829
bluetoothd[122796]: src/device.c:connect_profiles() Resolving services for /org/bluez/hci0/dev_00_1E_7C_89_26_C8
bluetoothd[122796]: src/adapter.c:connect_failed_callback() hci0 00:1E:7C:89:26:C8 status 8
bluetoothd[122796]: plugins/policy.c:conn_fail_cb() status 8
bluetoothd[122796]: src/adapter.c:bonding_attempt_complete() hci0 bdaddr 00:1E:7C:89:26:C8 type 0 status 0x8
bluetoothd[122796]: src/device.c:device_bonding_complete() bonding (nil) status 0x08
bluetoothd[122796]: src/device.c:device_bonding_failed() status 8
bluetoothd[122796]: src/adapter.c:resume_discovery() 
bluetoothd[122796]: src/device.c:search_cb() 00:1E:7C:89:26:C8: error updating services: Function not implemented (38)
bluetoothd[122796]: src/device.c:device_svc_resolved() /org/bluez/hci0/dev_00_1E_7C_89_26_C8 err -38
$ sudo btmon
Bluetooth monitor ver 5.56
= Note: Linux version 5.11.0-25-generic (x86_64)     
= Note: Bluetooth subsystem version 2.22             
= New Index: 04:EA:56:86:78:50 (Primary,USB,hci0)    
= bluetoothd: Bluetooth daemon 5.56                  
@ MGMT Open: bluetoothd (privileged) version 1.19

# pair attempt:

@ MGMT Command: Pair Device (0x0019) plen 8                                                                                                                                                                                                                      {0x0001} [hci0] 154.081112 
        BR/EDR Address: 00:1E:7C:89:26:C8 (Taiwick Limited)                                                                                                                                                                                                                                 
        Capability: KeyboardDisplay (0x04)                             
< HCI Command: Create Connection (0x01|0x0005) plen 13                                                                                                                                                                                                               #141 [hci0] 154.081177 
        Address: 00:1E:7C:89:26:C8 (Taiwick Limited)
        Packet type: 0xcc18                                            
          DM1 may be used                                              
          DH1 may be used                                              
          DM3 may be used                                              
          DH3 may be used                                              
          DM5 may be used                                              
          DH5 may be used                                              
        Page scan repetition mode: R2 (0x02)                           
        Page scan mode: Mandatory (0x00)                                                                                                                                                                                                                                                    
        Clock offset: 0x0000                                           
        Role switch: Allow slave (0x01)                                
> HCI Event: Command Status (0x0f) plen 4                                                                                                                                                                                                                            #142 [hci0] 154.197141
      Create Connection (0x01|0x0005) ncmd 1                           
        Status: Success (0x00)                                                                                                                                                                                                                                                              
> HCI Event: Connect Complete (0x03) plen 11                                                                                                                                                                                                                         #143 [hci0] 186.684630 
        Status: LMP Response Timeout / LL Response Timeout (0x22)      
        Handle: 65535                                                                                                                                                                                                                                                                       
        Address: 00:1E:7C:89:26:C8 (Taiwick Limited)                   
        Link type: ACL (0x01)                                          
        Encryption: Disabled (0x00)                                    
@ MGMT Event: Connect Failed (0x000d) plen 8                                                                                                                                                                                                                     {0x0001} [hci0] 186.684678 
        BR/EDR Address: 00:1E:7C:89:26:C8 (Taiwick Limited)
        Status: Timeout (0x08)                                         
@ MGMT Event: Command Complete (0x0001) plen 10                                                                                                                                                                                                                  {0x0001} [hci0] 186.684696 
      Pair Device (0x0019) plen 7                                      
        Status: Timeout (0x08)                                         
        BR/EDR Address: 00:1E:7C:89:26:C8 (Taiwick Limited)

# connect attempt:

< HCI Command: Create Connection (0x01|0x0005) plen 13                                                                                                                                                                                                               #144 [hci0] 818.218687
        Address: 00:1E:7C:89:26:C8 (Taiwick Limited)
        Packet type: 0xcc18
          DM1 may be used
          DH1 may be used
          DM3 may be used
          DH3 may be used
          DM5 may be used
          DH5 may be used
        Page scan repetition mode: R2 (0x02)
        Page scan mode: Mandatory (0x00)
        Clock offset: 0x0000
        Role switch: Allow slave (0x01)
> HCI Event: Command Status (0x0f) plen 4                                                                                                                                                                                                                            #145 [hci0] 818.333626
      Create Connection (0x01|0x0005) ncmd 1
        Status: Success (0x00)
> HCI Event: Connect Complete (0x03) plen 11                                                                                                                                                                                                                         #146 [hci0] 850.041050
        Status: LMP Response Timeout / LL Response Timeout (0x22)
        Handle: 65535
        Address: 00:1E:7C:89:26:C8 (Taiwick Limited)
        Link type: ACL (0x01)
        Encryption: Disabled (0x00)
@ MGMT Event: Connect Failed (0x000d) plen 8                                                                                                                                                                                                                     {0x0001} [hci0] 850.041111
        BR/EDR Address: 00:1E:7C:89:26:C8 (Taiwick Limited)
        Status: Timeout (0x08)
= bluetoothd: src/device.c:search_cb() 00:1E:7C:89:26:C8: error updating services: Function not implemented (38)                                                                                                                                                                 850.045357
$ bluetoothctl
[bluetooth]# power on
Changing power on succeeded

[bluetooth]# agent on
Agent is already registered

[bluetooth]# default-agent
Default agent request successful

[bluetooth]# info 00:1E:7C:89:26:C8
Device 00:1E:7C:89:26:C8 (public)
        Name: Exodus ANC
        Alias: Exodus ANC
        Class: 0x00240404
        Icon: audio-card
        Paired: no
        Trusted: yes
        Blocked: no
        Connected: no
        LegacyPairing: no

[bluetooth]# pair 00:1E:7C:89:26:C8
Attempting to pair with 00:1E:7C:89:26:C8
Failed to pair: org.bluez.Error.AuthenticationTimeout

[bluetooth]# connect 00:1E:7C:89:26:C8
Attempting to connect to 00:1E:7C:89:26:C8
Failed to connect: org.bluez.Error.Failed

UPDATE 2:

I just tested these headphones on a Dell Latitude 5280 laptop running Ubuntu 20.04, and it was able to pair just fine! The Dell laptop is using an Intel Wireless Bluetooth (device information doesn't give more information). My Intel NUC has a Bluetooth 9460/9560 Jefferson Peak, also by Intel, with which pairing fails. I also have a Lenovo Thinkpad T14, but pairing fails there also. So I bought a USB Bluetooth dongle, the ASUS Bluetooth Adapter USB-BT500, but pairing still fails. What kind of Bluetooth adapter do I need?

UPDATE 3:

Apparently more people are having issues with these Bluetooth adapters:

UPDATE 4:

I bought a bunch of USB Bluetooth adapters, to see if they work. Here are the results thus far:

  1. ASUS USB-BT500 Bluetooth 5.0: cannot pair
  2. Edimax BT-8500 Bluetooth 5.0: cannot pair
  3. TP-LINK UB400 Bluetooth 4.0: can pair, can connect, constant jitter in sound when connected to standard USB 3.1 port (blue port), but sound is fine when connected to USB 3.1 always on port (yellow port).
cn flag
The Ubuntu out-of-box bluetooth driver doesn't work too well, IMHO. Try using bluetooth-manager instead. `sudo apt install blueman`
us flag
I tried blueman, but I get the same issue. It fails to either pair or connect.
Score:1
us flag

Try including more info here:

Start daemon in debug, compat, experimental

systemctl stop bluetooth
bluetoohd -d -C -E -n

In another terminal:

btmon

In another terminal:

bluetoothctl 
power on
pairable on
agent KeyboardOnly
default-agent 
info <head phone mac address>
pair <head phone mac address>
us flag
Thanks for your response! I updated my question to include the extra information that you requested.
fabatera avatar
us flag
Change `agent on` to `agent KeyboardOnly` in the sequence above. (As you said, you can see the PIN code on Android).
us flag
No success. I verified with `btmon` that the capability is set correctly (I have to do `agent off` first). I also tried every other capability, but I get the same error message every time.
Score:0
us flag

This is not really a solution, but more of a work-around. I tried these headphones on several different computers, all running Ubuntu 20.04, and with different Bluetooth USB adapters. On some computers I can pair these headphones without issue, on others pairing fails. So apparently it depends on the Bluetooth adapter if pairing works. Note that all computers I tested are able to pair with different headphones, so it's not like the Bluetooth adapter is defective.

Anyway, these are my results so far. Maybe this can help you to find the hardware that actually works with these headphones:

Works:

  • Intel NUC NUC6i3SYH (Intel Wireless Bluetooth)
  • Lenovo Thinkpad T420s (Intel Wireless Bluetooth)
  • Dell Latitude 5280 (Intel Wireless Bluetooth)
  • TP-LINK UB400 Bluetooth 4.0 Adapter

Does not work:

  • Intel NUC NUC8i3BEH (Bluetooth 9460/9560 Jefferson Peak)
  • Lenovo Thinkpad T14 Gen 2 (Intel Wireless Bluetooth)
  • ASUS USB-BT500 Bluetooth 5.0 Adapter
  • Edimax BT-8500 Bluetooth 5.0 Adapter
mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.