Creating a Spotify remote with an Arduino and LCD Shield

spotifyremoteThis one is for the Spotify people. We’ve created a small project that makes use of the Arduino and LCD Keypad shield to create a Spotify remote control. This will show the current playing song as well as adding Play/Pause, Prev and Next functionality to it.

Check out the quick YouTube video at the bottom of this page.

The remote is made from a VB.NET application that listens on a select COM port for commands, it also broadcasts the current playing song via the COM port to the Arduino.

You could add a Bluetooth module to this (described in our previous article here) to make it completely wireless, which would be really cool.

So, what’s needed?

We’ll begin by creating the Arduino sketch. What we need to do is the following:

  1. Read the Serial Port and look for incoming characters that make up the current song.
  2. Listen for button presses and Serial.println() commands.
  3. Display the current song on the LCD (with Scrolling Text)

These three tasks are actually really simple to do; most of the hard work will be on the .NET application side that sends commands to Spotify. Take a look at the Arduino Sketch below:

The Arduino Sketch

The Arduino refreshes the LCD Screen every 3500ms. This is optional but it seemed better that it was constantly scrolling instead of just static text; moving text seems less boring!

As far as the Arduino code is concerned; that’s all there is to it. We’ll now move over to Visual Studio and get started with the application we have put together. The actual Spotify control class is by a person named Steffest who released this back in 2009 – We can’t really give you much more than that, as there is no website for this code.

You can download the Project Code by clicking here. (it is also posted below)

The .NET Application

The application works by listening and sending information on the same COM port as the Arduino. The application listens for 3 commands (play/plause, prev, next) once these get detected they send the relevant command over to the Spotify application. Information about the current song is then sent to the COM port and received by the Arduino, which outputs this to the attached LCD screen.

Once the application is loaded and in use it should look like the below:


As you can see, the only options you have is to select a COM port (this should be the Arduino’s COM port) and a Connect/Disconnect button. That’s it! – The console window at the bottom updates in realtime as to what is getting sent/received from the Arduino.

Check out the YouTube video of this in operation: (apologies for the quality, it’s the phone camera again!)


It’s actually quite fun to play around with; this would look great sat on the desk with an enclosure made for it.

That’s it for now, if you have any comments, questions or suggestions then please feel free to comment below or send us a message using the contact us page.

Have fun!

Email this to someoneShare on Google+Pin on PinterestTweet about this on TwitterShare on RedditShare on Facebook

2 thoughts on “Creating a Spotify remote with an Arduino and LCD Shield

  1. Hi,
    Really cool project. I want to tackle a similar idea, but want to just have a display for my Sonos player that shows what song/album is currently playing. I’m a total novice but understand the basics of coding. Do you have any recommendations on how to tackle this project?


  2. Hey,

    Fantastic project! I’m looking to do something similar but rather than use VB .Net I want to control playback from my Spotify app on my iPad and have an external display of what is playing. I understand I’d need Bluetooth for this but I’m a n00b when it comes to all of this. Would you mind offering some kind advice/assistance?



Leave a Reply to Reggie Cancel reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">