Picture of DIY EEG (and ECG) Circuit
EEGs are a noninvasive way to look into your brain. While the brain is extremely complex, areas of it can lock into circular firing patterns, resulting in telltale brain waves that one can observe with the right equipment. Intensity of these waves change depending on your internal state. The waves we will be most easily able to distinguish are alpha and beta waves -- alpha waves occur at around 8-12 Hz and when measured from the frontal lobe provide an estimate of how relaxed a person is, while beta waves are around 12-30 Hz and correspond to how much a person is concentrating or how alert they are.

The concentration of each wave can also tell more specific things about your thought patterns depending on where you measure them from. For example, alpha concentrations on the left motor cortex increase when you think about moving your right hand. Regardless of where you're taking measurements, looking at the concentrations of waves in real time - a process called biofeedback - can give you much greater control over them.

This tutorial is an in-depth guide on how to make your own simple EEG circuit. Along with monitoring brain wave concentration, the final circuit can also be used as an ECG, as a way to see your heartbeat trace. The circuit will use 3 electrodes - 2 to measure a voltage difference across your scalp, and one as a reference to ground. Depending on how many parts you already have, the circuit could only set you back around $10.

The aim for this project is to be easily available and understood by people of every technology background. For those electronically savvy, I will include up front a finalized schematic so you can jump right into making it yourself. For those that want more guidance, I will include a detailed description / explanation of every section of the circuit, showing you what it does and why you need it. 

Then, I'll move onto the software (Processing based), which is a very important piece in actually interpreting the raw data you receive.

So - let's start!

Remove these adsRemove these ads by Signing Up
1-40 of 164Next »
SaidM20 hours ago


SaidM20 hours ago


SaidM20 hours ago


rbayareh mancilla made it!9 months ago

Hi! I made this proyect. I only used a High pass filter from 8Hz to 50Hz (alpha to beta waves) just for watch the changes between the waves. I used Labview and MyDAQ to observe the changes, programming a 60Hz notch filter, a graph and FFT to observe better the frequency of alpha and beta. Here are the results:

filtro pasa banda 8-13Hz.pngfiltro pasa banda 14-30Hz.pngCapture.PNGCapture2.PNGCapture3.PNGCapture4.PNGCapture5.PNGCapture7.PNG

Thank You. It helped me a lot.

Your welcome

please can you help me i want source of simulation, code
what is the price of DAQ?

I wanna get a 50Hz notch filter one!

OK, what's the problem?
BoardLevel made it!2 days ago

take into consideration that this circuit requires you purchase electrodes as inputs and some sort of electrode gel that will set you back more than $10. even if bough on line.

There are a lot of parts to buy if you don't have a bunch of ICs and caps laying around you will end up buying online and paying shipping costs too. some were hard to find particularly hard to find were the tantalum capacitors.

be prepared to get the run around on ambus electrodes too. they charged me four times for my order before even sending me the right 2 products even though i only needed one set of electrodes and only wanted one. i have yet to dispute the charges due to just not wanting to deal with them any more. seeing as how i might need the electrodes when and if i ever get the code running.this project cost me closer to 100 dollars than 10.

20150126_163329 (1).jpg
BoardLevel made it!2 days ago


I ran in to lots of coding errors before the program would even attempt to open. Also I did not receive much help other than my professors at my school and a lot of hours looking though someone elses code (which is still not complete yet. this project is still on the site ??????????????????why?!). if coding is not you strength, then don't bother here but the circuit is absolutely beautiful.

if you can't write your own code in arduino or processing 2 than don't bother with this project. This provided code did not work for me and i did not get a single helpful reply from the creators of this gem. i will be reading my eeg through an oscilloscope rather than my laptop. there goes the convenience of a screen shot.

20150126_163329 (1).jpg
BoardLevel2 days ago

the circuit works

the code for interpreting does not

Hi Cah6

Can you please confirm that the notch filter work? We made the circuit and simulated the circuit we are not getting a notch behavior, we are getting a high pass behavior. Can you please give us the correct notch circuit.

Thank you.


