in ,

Mindflex Data Extraction using Arduino

Mindflex is actually a game from Mattel which uses our brain frequency to move a ball through obstacles. The brain waves (EEG Signals) are captured using electrodes that are placed in the headband and these waves are processed to get the attention and meditation level, which is later fed to the base station via Bluetooth and uses it to control the fans and the movement of the ball.

We decided to take a higher-level approach by grabbing serial data directly from the NeuroSkyEEG chip and cutting the rest of the game hardware out of the loop, leaving a schematic that looks more like this:

Now I will show how to extract useful data from mindflex headset.

Step 1 – Disassembly

Use a screwdriver and carefully open up the left casing of the the headset, where the microcontroller and amplifiers are placed.

Step 2 – Intercepting the Transmission Line

If you carefully observe the board, we can see a microcontroller, an amplifier and a bluetooth module. The amplifier is used for boosting up the week EEG signals which the microcontroller processes and send to the base station via bluetooth.

If you look closely, you can see transmit pin (T) and a Receiver pin (R), which will be used for transmission. What we are going to do is connect a wire to the T pin and connect it to receiving pin Rx of Arduino. Take a piece of wire and solder one end to the T pin and connect other end to arduino.

Step 3 – Common ground.

Connect the ground pin of arduino to the ground pin of mindflex.

Step 4 – Securing all the Connections.

Use a hot glue gun to secure all the connections and make sure that the connections wont be disturbed while it is being used.

Setp 5 – Hook up the Arduino.

Connect other end of Mindflex to arduino. Now its time to setup the software part. There is a library available for everyone to download which can convert the raw data of mindflex to human understandable form. You can download the library from here.

Now Open BrainSerialOutexample, select your board and port, compile the code and upload it to your board.

The Output

Once the code is uploaded, open up the serial monitor. If you have done everything correctly, you will see the data being populated in the serial monitor.

About the Data

Depending up on our thoughts and state of our mind, the frequencies of our brain waves varies. Below are the classification of brain waves based on their frequencies.

• Delta (1-3Hz): sleep
• Theta (4-7Hz): relaxed, meditative
• Low Alpha (8-9Hz): eyes closed, relaxed
• High Alpha (10-12Hz)
• Low Beta (13-17Hz): alert, focused
• High Beta (18-30Hz)
• Low Gamma (31-40Hz): multi-sensory processing
• High Gamma (41-50Hz)

This Neurosky chipset outputs eight values depending up on the amount of electrical activity at different frequencies. Based on these values, neurosky calculates and outputs the value of “Attention” and “Meditation” which will be used to control the ball in the game.

• Attention level denotes the intensity of the players mental focus. Focusing on something or doing mental calculations can increase the concentration level and lack of concentration like wandering thoughts can decrease the attention level.
• Meditation denotes player’s mental calmness.


To get an awesome graphical representation of the data, you can download Processing, download the graphing code from here, and open up brain_grapher.pde in Processing. Turn on your mindflex, run the sketch, sit back and enjoy your brain waves.

What to Do Next?

I have used this to make a wheel chair that can be controlled using thoughts. Click Here to know how. See you on the other side.

Rate the Project

Did you find this page useful? Help us to improve by rating this page.

Mindflex Data Extraction using Arduino
4.4 rating based on 12,345 ratings
Overall rating: 4.4 out of 5 based on 253 reviews.

Written by Jithin

Leave a Reply

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

Mind Controlled Robot using Arduino and MindFlex

Arduino MKR GSM 1400 with Global GSM Support