First Data with OpenBCI! [Cyton-ATmega 2014-August]

edited January 2017 in Hardware
Hi All,

I've been working with Joel and Conor a long time now.  To help with development, they sent me an OpenBCI V3 board over the weekend.  I've started playing with it and got my first data.  If you're interested, you can check out my pictures and data at:


Fun!

Chip


Comments

  • After a long delay, I'm finally getting back to using my OpenBCI V3 board to record actual EEG signals from my head.  I started easy -- simply recording eyes-closed alpha waves -- but if you're interested in seeing the data, you can check it out here:


    So far, so good.  Now the next step is to use the new system to do something more advanced...like maybe make some robots move!

    Chip
  • edited October 2014
    Hi Again,

    Over in the "Software" forum, I'm spending a little time analyzing this Alpha data in more detail.  Specifically, I'm defining different algorithms for getting the computer to detect Alpha waves automatically.  If you're interested, you can check it out at:


    Chip
  • edited October 2014
    Chip, any chance you could share these experiments source codes?

    Thanks, 
    Mike
  • Hi Mike,

    It's all available (along with my ever-evolving Python analysis code) on my GitHub:


    If you choose to be brave and try to run the Python code, the EEG data files have been ZIP'd, so you'll have to unzip it prior to running.  Also, for Python, I use the Anaconda distribution (as discussed here: http://eeghacker.blogspot.com/2014/10/moving-from-matlab-to-python.html)

    Chip
  • Thanks Chip. One more thing, I was wondering about a certain issue with the Alpha detection - why not performing a pre-processing step to remove artifacts before doing FFT? I believe that you can separate/remove the blinks from the data with few pre-processing algorithms, which will then allow you to detect alpha with greater accuracy. 
  • Hi Mike,

    Pre-processing is usually an excellent approach, if you've got a good method to remove signal artifacts...and that the removal of the artifacts doesn't create yet more artifacts.

    In the case of removing eye blinks, my understanding is that the best way to do it is to use information from the other EEG electrodes to identify and remove the eye blinks from the electrodes that you desire to analyze.  For my recordings, I only recorded one EEG channel, so I don't have any other data to use to remove the eye blinks.

    Other approaches might be to detect the eye blinks in the time domain and then to reject any Alpha detections during those time periods.  This is very similar to the approach that I'm currently using via my "guard" bands.

    Given that I only have one EEG channel, are there other rejection approaches that you can think of?

    Chip
  • wjcroftwjcroft Mount Shasta, CA
    Chip, Mike, hi.

    Check out these interesting and simple algorithms for artifact rejection.  In Appendix 1 of this document:

    http://qeegpro.eegprofessionals.nl/wp-content/uploads/2014/10/qEEG-pro-Manual.pdf

    They call it S.A.R.A (Standardized Artifact Rejection Algorithm), developed by Dr. Andre Keizer.  More info on this page,

    http://qeegpro.eegprofessionals.nl/artifacting-algorithm/

    ----

    There are some much more complex algorithms using ICA (Independent Component Analysis), but the SARA idea looks to be superior and easier.

    http://sccn.ucsd.edu/~jung/Site/EEG_artifact_removal.html   ICA approach

    William



  • To make this setup more useful for some clinical applications, you would ideally have a way to daisy chain two of the 8-lead modules to the mainboard. This would allow 21 EEG electrodes and 3 other (ECG, EMG, oxygen, for example) wires to send data simultaneously, which would be better than just 16 inputs for some uses. Any idea if/when this would be possible (2 daughterboards at once)?
Sign In or Register to comment.