How to stream audio via Bluetooth with Intel Edison

I apologize in advance, these are working notes I took during a hackathon from a developer who got Edison working as an audio source via Bluetooth. Some steps may be missing. If you find anything wrong with this please tweet me: @rexstjohn.

First, install PulseAudio via opkg if not installed and unblock Bluetooth (see rfkill instruction below). Install drivers for Bluez etc. There are some steps over here.

$ rfkill unblock bluetooth

Next, put your audio device into pairing mode. Then, on your Intel Edison do this:

$ bluetoothctl (opens the bluetooth agent)...
$ agent
$ set agent KeyboardDisplay
$ default-agent
$ scan on

Locate the audio controller from the list:

$ pair xx:xx:xx:xx (with the audio controller you get from scan on, your Bluetooth speaker)
$ connect xx:xx:xx:xx

On the linux terminal, now play the file

$ pactl list | grep -A1 SUSPENDED | grep Name (show list of devices suspended)

Scroll through the list and find the “sink.” Hint: Look for thing that says “State suspended”, find the “sink” that is suspended.

It will look like this: bluez_sink.[your mac address with colons as underscores]

$ pactl set-default-sink bluez_sink.[yourmacaddress]

Now use PulseAudio / mplayer to play your audio file. Copy a wav file into Edison (probably using scp), then play it like this:

$ “./mplayer youraudio.wav"