BCI exploration thread with NBorgaGonzalez
Please note: This is a master/umbrella question that @wjcroft asked me to create. I am a new member to this community and have (in the last week or so) posted a large number of disparate questions. @wjcroft, who I assume is a community moderator of OpenBCI proper, asked me to just lump newbie questions into a thread moving forward. Hence, the questions under this thread will be all over the place, but are at least scoped to my specific application at hand.
I am vetting out using OpenBCI to feed EEG biodata into an application that would run on my laptop. This application would be a JVM application, and so the first thing I would need to do is build my own Java library that could read serial data from the RF/USB dongle. I'm a professional software engineer so I'm not worried too much about this part, although I do have a few questions regarding data protocols, etc. And although I will certain use the Processing code in the OpenBCI GUI as inspiration for my Java library, I still need to understand certain basics before I can put any of that good stuff to use! More importantly, before I do any of this, I must: (1) verify that OpenBCI is actually what I'm looking for (with a price tag of nearly $1000 for the whole R&D kit, this is very important to me - and my wife!). And (2) I must first understand the nature of EEG data itself, why the industry converts brain waveforms into component rhythm frequencies (alpha waves, beta waves, etc.), and what information we can extract from these rhythm frequencies. As such, all these questions will span OpenBCI, EEG readers and data at large, FFT and everything in between!
For each question I ask under this thread I will provide proof of upfront research (that is, search results from reading the documentation/tutorials as well as search results from questions previously asked on this forum).
Comments
Chip Audette's blog gives a great background on EEG and BCI topics.
http://eeghacker.blogspot.com/
The EEG is decomposed into component bands because those bands correlate with various functions and processing happening within the brain. EEG signal processing is a huge field, and FFT is a primary tool, but not the only one.
I suggest you look over this neurofeedback tutorial using BrainBay. It will give you some ideas about how the filters are used and measured. The EEG bands can be derived either from an FFT or from a digital filter. Filters are usually a bit faster and hence preferred in some applications like neurofeedback. Anything you can see in BrainBay can also be done in neuromore, OpenViBE, etc. The OpenBCI_GUI is a good introduction for seeing your alpha with eyes closed. And can be used for recording, playback, etc.
https://sites.google.com/site/biofeedbackpages/brainbay-openbci
I'm wondering if you might be formulating some goals that you would like to do with the OpenBCI. Chip's blog is a great resource for BCI DIY experiments. I'm primarily interested in neurofeedback. Other threads on the forum here talk about SSVEP Steady State Evoked Potentials or P300 event related potentials used in BCI spellers and Motor Imagery applications.
While you mention the R&D kit, a whole lot can be accomplished with just a few channels, 1 to 4. You get 8 with the current mainboard. 4 with Ganglion. The 16 channels would not be a requirement for many EEGHacker type applications.
More good blogs and reading,
http://openbci.com/forum/index.php?p=/discussion/185/list-of-blogs-about-openbci-neuroscience-and-related-topics
William
However the OpenBCI is flexible enough in that you could optionally have all 8 channels operating in a "bipolar" or "differential" fashion, with separate plus and minus leads. This is rarely used however.
Certain types of EEG work, called QEEG or source localization, do require a full set of electrodes. These systems utilize more expensive amplifiers that have 19 or more channels. Even 32, 64, 128, etc.
Motor imagery and SMR / Mu are obviously done on the motor strip. SSVEP generally in the occipital area. Frontal asymmetry at F3 F4. QEEG mapping based neurofeedback sees which areas are excess or deficient compared to a normative database of 10-20 sites. Then does reward / inhibit protocols to bring those sites back into normative range.
Here's a simplified site map used by some neurofeedback protocols,
https://sites.google.com/site/biofeedbackpages/function-map
Also see the Brodmann atlas links on that same page.
This other recent post has some BCI montages,
http://openbci.com/forum/index.php?p=/discussion/674/openvibe-acquisition-server-motor-imagery-montage-configuration
It's not a constant, but includes the serial number of the dongle.
http://openbci.com/forum/index.php?p=/search&Search=d2xx
2. yes
3. no compression is used currently. That's why sample rate drops from 250 sps to 125 sps when using the daisy. You're welcome to try some firmware mods.
Look at the example given for x 3 0 2 0 0 0 0 X . It turns 3 on, with certain parameters, such as gain 2 etc.
https://github.com/ChrisVeigl/BrainBay/blob/master/src/ob_eeg.cpp
The dongle is a combination of TWO boards from RF Digital into a single board,
http://openbci.com/forum/index.php?p=/discussion/148/specs-of-the-esd-components-on-the-usb-dongle-board
William