iasolano6 days ago

Hi, I'm interested in doing software for something like this, but I have no knowledge in the electronics involved. Is there some way I can buy the circuits ready to use?

when i made my circuit, it was a very small one with a few LEDs. when i rigged it up in the breadboard there was a lot of unwanted noise on it.. when i soldered the noise reduced considerably, almost became zero.. why not solder this onto a general purpose pcb??

when i made my circuit, it was a very small one with a few LEDs. when i rigged it up in the breadboard there was a lot of unwanted noise on it.. when i soldered the noise reduced considerably, almost became zero.. why not solder this onto a general purpose pcb??

when i made my circuit, it was a very small one with a few LEDs. when i rigged it up in the breadboard there was a lot of unwanted noise on it.. when i soldered the noise reduced considerably, almost became zero.. why not solder this onto a general purpose pcb??

when i made my circuit, it was a very small one with a few LEDs. when i rigged it up in the breadboard there was a lot of unwanted noise on it.. when i soldered the noise reduced considerably, almost became zero.. why not solder this onto a general purpose pcb??

also, where exactly is the program???

I downloaded processing and had a bit of trouble getting it to start the first few times it's almost like you need to open a blank sketch or a prewritten one to open the program and then start a new sketch. (sketches are what arduino and processing 2 call their code).

The problem that I have run into is that the project link with the downloadable codes that i found is missing some code around line 166 it appears to be missing code chunks here and possibly in an earlier portion of the code too.

If I am wrong please tell me, I would love to make the data interpretation code work after spending a considerable amount of time and money buying the parts (I had none to begin with) and hooking them up.

As of now i have a working EEG when hooked to an oscilloscope i can read the waves but the code is not full. and processing will not read it or record it because i do not have a full code.



i have a couple of questions...

a) does this work on arduino platform directly or can the processing linked with arduino work??

b)i am not able to download processing actually... so any other alternate?? in multisim or labview?

c) where exactly are the electrodes going to be placed??

d) how to convert this to ecg measuring device????


processing is not getting downloaded... is there any other possibility??? thanx!!

nik_sharky4 months ago

Hi, thanks a lot for Your awesome work. I'm newbie in electronics and have some questions.

1. R5 and R16 on common scheme is 220 Ohm but on detailed schemes its 270KOhm, I try calc RC filter freq and think that it should be 270K. Am I right?

2. Can I use ceramic capacitors instead of tantalum? Can't find it in DIP :( only SMD

3. I make circuit but for some reasons its not work correctly. Try to test it using 13Hz triangle wave from smartphone on input1 and input2 connected to GND. And see the signal until R9, so diff-amp and notch filter work normal, after R9 signal is too weak, what it can be, is it mut be 180KOhm?

If you want to present your SMD capacitors on a DIP package it's easy enough to make a small PCB that would sit on a DIP socket. Working with SMD components isn't as difficult as you might think, just have to be a little innovative with your soldering technique. I wouldn't worry about solder mask until you have a working prototype.

Thank for a reply :)
I was nebie when write previous comment, now I already use smd PCB adapters for smt components;

Hey I need some serious help with this project.
I'm a total newbie, and don't get half the tech here.

Plus the code seems to have been removed, and I've to work from the scratch on that too.
Could you help me please?

Easy going, You can connect only ad620 with gain resistor between 1 and 8 pins and bipolar power. Out of this circuit can be connected to mic input of computer and recorded with audacity free soft. You also need 1 electrode connected to ear (reference) and 2 connected to head.

Alright, I understand. :)

But how do I translate the Audacity input into a EEG graph?

And how do I differentiate between the Alpha, Beta and Delta waves?

Can I contact you on some other platform? I'm gonna need a lot more help man. Thanks for the reply though.

Especially with the Processing code. I intend to build the original Instructable. And yeah, don't have a strong base in electronics. :)

theadi152510 months ago

I downloaded the program (READ_EEG) and Processing show my "unexpected token: }" in 166 line and next (Cannot find anything named "in") 143 line, Is the program correct ?

i am running into the same error

