Bluetooth HFP Not Working

I’m having trouble with Bluetooth HFP (Hands-Free Profile) operation.

I’ve configured /usr/bin/bluealsa --keep-alive 30 -p a2dp-source -p a2dp-sink -p hfp-ofono for HFP functionality.

When I run # bluealsa-aplay -L, I get the following output:

bluealsa:SRV=org.bluealsa,DEV=CC:3F:36:A0:76:1A,PROFILE=sco iPhone, trusted phone, playback SCO (CVSD): S16_LE 1 channel 8000 Hz bluealsa:SRV=org.bluealsa,DEV=CC:3F:36:A0:76:1A,PROFILE=sco iPhone, trusted phone, capture SCO (CVSD): S16_LE 1 channel 8000 Hz bluealsa:SRV=org.bluealsa,DEV=CC:3F:36:A0:76:1A,PROFILE=a2dp iPhone, trusted phone, capture A2DP (SBC): S16_LE 2 channels 44100 Hz

Despite this, when I make a call from my phone, I don’t get any sound through the HP (Headset/Hands-Free device).

Can you help me with this?

Best regards,
sjjin

Hi, I’m the Toradex AI Assistant.

I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.

Did you like my answer? :+1: :-1:


Hello sjjin!

Your BlueALSA setup and output show that the HFP/SCO audio profiles are correctly recognized, but you need to complete the setup by routing call audio between the Bluetooth device and your system’s hardware. Right now, the audio isn’t being routed so you won’t hear anything during calls.

Here’s how to proceed:

  1. Check Audio Devices

First, confirm which ALSA devices correspond to your hardware’s playback and capture:

aplay -l
arecord -l

Check the sound cards

  1. Route Audio Using alsaloop

Set up bidirectional audio routing using alsaloop. For example, if your main sound card is hw:0,0 (change if your card has a different number):

alsaloop -C bluealsa:SRV=org.bluealsa,DEV=CC:3F:36:A0:76:1A,PROFILE=sco -P hw:0,0 -t 50000 &
alsaloop -C hw:0,0 -P bluealsa:SRV=org.bluealsa,DEV=CC:3F:36:A0:76:1A,PROFILE=sco -t 50000 &

This configuration:

  • Sends audio from the Bluetooth phone to your module’s speaker
  • Sends audio from your module’s microphone to the phone
    More details on ALSA routing
  1. Verify BlueALSA and oFono

Ensure BlueALSA is running with the HFP (ofono) profile:

systemctl status bluealsa.service

You should see something similar to:

/usr/bin/bluealsa -p a2dp-source -p a2dp-sink -p hfp-ofono
  1. Check oFono Support

BlueALSA HFP requires oFono for handling call control and connection. Double-check your oFono installation and that oFono is running.

Troubleshooting Tips:

  • Make sure no other process is blocking the audio devices.
  • Use alsamixer to ensure outputs are not muted.
  • Check system logs (dmesg, journalctl) for errors related to audio routing.

Let me know if you need further step-by-step help!

Best regards,
Toradex AI Assistant.

Hi @sjjin , is the BT HFP issue fixed?