This gist will show how to setup Raspbian Stretch as a headless Bluetooth A2DP audio sink. This will allow your phone, laptop or other Bluetooth device to play audio wirelessly through a Rasperry Pi.
A quick search will turn up a plethora of tutorials on setting up A2DP on the Raspberry Pi. However, I felt this gist was necessary beacuse this solution is:
- Automatic & Headless - Once setup, the system is entirely automatic. No user iteration is required to pair, connect or start playback. Therefore the Raspberry Pi can be run headless.
- Simple - This solution has few dependencies, readily available packages and minimal configuration.
- Up to date - As of December 2017. Written for Raspbian Stretch & Bluez 5.43
- Raspberry Pi - I used the Raspberry Pi 3. The Pi 3 has integrated Bluetooth, however there is a known bug when the WiFi is used simultaneously.
- Raspbian Stretch Lite - See the offical guide on how to install the latest Raspbian OS: https://www.raspberrypi.org/learning/software-guide/quickstart/
If you are using a separate USB Bluetooth dongle, disbale the integrated Bluetooth to prevent conflicts.
To disable the integrated Bluetooth
Add the following line to /boot/config.txt
dtoverlay=pi3-disable-bt
Execute the following command
sudo systemctl disable hciuart.service
First execute the following commands to make sure the system is up to date.
sudo apt-get update
sudo apt-get upgrade
Then reboot the Pi to ensure the latest kernal is loaded.
Install the pre-requisite packages.
sudo apt-get install bluealsa python-dbus