linux icon indicating copy to clipboard operation
linux copied to clipboard

Bluetooth HSP/HFP not working in Raspberry PI 3

Open SoloVeniaASaludar opened this issue 7 years ago • 75 comments

Trying to use a bluetooth mic/speaker in a raspberry pi 3 (headless).

Hardware is Raspberry pi 3, firmware updated today, running raspbian also dist-upgraded today. Using bluez and pulseaudio (system service start mode).

  • The device is trusted, paired and connects/disconnects without problems.
  • When device is initially connected, "pactl list" shows the device is using the profile named "headset_head_unit: Headset Head Unit (HSP/HFP) (sinks: 1, sources: 1, priority: 20, available: yes)". With this profile, no sound (trying to play with aplay command).
  • When profile is changed to "a2dp_sink: High Fidelity Playback (A2DP Sink) (sinks: 1, sources: 0, priority: 10, available: yes)" (using command pactl set-card-profile), the sound is played correctly.

No error messages seen in any log file.

Moreover, if I "down" ("hciadmin hci0 down") the internal raspberry bluetooth controller and use instead an external bluetooth controller connected in an usb port, both modes works correctly. Thus, problem seems related with the bluetooth device in raspberry card.

These are result from some related commands.

pi@raspberrypi:~ $ uname -a Linux raspberrypi 4.9.56-v7+ #1044 SMP Fri Oct 13 15:23:13 BST 2017 armv7l GNU/Linux

pi@raspberrypi:~ $ hciconfig -a
hci0:   Type: Primary  Bus: UART
    BD Address: B8:27:EB:7E:DA:2A  ACL MTU: 1021:8  SCO MTU: 64:1
    UP RUNNING 
    RX bytes:14641 acl:101 sco:0 events:1341 errors:0
    TX bytes:2208546 acl:2358 sco:7 commands:97 errors:0
    Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87
    Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 
    Link policy: RSWITCH SNIFF 
    Link mode: SLAVE ACCEPT 
    Name: 'raspberrypi'
    Class: 0x0c0000
    Service Classes: Rendering, Capturing
    Device Class: Miscellaneous, 
    HCI Version: 4.1 (0x7)  Revision: 0x145
    LMP Version: 4.1 (0x7)  Subversion: 0x2209
    Manufacturer: Broadcom Corporation (15)

pi@raspberrypi:~ $ pactl list
...
Card #3
    Name: bluez_card.E8_07_BF_11_10_A0
    Driver: module-bluez5-device.c
    Owner Module: 15
    Properties:
        device.description = "SPUBT710"
        device.string = "E8:07:BF:11:10:A0"
        device.api = "bluez"
        device.class = "sound"
        device.bus = "bluetooth"
        device.form_factor = "speaker"
        bluez.path = "/org/bluez/hci0/dev_E8_07_BF_11_10_A0"
        bluez.class = "0x240414"
        bluez.alias = "SPUBT710"
        device.icon_name = "audio-speakers-bluetooth"
    Profiles:
        headset_head_unit: Headset Head Unit (HSP/HFP) (sinks: 1, sources: 1, priority: 20, available: yes)
        a2dp_sink: High Fidelity Playback (A2DP Sink) (sinks: 1, sources: 0, priority: 10, available: yes)
        off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
    Active Profile: headset_head_unit
    Ports:
        speaker-output: Speaker (priority: 0, latency offset: 0 usec)
            Part of profile(s): headset_head_unit, a2dp_sink
        speaker-input: Bluetooth Input (priority: 0, latency offset: 0 usec)
            Part of profile(s): headset_head_unit 

# systemctl status bluetooth
● bluetooth.service - Bluetooth service
   Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2017-10-14 15:49:16 UTC; 36min ago
     Docs: man:bluetoothd(8)
 Main PID: 461 (bluetoothd)
   Status: "Running"
   CGroup: /system.slice/bluetooth.service
           └─461 /usr/lib/bluetooth/bluetoothd

