Interfacing with the Mindwave Mobile

About a month ago, Christopher Lewis talked about how EEG works and how we can use it in our future projects. This was sparked because brainwave reading was one of the technologies that we had to incorporate into our upcoming Pi Day project. Since Chris’ talk, we decided to use the Mindwave Mobile device because of the built in bluetooth and the cost effectiveness of it ($129 from Neurosky).

A couple of us got them and we have thus far interfaced with iPads, iPhones, Android phones, Macs, PC’s, Raspberry Pi’s and Arduino. To sum it up, the bluetooth capability makes the device very versatile, which is ideal for us. This post will discuss some of our experiences with two of the technologies that we have it connecting to: Arduino and Raspberry Pi.

Raspberry Pi + Mindwave Mobile

There are a couple of requirements for the Mindwave Mobile to run on the Raspberry Pi. The first (and most important) being a bluetooth dongle. There are some pre-approved devices, but we had success with a bunch of different devices. To get the Mindwave paired with your Raspberry Pi, you need to install the bluetooth package… we outlined the basics of this in our previous post.

Once you have bluetooth setup and the Mindwave paired, you need to be able to do something with it. We decided that python was the way to go and came across this code library – . The only thing that was missing was blink detection, so we forked their code and wrote something the seems to work quite accurately –

To access a git repository on Linux, it is the same thing as accessing it via most other operating systems. First you need to install git and then clone the repository into the folder of your choosing.

sudo apt-get install git-core

// go to the folder that you would like to clone to and type:

sudo git clone

In that library, you need to adjust the MAC address of your Mindwave Mobile in the file. From there you should be able to run:


This will attempt to connect with the bluetooth device that has the MAC address specified in the RawReader and start spitting out data. That is all you should need to get things going for the Raspi.

Arduino + Mindwave Mobile

The Arduino was a little bit easier for us to get the Mindwave connected since NeuroSky has a little bit of documentation for setting things up. The most difficult part was configuring the blueSMiRF. Take a look at for more details, anything we say will just be a reiteration.

We will be posting the code that we end up with as soon as things are complete.

2 Replies to “Interfacing with the Mindwave Mobile”

  1. If I wanted to get this raw data and plot into a graph for analysis, how would I do this?

    I essentially want certain waves to meet a value criteria, average it out, and use that data to run other commands.

    Any help would be greatly appreciated.

Leave a Reply

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