I got the same error result. Did you ever get it resolved?

can someone please tell me what the code is supposed to be on line 166 of Read_EEG. it says "timeSignal(" and then it just ends like that. whats in that parentheses? THANK YOU

Would it make a difference if a Potentiometer was used versus a Trimmer Potentiometer? I do not understand the difference between the two.

lm358 is a dual op amp so can I just use three of them?
JanB52 months ago


It took me some time to build this complex amplifier so nicely described in this initial post.

My electronic is powerd with 2x9 V bateries.

One non-significant change : the readout is using ADC to digitize the wave forms, sampled at 200 Hz (MAX144), FFT is done on the computer.

On the qualitative level my setup looks like it is working - at least I see on the scope a stream of pulses in the range between few to ~30 Hz

with the amplitude of ~50 mV. When I blink (or touch the electrods) the pulses goes over the scale (exceed few V).

So far so good - my problem is I can't find the alpha waves ( 5-10 Hz) lasting for at least a second.

I have tried many electrodes locations, ask the human subject to close the eyes, concentrate, then open the eyes - there is no discernable change in the wave form patterns.

Attached is PDF with more details:

- location of electrodes,

- FFT amplitudes for a 40 seconds long measurement (2D plot)

- examples of raw wave forms with closed & opened eyes (two 1D plots)

Perhaps someon sees what I do not see? A mistake in electrod location, a pattern ?

I'd like to turn on a LED with my thoughts - but I do not see how to controll with my though the brain waves which I measure.

Any advice is welcome



atah JanB52 months ago

Hello Jan,

Just wondering how you got the code to work. I have built the amplifier but the code seems to have errors for me, I have fixed the line in issue and such but in the section which shift the input and makes the final collected data 0 has a error which i do not know how to fix. I am new to coding and have spent many weeks trying to learn but I cannot seem to solve this issue.

Any advice from anyone would be great as I really want to make this project.


JanB5 atah2 months ago

Hi Atah,

well, I have not even tried to run the Matlab based code. Instead, I connected the output of the last stage of the EEG amplifier to an ADC (MAX144), who's I read in using Rasppebry Pi. I wrote a C/C++-code for Rpi reading ADC via SPI interface and used Kiss-FFT code for the real time FFT.

This is rather different path than suggested in this tutorial. Not sure what would be the best path for you w/o knowing what is your background.


atah JanB52 months ago

sorry do you mean the processing based code. I just cannot seem to get anything to work and I would really like to it to be honest. I am not new to circuits but coding is really new to me. I just want to see some response from the circuit that I have built to be honest. I was thinking you may have debugged the code given to read the EEG through the soundcard. I am new but I have really tried my best to figure it out but there is a section which seems like its missing a lot of stuff.

It would seem that you have a much higher background in coding than me as I have really only started this past year. So the best way to describe it is that i am quite a newby to this.

Thanks for the response and I appreciate your help


JanB5 atah2 months ago

Hi Atah,

looks like the last common element in your and my step is the output of EEG amplifiers. What I see looks like at the bottom of my PDF - the wave forms vs. time. Perhaps you could connect your output to an oscilloscope and verify you see similar shapes? Alternatively, you could connect EEG output to an amplifier (e.g. external speakers w/ some amplifier). 10 Hz is on the verge of the audible spectrum, but you should be able to hear 30 Hz. You do not want to hear the 60 Hz buzz - then you know your analog part is not working properly. In my case it took me ... many many evenings to iron out all the filters, in particular to tune both 60Hz notch filters, correct wiring errors. This circuit described above have not worked 'out of the box' for me.

So a short answer: check with the scope that you see pulses from your (or your subject) brain and not the 60 Hz buzz. Take a snap shot and post it :). Then, worry about computer input, sound card, and the code.

hope it helps


atah2 months ago


I am really excited to have a chance at this project but the code to read the EEG through the soundcard (not ardruino input) seems to be missing component. If anyone who is a stronger coder could please look though it and debug it that would be great. I have tried for the last month but I feel as though I am mabye to new to coding to fix it.



1-40 of 164Next »