Introduction: Adding Bluetooth to an EEG Headset for Mind-controlled Projects
Controlling things with your mind is awesome. Unfortunately, EEG headsets like the NeuroSky MyndWave are a bit too pricey if you just want to experiment. Last year, I wanted to see what I could control with my brain on a student's budget.
I came across FrontierNerd's Brain Hack tutorial, which gave me a good comparison of the EEG headsets and their capabilities. I tried out their tutorial and hacked a MindFlex headset using an Arduino. It was fun to do, but it still required a cable to be attached, limited mobility, and looked hacked together.
I had a serial bluetooth module HC-06 lying around and decided to see if I could integrate the two and skip the Arduino altogether. Turns out, it works almost as good as the commercially available NeuroSky MyndWave for a quarter of the cost, and looks completely unmodified!
Finally, I came across a wonderful open source application by Trent Brooks that forwards your EEG signals on via OSC so you can use it in your MAX/MSP, Processing, or other projects.
In this tutorial, I'm going to show you what to buy, what to solder, and how to get your Bluetooth EEG headset up and running.
DISCLAIMER:
This is a relatively safe and easy hack to pull off, especially because we're using a commercially available toy and adding a Bluetooth module to it. However, I do not claim to know how this device fully works and take no responsibility for any harm that this project may incur.
UPDATE:
While browsing Instructables, I noticed that arpuss had put up a tutorial using the MindFlex and the HC-06 but goes several steps further to pull raw data from it by switching the MindWave chipset into a different mode by sending a series of hex codes at 57600 baud on boot-up. That's awesome! Check his post out here.
Step 1: Gather Parts
What you'll need:
- ~$12 - Mindflex EEG headset (I bought mine on eBay by searching for "replacement MindFlex headset")
- You'll want the one that looks like it has a curved black shape along the side
- ~$6 - HC-06 Bluetooth Serial Module (with wires)
- 3x AAA Batteries
- Small screwdriver
- 30W+ Soldering Iron with a fine tip
- Lead-free Solder
- Electrical Tape
- Steady hands
- Computer with a Bluetooth radio
- Spare 20 gauge solid core wires (optional)
- Multimeter (optional)
- Only if you want to double check the wiring
- Arduino and Breadboard (optional)
- Only if you want to change the Bluetooth settings such as name and baud rate
Step 2: Open Up the MindFlex
There should be two sides to the headset. One side contains the batteries and the other contains the switch and electronics. You're going to want to open up the side that has the switch on it.
Remove the 4 screws on the black side of the headset to get access to the circuit board.
Once inside, you will also want to remove the 2 screws attaching the circuit board to the housing.
At this point, you can warm up your soldering iron, because you're going to need it in the next step.
Step 3: Solder
Look through the photos to make sure you have a good sense of what needs to be soldered. You'll only need to solder 3 wires, which connect to the Bluetooth module's GND (Ground), RXD (Receive), and VCC (Power) pins. The first two are on the front of the MindFlex PCB, and the last one is located on the back where the switch is.
For the curious, the TXD pin on the HC-06 is used for transmitting serial commands back, the State pin goes HIGH when on and used as a power indicator for an external LED or micro-controller, and the EN pin is used to reprogram the module with different names or baud rates.
Your Bluetooth module should come with a few female-female jumper wires. You can cut and strip them to solder on to the MindFlex, but just make sure that the plug lines up with the HC-06 properly. If your module did not come with jumper wires, you can solder spare wires to the MindFlex and the HC-06.
Technical details:
The Bluetooth module has a built-in power regulator and can take anywhere from 3.3v to 5v. This is perfect because the MindFlex takes 3AAA batteries at 1.5V each when fully charged, which provides about 4.5v. Soldering the VCC pin to the switch means that the Bluetooth module powers on using the same switch and power supply as the MindFlex. The MindFlex also communicates with the base station using a daughterboard that communicates via Serial UART. Soldering the "T" pin to the HC-06's RXD pin means that the Bluetooth module will siphon off the serial commands and pass it wirelessly over Bluetooth as if it was directly connected via a cable.
Step 4: Insulate, Test, and Repack
We're almost there. The next step is to insulate the board to prevent any shorts before you cram everything back into the case. Cover any exposed component or leads on the HC-06 with electrical tape. Check the photos, you should have something similar to my setup.
Put batteries into the other side of the headset and turn it on. The red LED on the outside of the headset should tell you that the headset is receiving power, and the lights on the Bluetooth module should tell you that the Bluetooth module is functioning properly. If not, immediately turn it off and check your wiring.
Once everything is working, arrange the Bluetooth module inside the case, replace the screws and you have a working single-channel Bluetooth EEG headset!
Next step will be getting it paired with your computer and reading brainwaves.
Step 5: Pair With Your Computer
It's time to pair this with your computer. I'm running OSX Mavericks 10.9 so your screens may look different if using an older version.
If you are using Windows, check this out for pairing instructions.
The default name of your Bluetooth module should be HC-06. I have modified the name of my module to MindWaveMobile using an Arduino. Check out this tutorial if you want to do that.
The default passcode for the HC-06 should be '1234'.
Step 6: Read Data Using BrainWaveOSC
Download Trent Book's BrainWaveOSC for your platform and unzip it to a folder.
Before you run the application, you'll need to do is identify how your system sees your bluetooth device.
Windows Users:
You need to find the COM port that the bluetooth device is attached to. I'm not running windows, but this may help.
Mac users:
The easiest way to find this is to open up your terminal and type in ls /dev/tty.*
This will give you a list of serial devices detected by your system. Your should look like /dev/HC-06-DevA
Once you find your device, open up the settings.xml file located in the Data folder of BrainWaveOSC.
The 4th line should read something like COM6 in between the tags. Change that to your device string that you found earlier. It should look like /dev/HC-06-DevA
Open up BrainWaveOSC and watch your brainwaves!
After you open the application, it should start with a red panel on the left and turn green once it starts receiving data. That's it, you are reading your brainwaves from the prefrontal cortex of your brain, which usually deals with logic!
About EEG and how this all works:
EEG stands for Electro Encephalography, which basically it means it reads small changes in electrical activity in your brain as your neurons fire. This is usually represented in a series of frequency bands, also called power bands. You may have heard of them: Delta, Theta, Alpha, Alpha, Beta, and Gamma waves. These frequencies have been known to correlate with activities such as blinking, sleep, stress, and so on if you observe them over a long period of time.
What can it do?
Most of the time, your power bands are going to be all over the place and probably not make any sense. Your brain is extremely complex and this device is a very simple EEG reader. It's called a single-channel dry sensor because it only has one node attached to your forehead and doesn't take any conductive gel to connect. You may have seen much more complex versions of this in hospitals with over 40 sensors located all over.
However, NeuroSky - the manufacturer of the chip inside the MindFlex - has implemented mystery algorithms that can "learn" at least two things about you. Your Attention level and Meditation level. The chipset spits out values for these between 0 and 100. This means that your Attention level goes up when concentrating really hard on say, a math problem. Or raising your Meditation level by closing your eyes and relaxing your mind.
We can use Attention and Mediation to do some cool things, like triggering an action whenever one of those exceeds a preset threshold.
UPDATE:
I've posted another Instructable here to show you how to use the OSC messages to throw a Hadouken in Street Fighter. Enjoy! :)
About BrainWaveOSC:
This program is written in OpenFrameworks by Trent Brooks and is used to parse the data coming from EEG headsets and rebroadcast the values back out through OpenSoundControl (OSC). This makes it easy to pass EEG data to other applications for creative purposes like controlling a quadcopter.