Oct 14 15:49:16 raspberrypi bluetoothd[461]: Bluetooth daemon 5.43
Oct 14 15:49:16 raspberrypi systemd[1]: Started Bluetooth service.
Oct 14 15:49:16 raspberrypi bluetoothd[461]: Starting SDP server
Oct 14 15:49:16 raspberrypi bluetoothd[461]: Bluetooth management interface 1.14 initialized
Oct 14 15:49:16 raspberrypi bluetoothd[461]: Failed to obtain handles for "Service Changed" characteristic
Oct 14 15:49:16 raspberrypi bluetoothd[461]: Sap driver initialization failed.
Oct 14 15:49:16 raspberrypi bluetoothd[461]: sap-server: Operation not permitted (1)
Oct 14 15:49:16 raspberrypi bluetoothd[461]: Endpoint registered: sender=:1.3 path=/MediaEndpoint/A2DPSource
Oct 14 15:49:16 raspberrypi bluetoothd[461]: Endpoint registered: sender=:1.3 path=/MediaEndpoint/A2DPSink
Oct 14 15:55:04 raspberrypi bluetoothd[461]: /org/bluez/hci0/dev_E8_07_BF_11_10_A0/fd0: fd(24) ready

systemctl status pulseaudio

● pulseaudio.service - Pulse Audio
   Loaded: loaded (/etc/systemd/system/pulseaudio.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2017-10-14 15:49:12 UTC; 36min ago
 Main PID: 343 (pulseaudio)
   CGroup: /system.slice/pulseaudio.service
           └─343 /usr/bin/pulseaudio --system --disallow-exit --disable-shm --exit-idle-time=-1

Oct 14 15:49:12 raspberrypi pulseaudio[343]: W: [pulseaudio] main.c: OK, so you are running PA in system mode. Please make sure that you actually do want to do that.
Oct 14 15:49:12 raspberrypi pulseaudio[343]: W: [pulseaudio] main.c: Please read http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/WhatIsWrongWithSystemWide/ for an explanation why system mode is usually a bad idea.
Oct 14 15:49:12 raspberrypi pulseaudio[343]: W: [pulseaudio] authkey.c: Failed to open cookie file '/var/run/pulse/.config/pulse/cookie': No such file or directory
Oct 14 15:49:12 raspberrypi pulseaudio[343]: W: [pulseaudio] authkey.c: Failed to load authentication key '/var/run/pulse/.config/pulse/cookie': No such file or directory
Oct 14 15:49:12 raspberrypi pulseaudio[343]: W: [pulseaudio] authkey.c: Failed to open cookie file '/var/run/pulse/.pulse-cookie': No such file or directory
Oct 14 15:49:12 raspberrypi pulseaudio[343]: W: [pulseaudio] authkey.c: Failed to load authentication key '/var/run/pulse/.pulse-cookie': No such file or directory
Oct 14 15:49:16 raspberrypi pulseaudio[343]: E: [pulseaudio] bluez5-util.c: Found duplicated D-Bus path for adapter /org/bluez/hci0
Oct 14 15:49:16 raspberrypi pulseaudio[343]: E: [pulseaudio] bluez5-util.c: Found duplicated D-Bus path for device /org/bluez/hci0/dev_E8_07_BF_11_10_A0

SoloVeniaASaludar avatar Oct 14 '17 19:10 SoloVeniaASaludar

I'm facing the same issue too

pratham2003 avatar Nov 08 '17 14:11 pratham2003

I'm facing the same issue too

Pillar1989 avatar Nov 22 '17 06:11 Pillar1989

Would it be possible for commenters to try the latest kernel (4.14) and see if the problems persists? Note, this is a testing branch, so should not be done on a critical system unless it's well backed up!

sudo BRANCH=next rpi-update

JamesH65 avatar Dec 05 '17 10:12 JamesH65

It's not a kernel issue - it's a BlueZ limitation. As of version 5.0, BlueZ does not support HFP or HSP, only A2DP. I've not found an official explanation from BlueZ, but there are some notes from the PulseAudio devs here: https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/5.0/

If anyone knows of a solution that doesn't involve installing BlueZ 4 as well I'll be interested to hear it.

pelwell avatar Dec 05 '17 10:12 pelwell

To get HFP/HSP working properly you'll need PulseAudio 11 https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/11.0/ HFP works using ofono, but it is only started fully working with version PA version 11. @SoloVeniaASaludar can you try to install lates versions of PA, bluez and ofono and report back?

viktorgino avatar Dec 05 '17 15:12 viktorgino

Seems that, we have a solution to use the HSP profile with Raspberry Pi 3’s built in BCM43438 chip. The culprit was the so called SCO audio routing. HSP / HFP uses SCO audio packets to transmit audio and in order to make PulseAudio work the packets must be routed to the HCI interface. This can be done by sending the the following HCI command:

sudo hcitool cmd 0x3F 0x01C 0x01 0x02 0x00 0x01 0x01

After issuing this command, both paplay and parecord should work with the HSP profile.

More details here: https://www.spinics.net/lists/linux-bluetooth/msg73883.html https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Bluetooth/#index8h3 http://youness.net/raspberry-pi/bluetooth-headset-raspberry-pi-3-ad2p-hsp#comment-2484

bluetiger9 avatar Jan 21 '18 08:01 bluetiger9

Ooh, interesting. That hci command that could easily be added to the Pi-specific script /usr/bin/btuart if it solves the problem.

pelwell avatar Jan 23 '18 11:01 pelwell

Hi,

I confirm that this command solves the problem. More details: How To Connect Bluetooth Headset Or Speaker To Raspberry Pi 3

YOUN3SS avatar Feb 08 '18 11:02 YOUN3SS

Hi,

hcitool cmd can solve the connect problem in HSP/HFP mode, but the sound is terrible, have distortion. Do anyone have the same problem as I do?

Thanks!

kp339 avatar Apr 10 '18 04:04 kp339

@kp339, the sound is a little noisy for me too. I contacted the Cypress's support, their FW team is checking the CYW43438's firmware right now.

bluetiger9 avatar Apr 10 '18 04:04 bluetiger9

@bluetiger9 If there is any progress, please let me know. Thanks!

kp339 avatar Apr 10 '18 06:04 kp339

It happens to me too, the sound is too distorted until the speech recognition can't even work. Please let me know how to improve the sound quality.

CliveWongTohSoon avatar May 17 '18 16:05 CliveWongTohSoon

The problem was identified as a timing issue in PulseAudio.

In an nutshell, PulseAudio uses a hard-coded (e)SCO packet size of 48 bytes, instead of using the packet size negotiated at the eSCO connect (ex 60 bytes). The timing logic used for SCO connections, is to send (e)SCO packets (one at a time), at each SCO packet received. If the negotiated packet size is bigger (ex 60 bytes) than the hard-coded 48 bytes, the SCO packets are received at a lower rate, which causes PulseAudio to send the SCO packets way too slow.

More details on the following [pulseaudio-discuss] thread: [pulseaudio-discuss] Bluetooth - HSP / HFP - source based timing & hard-coded MTU causes SCO packets to be badly delayed

As a workaround PulseAudio 11.1 can be used, with the module-bluetooth-discover started with autodetect_mtu=yes parameter. The parameter can be set in /etc/pulse/default.pa:

.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover autodetect_mtu=yes
.endif

(note: be aware that this setting breaks the compatibility with some adapters)

The PulseAudio 11.1 is not yet available for Raspbian, but it can be compiled from source:

$ git clone git://anongit.freedesktop.org/pulseaudio/pulseaudio
$ cd pulseaudio
$ sudo apt-get build-dep pulseaudio
$ ./bootstrap.sh
$ make
$ sudo make install
$ sudo ldconfig

Cheers, Attila

bluetiger9 avatar May 23 '18 15:05 bluetiger9

Yeah, and if your PulseAudio's version lower than 11.1, you can try this way:

  1. You should build pulseaudio from source like Attila push below
  2. Modify the mtu packets in source code, bcm43438 mtu packets is 64
diff --git a/src/modules/bluetooth/backend-native.c
index 8d9d95c..7dde1f8 100644
--- a/src/modules/bluetooth/backend-native.c
+++ b/src/modules/bluetooth/backend-native.c
@@ -148,10 +148,10 @@ static int bluez5_sco_acquire_cb(pa_bluetooth_transport *t, bool optional, size_
      * by the kernel */
 
     if (imtu)
-        *imtu = 48;
+        *imtu = 64;
 
     if (omtu)
-        *omtu = 48;
+        *omtu = 64;

diff --git a/src/modules/bluetooth/backend-ofono.c
index 755df9e..e1091b6 100644
--- a/src/modules/bluetooth/backend-ofono.c
+++ b/src/modules/bluetooth/backend-ofono.c
@@ -170,9 +170,9 @@ static int hf_audio_agent_transport_acquire(pa_bluetooth_transport *t, bool opti
      * made available to userspace by the Bluetooth kernel subsystem.
      * Meanwhile the empiric value 48 will be used. */
     if (imtu)
-        *imtu = 48;
+        *imtu = 64;
     if (omtu)
-        *omtu = 48;
+        *omtu = 64;
 
     t->codec = card->codec;



  1. If you want to fit more devices, you can modify the code refer to the 11.1 source.

  2. Rebuild the pulseaudio source code and replace the libbluez5-util.so in system: $ sudo cp ./src/.libs/libbluez5-util.so /usr/lib/pulse-x.x/modules

  3. Reboot the system

  4. And from the test I found that before you connect your headset, you should enter HCI command first or you will find that your headset profile "headset_head_unit" available is no.

Thanks Attila.

kp339 avatar May 24 '18 01:05 kp339

Hi @bluetiger9 the issue seems to be fixed, sound improves dramatically, thanks! However, I noticed that I can't seem to play anything in my root after using this (I need to be in the root to run manipulate GPIO on my pi), is there any fix? The audio does play with paplay audio.wav, but if I go to my root, paplay audio.wav gives error as such:

No protocol specified xcb_connection_has_error() returned true Connection failure: Connection refused pa_context_connect() failed: Connection refused

Any idea how to fix?

CliveWongTohSoon avatar May 24 '18 11:05 CliveWongTohSoon

Can anybody give a précis of the current state of this? Sounds like it's pretty much fixed?

Related to #1401?

JamesH65 avatar Jun 28 '18 10:06 JamesH65

Yes, the two issues are (already) linked. The next Raspbian release (due shortly) includes a startup script to send the HCI command mentioned above that switches SCO traffic to the HCI interface.

pelwell avatar Jun 28 '18 11:06 pelwell

Indeed. Issues with SCO traffic routing and mtu packet size are fixed. I can confirm that but.... After using it for a while and making calls there is a timeout error on hci0;

I am using R-Pi3B+ with Linux RPi-Host-1 4.14.71-v7+ #1145 SMP Fri Sep 21 15:38:35 BST 2018 armv7l GNU/Linux Raspbian Stretch 9.4 PulseAudio 10.0 (patched for coping with the MTU size problem) Bluez 5.50 Ofono 1.18

/var/log/kern.log shows something like this when the error occurs:

Oct 18 09:25:21 RPi-Host-1 kernel: [51675.649493] Bluetooth: hci0 command 0x0c24 tx timeout Oct 18 09:25:21 RPi-Host-1 kernel: [51675.649742] Bluetooth: hci0: Frame reassembly failed (-84) Oct 18 09:25:21 RPi-Host-1 kernel: [51675.649749] Bluetooth: hci0: Frame reassembly failed (-84) Oct 18 09:25:21 RPi-Host-1 kernel: [51675.649808] Bluetooth: hci0: Frame reassembly failed (-84) Oct 18 09:25:21 RPi-Host-1 kernel: [51675.649858] Bluetooth: hci0: Frame reassembly failed (-84) Oct 18 09:25:21 RPi-Host-1 kernel: [51675.649893] Bluetooth: hci0: Frame reassembly failed (-84) Oct 18 09:25:21 RPi-Host-1 kernel: [51675.649909] Bluetooth: hci0: Frame reassembly failed (-84) Oct 18 09:25:21 RPi-Host-1 kernel: [51675.649980] Bluetooth: hci0: Frame reassembly failed (-84) Oct 18 09:25:23 RPi-Host-1 kernel: [51677.719490] Bluetooth: hci0 command 0x0c52 tx timeout Oct 18 09:25:25 RPi-Host-1 kernel: [51679.799507] Bluetooth: hci0 command 0x0406 tx timeout Oct 18 09:28:56 RPi-Host-1 kernel: [51890.408019] Bluetooth: hci0 link tx timeout

The only way I have found until now to get it going again is re-booting the RaspberryPi.

Reloading bluetooth (sudo systemctl relaod bluetooth) does not solve this. And unloading the kernel modules (rmmod bluetooth) is impossible as the module is "in use"

Anybody knows of any progress in getting newer BCM43438 firmware? Or knows how to restart bluetooth without rebooting?

Thanks,

Engelbert

et-hzn avatar Oct 18 '18 08:10 et-hzn

Hi everyone,

Right now, I have the same problem and I am working in solved it. I found this link [1].

I have added this link:

ln -sf /lib/firmware/brcm/BCM4345C0 /lib/firmware/brcm/hcd BCM.hcd

And the log has changed:

[ 12.708529] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 12.710947] Bluetooth: BNEP filters: protocol multicast [ 12.713474] Bluetooth: BNEP socket layer initialized [ 13.104891] Bluetooth: hci0: BCM: chip id 107 [ 13.109021] Bluetooth: hci0: BCM: features 0x2f [ 13.133823] Bluetooth: hci0: BCM4345C0 [ 13.135972] Bluetooth: hci0: BCM (003.001.025) build 0000 [ 15.751469] Bluetooth: hci0 command 0xfc4c tx timeout [ 21.973921] uart-pl011 3f201000.serial: no DMA platform data [ 24.151397] Bluetooth: hci0: BCM: Patch command fc4c failed (-110) [ 24.154283] Bluetooth: hci0: BCM: Patch failed (-110) [ 24.157206] Bluetooth: hci0 sending frame failed (-49) [ 26.231385] Bluetooth: hci0 command 0x0c03 tx timeout

But BT does not no work yet.... I will continue to figure out a solution.

Best regards.

[1] http://www.yamanoue.atnifty.com/2018/07/raspberry-pi-3bbluetooth.html

Oscar Gomez Fuente TST Sistemas www.tst-sistemas.es

oscargomezf avatar Oct 18 '18 11:10 oscargomezf

I use the following script to reset the bluetooth interface - I call it btreset:

sudo killall hciattach
if grep -a Zero /proc/device-tree/model; then
  raspi-gpio set 45 op dl
  sleep 1
  raspi-gpio set 45 op dh
else
  /opt/vc/bin/vcmailbox 0x38041 8 8 128 0
  sleep 1
  /opt/vc/bin/vcmailbox 0x38041 8 8 128 1
fi
sleep 4
sudo btuart

pelwell avatar Oct 18 '18 11:10 pelwell

Hi Phil,

Thank you very much for your help. Could you explain a bit more?

  1. The GPIO number associated with the pin reset of the BT module (on the Raspberry Pi 3B+), Is it 45?
  2. You reset only the BT or the WiFi too?
  3. What the sequence you have to do: High - sleep 1 - Low or Low - sleep 1 - High

Best regards.

oscargomezf avatar Oct 18 '18 12:10 oscargomezf

  1. It is 45 on the Zero, and 128 (GPIO 0 of the expander) on the 3B+.
  2. Just BT.
  3. Do you see the "... 0", sleep 1, "... 1"? That's low, then high.

pelwell avatar Oct 18 '18 12:10 pelwell

@CliveWongTohSoon, check out the following page: Running PulseAudio as System-Wide Daemon

bluetiger9 avatar Oct 18 '18 13:10 bluetiger9

Phil,

Thanks a lot. That indeed resets the bluetooth device and communication is re-established on my R-Pi3B+.

Now of course I would like to know why it gets stuck but that is probably a firmware problem somewhere. Would not know how to debug that.

Another thing I noticed is that after every HFP call I make the usage count of bluetooth kernel module is increasing by 1. Actually during the call it is increasing by 2 and when the call is finished only a +1 remains. So something is released but not everything.

Anybody any hints on how to attack this? Or is there a way to forcefully reload the bluetooth kernel module at regular interval to reset the count? "rmmod bluetooth" does not work obviously as the count is not 0 so the module is "in use"

Thanks,

Engelbert

et-hzn avatar Oct 19 '18 08:10 et-hzn

Another thing I noticed is that after every HFP call I make the usage count of bluetooth kernel module is increasing by 1.

Although I understand the basic concepts I've never written a Bluetooth app of any description. However, a simple, repeatable problem like you describe sounds very fixable. If you can reduce your code down to the simple test and upload it somewhere with simple instructions (including links for installing any non-standard dependencies) I can take a look when I get a moment.

pelwell avatar Oct 19 '18 08:10 pelwell

Hi Engelbert and Phill,

Another thing I noticed is that after every HFP call I make the usage count of bluetooth kernel module is increasing by 1. Actually during the call it is increasing by 2 and when the call is finished only a +1 remains. So something is released but not everything.

Anybody any hints on how to attack this? Or is there a way to forcefully reload the bluetooth kernel module at regular interval to reset the count? "rmmod bluetooth" does not work obviously as the count is not 0 so the module is "in use"

Yes, I noticed this too. I think you mean the 40 number, don't you?

rfkill list

0: phy0: wlan Soft blocked: no Hard blocked: no 40: hci0: bluetooth Soft blocked: no Hard blocked: no

The questions are:

  1. What happens if this count increased in an infinity mode?
  2. What is the maximum value?
  3. If this number reaches the maximum value, Does it restart again from 0?

Best regards.

oscargomezf avatar Oct 19 '18 09:10 oscargomezf

Well actually this is what I see: Before a call: #lsmod |grep bluetooth|grep hci_uart bluetooth 368640 220 hci_uart,btbcm,rfcomm

After the call: #lsmod |grep bluetooth|grep hci_uart bluetooth 368640 221 hci_uart,btbcm,rfcomm

But I have no clue what is now exactly increasing and indeed as you point out does it harm?

An "rfkill list" on my R-Pi only shows this btw:

rfkill list

3: hci0: Bluetooth Soft blocked: no Hard blocked: no

et-hzn avatar Oct 19 '18 10:10 et-hzn

Phil,

Below how to do that. (to get it down to the very basic) but actually it is not a bluetooth app that I am developing it is actually getting HFP working stable (also using Ofono and Pulseaudio as part of this) so it continues to work over a long period of time.

You will need the ofono source to be installed as it contains a number of python scripts that will allow you to use ofono to make calls etc.

The basics actually comes down to this:

  1. Make sure bluetooth pairing between R-Pi and Mobile phone is succesfull and both are in connected state
  2. Make sure the "ofono modem" is enabled (use "enable-modem" from the ofono tools)
  3. Check the count using: lsmod |grep bluetooth (value = x)
  4. Make a call using "dial-number extension-to-be-dialed" from ofono tools
  5. Answer the call at the B-party (HFP now active and sound on headset/speaker on R-Pi side)
  6. Check the count (it is now increased by 2 so x+2).
  7. Terminate the call
  8. Check the count again. It is now x+1.

During the call 2 "sound channels" are opened via bluetooth to get the audio to/from the R-Pi. Maybe one of them is not released correctly? Could of course also be a PulseAudio or Ofono problem. And maybe it is no problem at all. After booting the and before the first call the usage count is:28 and I now have it at 575 and still working OK

Engelbert

et-hzn avatar Oct 19 '18 21:10 et-hzn

Hi everyone,

Reset the GPIO0 on the 3B+ didn't work for me. I continue having problems with the USB.

Oscar Gomez Fuente TST Sistemas www.tst-sistemas.es

oscargomezf avatar Oct 20 '18 17:10 oscargomezf

Oscar,

What exact problem do you have? Resetting the BT device using the commands provided by Phil will solve issue whe Bluetooth device (hci0) is not responding anymore. When that happens you will have something like this in your /var/log/kern.log file:

Oct 19 21:55:39 RPi-Host-1 kernel: [116182.475828] Bluetooth: hci0 hardware error 0x00 or Oct 19 22:01:55 RPi-Host-1 kernel: [116558.846998] Bluetooth: hci0 command 0x0406 tx timeout or Oct 19 22:01:55 RPi-Host-1 kernel: [116558.847226] Bluetooth: hci0: Frame reassembly failed (-84)

When the device error happens the bt-reset (as described by Phil) will re-initialise everything for bluetooth and if pairing was succesfull before and devices trusted also the Bluetooth device will be re-connected. At least that is what is happening in my setup.

Do you already have succesfully paired R-Pi3B+ and a mobile phone? Able to make a call using the Ofono python tools? Why are you referring to USB? For HFP yuo don't need USB unless you have connected a USB headset for the audio part?

Engelbert

et-hzn avatar Oct 21 '18 14:10 et-hzn