EEG via OSC workshop
This repository contains software that enables the broadcasting of data from different EEG sensors via OSC. There are also multiple simple software clients to receive and interpret the data.
The 4 EEG headsets I've used so far:
The ZEO headband's main purpose is to monitor your brainwaves during sleep, it is quite comfortable to wear, and a proprietary algorithm calculates your sleep stages during the night (deep / light / rem / wake). You can access live brainwave data over a serial port. Problem is, the company went bankrupt in 2012, you might only be able to get one of those off ebay. Also, the headband's conductive-fabric sensors get quite some wear during sleep and you are meant to replace them occasionally, but now it's hard to still find originals to buy.
The Myndplay BrainbandXL is build around a NeuroSky ThinkGear chip and a Bluetooth 4.0 module (Blue Creation BC127). The soft headband has 2 conductive-fabric electrodes (=only 1 channel) sitting on your forehead. In addition you clip a grounding electrode onto your ear, which becomes slightly uncomfortable after a while. Data is transmitted about once per second. Besides 8 frequency bands, the ThinkGear chip provides the proprietary eSense algorithms that define a meditation (relaxation) and attention (focus, concentration) level. These are very useful when wanting to achieve fast prototyping results. In addition the ThinkGear Communications Protocol can also detect eye blinks (not implemented here). To change between 50 and 60 Hz zones, a solder spot must be changed on the ThinkGear chip.
Muse is the more advanced than the previous two, as it provides 4 signal channels (2 on your forehead, and 1 behind each of your ears) and also accelerometer data. The supplied MuseIO driver streams data via OSC. For each channel you get raw signal data, 6 frequency bands and also FFT spectrum data. In addition it reports blink and jaw_clench events. The 50/60Hz filter can be set within the driver. As it is the most powerful, it also seems to be the most sensitive. You are advised to sit up straight and don't move around, while doing measurements. It really can take a long time to calibrate, but at least you catch a glimpse of all the software processes that are necessary to receive reliable data.
Emotiv Insight provides 5 signal channels (2 on forehead, 1 behind each ear, and one on the back of head). Of all the headbands this one can get the most uncomfortable to wear, as you have to place multiple quite rigid sensors probes across your skull. It's often also hard to achieve good signal quality, they recommend to apply a saline solution to the electrodes for better conductivity. I haven't succeeded in getting the API to run on Ubuntu, therefore this repository doesn't contain any software for the Insight. But Emotiv has 2 quite good apps in the app store for interfacing with the headset.
To run Muse headsets
You connect to Muse via bluetooth. Get the MuseSDK and run the MuseIO driver via the commandline, to broadcast OSC data.
# stream OSC data muse-io --preset 14 --50hz --dsp --osc osc.udp://localhost:5001
For Muse 2016 devices use Muse Direct to receive Muse data and output it via OSC.
The outgoing OSC data from either MuseIO or Muse Direct is meant to be received by the eeg_broadcast_3 processing app, which simplifies and broadcasts data from multiple Muse sensors simultaneously. Else, you can also use the SDK supplied MuseLab visualization tool to quickly monitor the data.