[FieldTrip] Getting started with realtime EEG data

Robert Oostenveld r.oostenveld at donders.ru.nl
Sun Mar 3 10:58:36 CET 2013


Hi Eric,

I think that NeuroSky renamed and discontinued some of their products since we made the initial implementation of the ThinkCap.  I am still able to find documentation here http://developer.neurosky.com/docs/lib/exe/fetch.php?media=thinkcap:thinkcap_headset_user_manual.pdf and http://developer.neurosky.com/docs/doku.php?id=thinkcap. I cannot tell whether the complete sets now sold by NeuroSky still use the same software interface, but NeuroSky is rather open with their development tools.

Alternatives you may consider are the Emotiv Epoc or the DIY OpenEEG. The Epoc has more channels and a head mount for the electrodes. For the Epoc you have to look into teh different SDK options, the cheapest version only gives access to processed data, not to the raw data. For both the Epoc and openeeg a implementation of a stand-allone executable is available in http://fieldtrip.fcdonders.nl/development/realtime/implementation. LIke for the ThinkCap, this copies the data to a "fieldtrip buffer", where another (c/c++/java/python/matlab) application can easily read it from and do the signal processing, not having to worry about the buffering and data representation any more.

I know it falls outside your budget, but have a look at http://engineuring.wordpress.com/2009/06/15/writing-your-own-soft-for-a-really-cheap-eeg-hardware-for-brain-computer-interfacing. These KT88-1016 systems are available from ebay. 

Let me add a bit from the developers perspective and software design. The rationale for the fieldtrip buffer is that it allows us to develop analysis pipelines using EEG data files on disk (using ft_read_data). Once the offline analysis pipeline performs as desired, we just switch from reading to disk to reading from the buffer (also ft_read_data). We happen to do this using MATLAB for the rapid application development, but the same strategy (develop for file, run in real-time) can be used with another programming environment. 

I think that for signal processing you'll better off if you develop the code using some good quality data from a file on disk. You can always enact a real-time data stream by replaying data from that EEG file, or using the sine2ft GUIs (see realtime/bin). Otherwise you'll be doing all development, constantly having to wear the headset. That is fine for artefact detection (you can blink while you code), but not if the tasks get more complicated, e.g. relaxing to increase your occipital alpha/10Hz won't work well if you also have in realtime have to monitor whether your applications picks up the alpha.

Some time ago we (i.e. Boris Reuderink and me) looked into the possibilities of a web-standards implementation.  Web Sockets would be needed in Javascript  if we want to have the browser connect to a "fieldtrip buffer" TCP server. The Web Sockets still seemed a bit risky w.r.t. it working on all platforms. A server-side implementation offers more choice, python/java/php reading the data from a FT buffer or from the device, and then pass it on in html format to the connected web ) but would not scale as easily with multiple client connections if data processing needs to be done on the server. We then considered the best option to  be to implement a RESTless server implementation. The server would one the one hand contains the FT buffer (where it receives the data over low-level TCP) and on the other hand have a web server with the RESTless interface. I.e. the requests that are represented here http://fieldtrip.fcdonders.nl/development/realtime/buffer_protocol would each translate to a http call like "http://ftbuffer.donders.nl/get/hdr" and "http://ftbuffer.donders.nl/get/dat?begsample=xx&endsample=xx". You can ask Boris (CC) offline whether he has given it further thought.

best regards,
Robert



On 2 Mar 2013, at 3:12, Eric Mill wrote:

> Hi all,
> 
> My apologies if this is off-topic here, since you all seem like very busy experts! 
> 
> I'm trying to figure out what I need to get started with capturing real-time EEG data using consumer-priced headsets (<$200). I don't actually have any interest in using MATLAB, though - I just want to capture the raw data, in real time.
> 
> I see that FieldTrip has a realtime acquisition module for NeuroSky's "ThinkCap", though I can't find a current product by NeuroSky called that. Is there something else of theirs I could buy that would work with FieldTrip?
> 
> Or, should I be looking elsewhere entirely? What should someone who wants real-time EEG data do? 
> 
> My plan is to stream this data and visualize it on the web in real time. My background is in web development, not cognitive science, but I'm willing to learn what I have to make something interesting. I'd also love to have the project result in libraries useful for other people in the field.
> 
> Thanks for any advice you can give on what EEG to buy, and/or where to learn the core concepts I'll need to use the data.
> 
> -- Eric
> _______________________________________________
> fieldtrip mailing list
> fieldtrip at donders.ru.nl
> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip





More information about the fieldtrip mailing list