As part of this blog post, the idea is to connect the Beaglebone Wireless to a bluetooth speaker, so that I can play music via bluetooth, but the idea as part of the bluetooth maze project is to have music play via the Beaglebone Wireless via a USB connected to sound card from soundcloud.com using their APIs, and some local music stored on the SD card connected to the Beaglebone. Now since the theme of this challenge is "Bluetooth Unleashed" , I wanted to try and checkout how easy it was to connect to the a bluetooth speaker to my 'Hero board the Beaglebone Black Wireless.
Here are the steps, and some screenshots, if you are interested in following along, in my case I am using a Vivitar Bluetooth Wireless Speaker .
Once you have SSH'ed into your Beaglebone and connected to WiFi router, or connected to terminal via the cloud9 IDE (http://192.168.7.2:3000/ide.html ) , run the following commands
apt-get update apt-get install -y pulseaudio pulseaudio-module-bluetooth gpasswd -a root pulse-access
Then switch on your speaker, and check the led sequence to ensure that it is in discovery mode, and run the following commands
scan on agent on default-agent
Now make a note of the device address, which in my case is 00:25:DB:14:53:30 for the speaker, replace this with your device id.
pair 00:25:DB:14:53:30 connect 00:25:DB:14:53:30 trust 00:25:DB:14:53:30
Add the following to the end of the file using- nano /etc/dbus-1/system.conf
<policy user="root"> <allow own="org.pulseaudio.Server"/> <allow send_destination="org.bluez"/> <allow send_interface="org.bluez.Manager"/> </policy> <policy user="pulse"> <allow own="org.pulseaudio.Server"/> <allow send_destination="org.bluez"/> <allow send_interface="org.bluez.Manager"/> </policy> <policy context="default"> <deny own="org.pulseaudio.Server"/> <deny send_destination="org.bluez"/> <deny send_interface="org.bluez.Manager"/> </policy> </busconfig>
once you save and exit the file, restart the Beaglebone wireless so that the changes can take effect using the command - reboot
After reboot is done, run the following commands
LANG=C pulseaudio -vvvv --log-time=1 -D --system --disallow-exit --disable-shm pactl load-module module-bluetooth-policy pactl load-module module-bluetooth-discover echo connect 0A:EC:12:01:02:A9 | bluetoothctl pactl set-default-sink bluez_sink.00_25_DB_14_53_30
And then to play sample wav file that comes as part of alsa
aplay /usr/share/sounds/alsa/Front_Center.wav
If you think the volume is too loud use the command - alsamixer , to reduce the volume
Just in case you face an issue were you are not able to here sound out of your speaker, and to check if pactl has setup your speaker as the default output , run the following command as shown in the screenshot above.
pactl stat | grep -i "Default Sink:"