The setup of a bluetooth speaker on a Pi Zero W is pretty touchy.
Please get in touch via Twitter @actuino or http://www.actuino.fr/ if you've got comments or improvements to this quick draft.
- Use a solid power source
- check the speaker works on another hardware (android phone f.i.)
- make sure you've updated your Raspbian, install and run rpi-update just in case.
- Use a raspbian Pixel, run
sudo apt-get update
thensudo apt-get dist-upgrade
and reboot. - use the graphical widget to pair and connect your speaker. You may have to try twice or more.
pi-bluetooth and bluez are already installed on recent Raspbian.
Install:
sudo apt-get install pulseaudio pulseaudio-module-bluetooth
(without this module, you get messages like "bluetoothd[5556]: a2dp-sink profile connect failed for 00:1D:43:6D:03:26: Protocol not available")
Add your pi user to the bluetooth group
sudo usermod -G bluetooth -a pi
sudo reboot
pulseaudio --start
If it complains about not being able to spawn a local server, run
pax11publish -r; /usr/bin/pulseaudio --start
run bluetoothctl
use "help" if you want more details about the available commands. The first time, you'll have to run the following:
power on
agent on
scan on
- wait for the device to be discovered, note it's address (you can then use tab for auto-completion)
pair <dev>
trust <dev>
connect <dev>
wait for the confirmation, thenquit
test : aplay something.wav
edit /etc/pulse/default.pa , add
# automatically switch to newly-connected devices
load-module module-switch-on-connect
edit /etc/bluetooth/main.conf, at the end of the file, add AutoEnable in the existing Policy section :
[Policy]
AutoEnable=true
You may need to:
pulseaudio --start
(This last step was not useful for me):
bluetoothctl -a
then wait and quit when (auto) connected
- Sometimes, the BT speaker disconnects itself, but it's still viewed as "connected" from the Pi. From this point, nothing will fix it exept a Pi reboot.
@OttoNL I also had the same problem and wasn't able to play audio, but did have some luck by doing the following:
First I had to install the package
bluealsa
by doing this:sudo apt install bluealsa
You'll also need to create and edit the following file with your device id:
nano ~/.asoundrc
Add these lines (replace the device id with your connected device):
Then, do a reboot, and ensure that you are connected to your device.
Test by running:
aplay -D bluealsa yourfile.wav