Intel Edison has onboard Wi-Fi and Bluetooth. This is one of my favorite IoT board as it never disappoints me. Recently I wanted to play some sound with Edison in one of my projects so I thought to give a try to its Bluetooth functionality and it was easier than I thought. In this project I am going to show you how we can play an audio file with Edison by connecting it to Bluetooth speakers.
Intel Edison with Arduino Expansion board
Connect your Edison to PC and also establish a serial communication. As we are connecting through Bluetooth our Edison will work in Device Mode. If you are using a USB sound card and headsets you need to switch it to host mode, in that case this article won’t be much helpful to you.
Connect to Edison with Putty.
Enter username and Password. The default username is root with no password.
Make sure your Bluetooth speakers is turned on. Now type these commands
root@edison:~# rfkill unblock bluetooth root@edison:~# bluetoothctl
[bluetooth] scan on
You will see your device listed. Find your device and Pair it.
[bluetooth] pair 30:21:85:A1:46:3D
Sometimes device does not automatically connects so you need to run another command to connect it.
[bluetooth] connect 30:21:85:A1:46:3D
Exit the Bluetooth Manager.
Now let us verify that our device is recognized in pulse audio as a sink device and if everything goes fine you will see it listed as bluez_sink
pactl list sinks
Configure the default sink to use pulse audio server with the following command, replacing with the details of your device
pactl set-default-sink bluez_sink. 30_21_85_A1_46_3D
Now we are almost done. Let us run the audio file using gStreamer. I have already copied an audio file to my Edison using FileZilla.
Run this command and also replace the file name and location.
gst-launch-1.0 filesrc location= /home/root/Songs/SanamRe.wav ! wavparse ! pulsesink
If everything goes fine you will notice song playing via your Bluetooth speakers. Enjoy your new music player!