Differences in smartphone chipsets for simultaneous BLE and HFP/A2DP on Android

222 views Asked by At

I have a problem with a lost BLE connection during a voice call on Android smartphone chipsets.

  1. I am connecting an Android phone to a car stereo via Bluetooth.
  2. I also have a separate BLE peripheral connected to the same smartphone.
  3. I make a phone call from the smartphone routing audio through the car stereo.

I have tried this with two different Android phones. One has a Qualcomm MSM8953 Snapdragon 625 and the other has a Mediatek MT6763 chipset.

On the Qualcomm everything works great! The phone is able to make a call routing audio through the car stereo while receiving GATT notifications from the BLE peripheral at the same time.

On the Mediatek, as soon as I start the phone call, the BLE peripheral is disconnected with status code 0x08 GATT_CONN_TIMEOUT while the voice call works normally. The moment I end the voice call, the BLE connection can be re-established and GATT notifications can be received again.

The smartphone manufacturer has confirmed that this is a limitation of the Mediatek chipset.

I'm wondering why some chipsets do and some don't support this. We need to order several more phones for a customer and need to make sure the chipsets support simultaneous voice calls via bluetooth and BLE GATT notifications. I'm hoping someone can point me in a direction as to why this might be happening and what I should be looking for in a chipset to support this.

1

There are 1 answers

0
akatz On

HFP audio is a bandwidth hog. The audio connection is routed through a logical link called Synchronous Connection-Oriented (SCO). This connection requires the radio controller to schedule regular interval for Tx/Rx. The "failsafe" settings for this connection in the HFP profile dictate that 2 consecutive time slots out of every 6 are dedicated to this link. (see "D0" profile in the HFP specification). This makes it extremely difficult for the radio to schedule other transmissions, for example GATT packets on the LE PHY.

I'm guessing that the problematic chipset is using these failsafe parameters and that is causing your GATT link to time out.