MindWave

=NeuroSky MindWave=

Product Page NeuroSky Developer Portal

The NeuroSky MindWave is an electroencephalography (EEG) device that is notable for being portable and inexpensive (around $100), and also for being a dry, single-electrode EEG.

Getting Started

 * 1) Download and follow the [|setup instructions] for your given platform.
 * 2) Use the MindWaveManager to pair the dongle and headset with your system.
 * 3) Launch the ThinkGearConnector.
 * 4) Telnet to "127.0.0.1 13854 " and quickly send "{ "enableRawData": true, "format": "Json" } "

At this point JSON data should begin to display (Note: waiting too long to send the above JSON command may result in a dropped connection).

//Note//: Data arriving via the socket is delimited only by a single carriage return (\r ) and not by a carriage return plus line feed pair (\r\n ) as is more common in typical socket programming. Similarly, data sent to the MindWave should be followed only by a single carriage return (\r ).

Tools
//VisualMindWave// - A diagnostic application that allows potential MindWave hackers to get gain a visual understanding of what the raw MindWave output looks like. Before one begins coding up a MindWave application of their own it's useful to first run only this diagnostic application while performing whatever task they wish to control. This way, you can easily see the range of EEG values that your task generates and thus quickly pick threshold values with minimal effort.

The included source demonstrates interfacing with the ThinkGearConnector serving JSON-formatted data in Objective-C.

Source code repository: []

Inspirational Sample App
//Psycho Clippy// - A demo application that mimics the maligned Office Assistant found in previous versions of Microsoft Office. It uses the MindWave to monitor the level of attention of the wearer, so that she may be informed when she isn't paying sufficient attention to the task at hand. The assistant sits transparently around the desktop and waits for attention levels to dip before popping up an alert to remind the user to pay attention.

The code demonstrates proper use of sockets to retrieve continuous JSON-formatted data from the MindWave headset, and also shows how to visually convey computed interpretations of the raw data (attention level, in this case) in real-time. The end product humorously violates many of the principles of mixed-initiative user interfaces originally laid out in Eric Horvitz's influential paper, which was based on experiments during the development of the Office Assistant.

Source code repository: []

Background Resources
JSON - JavaScript Object Notation - The most usable data format that the MindWave provides.
 * json.org - The official JSON resource.
 * JSON on Wikipedia.
 * ActionScript JSON API (for FP 10.3 and earlier, see here)
 * [|Objective-C JSON API] (for the iOS and Mac OS platforms)

Sockets - The ThinkGearConnector for MindWave lets applications communicate with the headset over standard network sockets.
 * Sockets on Wikipedia.
 * APIs for sockets in NodeJS, ActionScript, [|Objective-C]

Misc
Move a servo with your mind: [] Fire mind bullets: [] Mattel Mindflex, a toy made with similar NeuroSky technology: @http://www.amazon.com/Mattel-P2639-Mindflex-Game/dp/B001UEUHCG