From Noisebridge
(Difference between revisions)
Jump to: navigation, search
(Projects being discussed)
(Projects being discussed)
Line 10: Line 10:
=Projects being discussed=
=Projects being discussed=
==Custom EEG software: signal processing and pattern analysis==
===Custom EEG software: signal processing and pattern analysis===
Write code in Python using convenient libraries...
Write code in Python using convenient libraries...
Line 18: Line 18:
*[ 'how to write a block']
*[ 'how to write a block']
==ML libraries that might be useful==
====ML libraries that might be useful====
*[ 'PyMVPA Multivariate Pattern Analysis in Python']
*[ 'PyMVPA Multivariate Pattern Analysis in Python']

Revision as of 19:11, 12 April 2009


What is EEG?

EEG is a method of reading brain activity using electrodes on the scalp. We're currently trying to get a working setup that will enable us to measure alphaand beta waves, as well as providing a good enough resolution to collect some ERP data.

What is OpenEEG?

OpenEEG is an open-source EEG hardware design. The OpenEEG homepage has more information. Olimex has the boards available for purchase; it seems like a good reference design to use.

Projects being discussed

Custom EEG software: signal processing and pattern analysis

Write code in Python using convenient libraries...

I think it might be possible to write a gnuradio (software) signal processing block for EEG purposes

ML libraries that might be useful

  • Brain Computer Interface for music
  • Fire art using brainwave changes
  • Kinetic art using brain data
    • Might use facial/muscular data?
  • Passthought Needs researching...
    • use ERP to select off of screen?
    • individual reaction to image?
    • How to integrate different response for under duress?

Meetup Notes

Meetup the Second

  • Boards - We talked about boards and amplifiers.
    • The OpenEEG system has one processor board and can support up to three amplifier boards (we have one now). Each amplifier board supports two differential input channels. Jonathan doesn't think this is the critical path yet, but it might be later.
    • Apparently Mitch also has a set of boards (Tracy will check?), and Jonathan may have a lead on another (pun sadly intentional).
    • Jonathan volunteered to look at the serial interface from the OpenEEG processor board.
  • The Cap - Rachel is going to buy the CAP100C EEG Cap Kit. Please give her your money. (Rachel, will you accept PayPal?)
    • What connectors does this have?
  • Facial & reference electrodes - We need to figure out how reference electrodes work with the headset.
    • Our amp boards have differential input channels. We need to understand how these connect to single-ended and reference electrodes.
    • Discussed facial data in Emotiv headset and adding some facial & reference electrodes to the our headset setup.
    • Research implementations of the cap & sort out amplification and reference electrode setup.
    • Kelly vaguely remembers something about localization using dipoles and wonders if this would be useful. Needs research.
  • Enclosure - We need to set up a case of some sort and mount the boards in it with connectors. Tracy will take a lead on this. Jonathan will advise: very straightforward, just drill a few holes & solder a few leads once connectors are specified.
    • We need a design decision on connectors. One-channel BNC or differential-channel mini-XLRs?
    • Tracy brought a very pretty metal box. In Jonathan's opinion it's a little tight for several boards plus panel-mount connectors. Jonathan suggests a 1-U rack mount enclosed chassis if we can find an affordable one.
    • Sanity check our grounding and filtering setup with EKG data since we don't have a clean electrode setup for EEG yet. Will be first step with enclosure.

First meetup: 2009-03-26 20h00 at 83c


  • Who's here, and what are they interested in?
  • What do we have available, and what do we need?
  • How do we get what we need?
  • Who's going to make that happen for the next meeting?

First steps

It sounds like our steps are the following:

  • Assemble a set of OpenEEG boards
  • Get together a set of electrodes
  • Get the data into a computer

Once we've done that, let's look at heartbeats. They're big and easy to see. This is also a good first step towards bootstrapping the data analysis part.

After we've gotten good signal, we can move on to strapping the thing to people's heads and looking for brainwaves. This is where things get interesting. We can export the data and throw it over to the wacky Machine Learning meetup, we can tie it into crazy Cyborg group stuff, make, and we can use it as an input to other systems (be they security, music, or teledildonics).

Here's Jonathan's sketch of a plan, which sounds reasonable to me:

  1. Get a pool of OpenEEG cards. I would suggest starting with 8. Maybe several people want to "adopt" one by buying a kit and we can have a solder party. I will adopt one myself.
  2. Put them all in a metal box with a solid ground.
  3. Find someone with a 8-channel USB-audio interface for signal acquisition. These are pretty common with the musician crowd. (Sample rate is overkill, but that's OK). Anybody have one we could borrow? (Update: These may not have sufficient low-frequency response so may start with OpenEEG ADC).
  4. Find some good electrodes. Sanity check each channel by detecting heartbeats. (If we can't get those loud and clear, no point looking at the brain's much weaker signals.)
  5. Now are we ready to do EEGs. I would suggest -- nay, insist -- on a double-blind protocol, otherwise we will see results that aren't there. It's simply human nature. So get subject(s), over several trials, to say, attempt achieving an alpha state, and for a control, I don't know, read BoingBoing or something. Get a third party to randomize the order and keep track of data labels. (Might experiment with event response potentials too as long as we're all set up.)
  6. When you have some data, call in the geeks. I am personally expert at Fourier analysis, and have some experience with LDA (linear discriminant analysis) using SVD (singular value decomposition). I'd be happy to share what I know (including open-source tools like Octave and SciPy) and chew on the data for an evening.
  7. Bootstrap from there, as this may not work at all.
Personal tools