Tested on:RPi 3B+; Raspbian Buster
Prerequisites:Raspberry Pi with Raspbian Jessie and internet connection (see steps 1-7 in the Introduction)
Hardware:3.5mm active speakers
Smartphone with Bluetooth

Finally! Raspberry Pi 3B+ Buster as Bluetooth audio sink

I’ve tried a few times in the last years to configure a Raspberry Pi as Bluetooth audio sink, with no avail. Best case, the connection was instable and the audio quality poor. With the RPi3 B+ and Raspbian Buster finally delivers a good Bluetooth connection quality, yay!
Thanks to Abdul Mueid for the bluetooth tutorial on his blog!

Connect the speaker with the RPi, boot and log in. Enter in the terminal

Log in again and start bluetoothctl with

Aktiviere Bluetooth auf dem Smartphone und gib jetzt nacheinander ein
Activate Bluetooth on the smartphone, then enter one after another the following

Replace XX:XX:XX:XX:XX:XX with the hardware address of the device which should be coupled, see

Bluetooth scan results

Bluetooth scan results

For pair, the coupling has to be confirmed on the smartphone.
Have a look at this tutorial for automating Bluetooth connections.

For a respectable audio quality, at least a Raspberry Pi 3 B+ and a USB soundcard or the pHAT DAC are required, since the onboard sound of the RPi isn’t very pleasant.

Buster lite
The setup shown herein sadly doesn’t work for Raspbian Buster lite. For unknown reasons, the device type audio (0x200414) is reset to 0x000000 after every reboot, which prevents the RPi from being recognized as audio sink. If someone has an idea regarding this, please let me know!

Tutorial pHAT DAC: http://www.knight-of-pi.org/great-audio-for-the-raspberry-pi-with-the-phat-dac/
Automate Bluetooth connections with PExpect: http://www.knight-of-pi.org/terminal-control-with-pexpect-automate-bluetooth-connection
The Code Ninja: Bluetooth Audio Receiver: https://thecodeninja.net/2016/06/bluetooth-audio-receiver-a2dp-sink-with-raspberry-pi/

Knight of Pi

Johannes Bergs aka Knight of Pi. Diploma in Bioinformatics, some Webdesign and Python coding then. Living in the beautiful city of Vienna.


  1. aand actually it worked like a charm!
    bt-audio latency is negligible, this is *definitely* the way to go; the only annoyance so far is that it does not sense the audio change on the host (ie. when you change the bluetooth volume on the handheld, the pi audio output doesn’t change accordingly). probably some minor tweaking is needed.

    many thanks :-)

    • Did you try the setup Casual gave in the comments? I’d need to try it again, but i think my solution in the tutorial allows volume adjustment from the handheld….

  2. Hey
    There is another way to do it (it worked better for me less latency and no 0x0 after reboot proble)

    apt-get install libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-pulseaudio python3.5-dev python3.5-dbus

    install bluez from post

    git clone https://github.com/gmsoft-tuxicoman/bt-audio
    cd bt-audio
    sudo python3 bt-audio.py

    • Thank you very much for this information!
      Can’t wait to find some free hours to try it, my setup works but it has difficulties with streaming audio from Youtube.


Time limit is exhausted. Please reload CAPTCHA.