Intel Edison has onboard Wi-Fi and Bluetooth. This is one of my favorite IoT boards, as it never disappoints me. Recently I wanted to play some sound with an Edison in one of my projects so I thought I'd give its Bluetooth functionality a try and it was easier than I thought.
- Intel Edison with Arduino Expansion board
- Bluetooth Speakers
- USB cables
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, then enter your 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 connect, 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!