Participated in the
Tech Contest

Participated in the
Teach It! Contest Sponsored by Dremel
66 Comments
Question 1 year ago on Step 6
Hi,
We have managed to attach the bluetooth module to the headset and it successfully pairs with my laptop, however when connecting to the app it goes green and red with no data.
Any help would be appreciated :)
8 years ago on Step 1
Hi,
Great info and awesome insutructable. I had a question. I cannot get my blue tooth to connect all the time. It will connect and then disconnect every 10 seconds or so. It also does not send any data to the .csv. I got one test to work but after that it has not. Is that my computer, the program or the bluetooth you think?
Any help would be awesome,
Thanks!
Reply 2 years ago
Hello how can I un target my self from this design and some from friends of mine are targeted to please help us
Reply 8 years ago on Step 1
Hey George,
It's hard to tell what would be failing, but if it's disconnecting and reconnecting, it might be the bluetooth module or your computer. It's possible that the bluetooth module might not be getting enough power. Usually wireless transceivers draw different amounts of power depending on its state. So when it's attempting to transmit, it's possible that it's trying to draw too much power.
I don't believe that the power source that you are tapping into on the bluetooth headset is regulated either. I would try connecting a separate 3.3v battery pack to the bluetooth module to see if it will stay on. Just remember to remove the positive (+) pin from the EEG headset.
Hope that helps!
Reply 6 years ago
My headset works wit no device, plz help.
Reply 6 years ago
Why would you have to disconnect the + pin from the EEG headset, that makes no sense
Reply 7 years ago
Hello, i tried to do that and it's still not working...
maybe it is a problem from os x? i'm running el capitan
Thank you!
Reply 8 years ago on Introduction
I cut the power trace to the Mindflex radio power pin, and route power to either the HC-05 or to the radio from a switch. The power is to the HC-05 is also supplied to the B1 pin on the TGAM1 module to switch to 56700 baud (the HC-05 is also set to 57600 baud for raw data transmission) See photo.
Reply 8 years ago
Hi!
I have exactly the same problem. Did you solved it somehow?
Thank's!!
Greetings !
Reply 7 years ago
Ok, i have been doing some research today, and i know why its not working... You can only use this bluetooth modules with older mac's (2010 mac's or so), its a problem from the intern bluetooth that does not accept the hc-06. You can make it with a pc or an old mac, even with an android smartphone.
4 years ago
Hi Andre.
Thanks a lot for this tutorial, is very very interesting. I've made all and it' great...
I have a doubt: I want to read what says MinFlex to my computer is for it, that I install Putty, (https://www.putty.org) to read the information, but the result is very strange:
Le▒v▒▒▒▒▒n▒0`▒I▒▒ ▒▒▒▒%=▒▒b UxI4▒m▒▒ ȃԓ▒▒uK
'C ▒▒wD▒ ▒|]K▒▒ ȃ
▒▒▒s▒F:▒▒▒▒s▒'▒▒ ȃ
y▒▒Jv▒▒ ȃ▒;▒▒6▒▒4P)ʒ▒Wv▒P▒
▒P▒▒ ȃYV▒▒▒R▒ro▒▒▒▒?j▒▒▒ ȃ▒"▒▒▒ ▒▒▒▒w▒▒=
▒▒* i▒▒
▒▒@▒▒
I thougth to receive number values, maybe an array...
What can I do?
Thanks a lot and scuse my English.
Àngel Gimeno
6 years ago
HI,
i have hc05 bluetooth module and neurosky mindwave black headset i need help in connect headset with hc05 and get data can you please help
6 years ago
Hello, I am having problems with the HC-06 module. It keeps reconnecting and disconnecting from my mac and PC. I have tested the voltage on the multimeter and it stays stagnant at 3.35V. Is this the problem, or is it something else.
Reply 6 years ago
More info: Inside the headset, if I measure the voltage it reads 3.24V, is power the problem?
9 years ago on Introduction
I've posted another Instructable showing how to throw a Hadouken using OSC messages from this tutorial. It's written for absolute beginners and you don't need to know how to program. Enjoy! :)
https://www.instructables.com/id/Throw-fireballs-wi...
Reply 6 years ago
Hello, I am having problems with the HC-06 module. It keeps reconnecting and disconnecting from my mac and PC. I have tested the voltage on the multimeter and it stays stagnant at 3.35V. Is this the problem, or is it something else.
Reply 7 years ago
hi
bro i am Naveen from New Delhi .I am a robot make here ...I need help to control robot by brain waves only so i need your personal facebook ID....send me message on my facebook ID kaurpreet50005@gmail.com thats my fb ID....
7 years ago
HC-06 is not working, it disonnects until 60 seconds connection ¿How did you do it? I can't believe your hc06 module works well but mine not, i have tried the connection with two different hc06 and its always giving the same problem...
7 years ago
Hello guys
could you help me please? since I'm trying to develop an application using attention and meditation levels could you me explain please which differences we have for these signals when TGAM chip works in 9600 baud mode (so 1 data packet every second if I'm not wrong) or in raw mode, 57600 baud?
Let's say...since my application will use only attention and meditation values and not the other brain waves is it necessary or better to switch to 57600 baud mode or I can "stay" with my default setting 9600 boud one?
what are the advantages of using these two values (att/med) in the second case (57600 baud mode)?
Thank you very much for your help !!!
thanks again and regards
Lo
7 years ago
Man this is the best tuto about EEG + Bluetooth I found so far, the rest was not clear to me at all but this is clear as crystal. Nice job man. Tho I have a question. Is it possible to visualize the brainwaves in Processing as a graph like in this link you provided http://www.frontiernerds.com/brain-hack instead of BrainWaveOSC ?? If it is possible how can I do it? The other tutorials only show how to use Processing with the arduino, I didn't see any tuto yet on how to use the graphs directly without an arduino. Thank for the feedback. Cheers