# How is this EEG circuit amplifying and filtering input correctly?

Several weeks ago I posted several|questions about a DIY EEG reader that I found on Instructables. To my surprise, it appears to actually be a fairly well-designed circuit.

The main stages of this circuit are as follows:

• Instrumentation Amplifier
• 60 Hz Notch Filter #1
• 7 Hz High Pass Filter
• 31 Hz Low Pass Filter
• 1 Hz High Pass Filter
• 60 Hz Notch Filter #2

• Use an ADC early on
• Implement an Op Amp

I was planning on building this EEG reader, including the above suggestions from this community, until I stumbled across a most-awesome Kickstarter for an open source EEG reader called OpenBCI. And so I am now strongly considering doing all of my R&D/proof-of-concepting with OpenBCI instead of my own DIY EEG. However, I want to make sure OpenBCI is of the same quality (if not better) as the DIY EEG mentioned above (including the recommended tweaks from this community).

Here is the open source circuit design for the OpenBCI board:

On one hand, I believe I see:

• Instrumentation Amplifier
• High Pass Filters

But on the other hand, I am not seeing:

• Notch Filters
• Op Amps

And so, all this to ask: Am I missing something here, or is the OpenBCI design not of the same level of quality of the DIY EEG that I found (plus the tweaks recommended by this community). Or, is the OpenBCI design taking a different approach that will still yield the same "quality" (accurate bioelectrical wave measurements, granularity, noise reduction, etc.) in the end?

The filtering is better to do in the digital domain, where you can apply any filter and you can easily have e.g. a 10th order of filter with a very steep cutoff curve. In contrast, the DIY solution uses a lots of analog circuit to get a simple 2nd order 60Hz filter - which makes a noticable attenutation over 20Hz.

The openBCI design is even more better, since it uses a floating bias on the patient, see the datasheet, and offers a 24 bit resolution.

Note that on the openBCI you may not see high pass filters (those are part of the ESD protection network), nor an instrumentation amplifier. Since the whole thing runs on batteries, it makes no sense to use an instrumentation amplifier. Instead of isolating the test leads with instrumentation amplifier, the openBCI solution isolates the whole device from the computer by using Bluetooth at once.

Talking about ESD, the DIY solution has no attempt to fix that - so it is basically really really sensitive and you can kill it with nylon clothing in no time :(

Oh, and finally, the openBCI solution is a true multi-channel solution, instead of the component hell of the DIY.

• antialiasing filtering might be called for, or might be inherent in the analog front end – Scott Seidman Mar 30 '16 at 17:27
• No, aliasing happens when you SAMPLE. If you alias on sampling, you CANNOT undo it. – Scott Seidman Mar 30 '16 at 18:56
• Scott, you are right! This is definitely good to have, even at a reasonable high sampling rate. I was naively guessing that no signal will go over 250Hz, therefore an 500Hz sample rate is good. However we have to see that environmental noise may cause unwanted input, hence the antialising filter is not avoidable, as you have pointed out. – Gee Bee Mar 30 '16 at 20:37
• Well, the unit is a sigma-delta ADC, I think, which inherently oversamples. The cutoff probably doesn't need to be as low as normal – Scott Seidman Mar 30 '16 at 22:26

I don't see an instrumentation amplifier on there. The TPD4E1B06 ICs are for ESD protection. The R-C filters look more like roofing filters than proper low-pass filters. I don't see high-pass filters.

The OpenBCI design is based around the ADS1299, which is a multi-channel 24-bit ADC subsystem IC designed for EEGs. Here's the block diagram from the web page:

The chip offers differential inputs with a programmable-gain amplifier, which eliminates the need for a separate instrumentation amplifier. High-pass filtering (for anti-aliasing, in this case) is handled by the delta-sigma modulator in the ADC. As for notch filters, in the datasheet under "EEG-Specific Functions" there's a section called Bias Drive, which says that:

The bias circuitry is used as a means to counter the common-mode interference in a EEG system as a result of power lines and other sources, including fluorescent lights. The bias circuit senses the common-mode of a selected set of electrodes and creates a negative feedback loop by driving the body with an inverted common mode signal. The negative feedback loop restricts the common-mode movement to a narrow range, depending on the loop gain. Stabilizing the entire loop is specific to the individual user system based on the various poles in the loop. The ADS1299 integrates the muxes to select the channel and an operational amplifier. All amplifier terminals are available at the pins, allowing the user to choose the components for the feedback loop. The circuit in Figure 52 illustrates the overall functional connectivity for the bias circuit.

Between the good noise and distortion specs and the high precision of the ADC itself, I think this IC would almost certainly do better than a discrete circuit. You might be able to do better with really high-quality components and careful attention to noise and distortion, but I don't think that DIY project is such a design. (It's done on a breadboard.) On the other hand, the most expensive component in the DIY project is an $8 in-amp vs.$56 for the ADS1299 ($5 and$40 in large quantities), and the latter requires a PCB. One OpenBCI board kit appears to cost \$500! In either case, a good PCB layout is vital for achieving the best-possible performance.

If you're willing to spend a lot more money for the OpenBCI, then go for it. Or try the cheap DIY project first and see if it's good enough for your needs.

[Full disclosure: I am a TI employee, but I don't work in the group that makes the ADS1299. This answer is not an official statement from TI.]