I’ve seen some cool tricks you can do by measuring the electrical signals of the body. One of these was using electrooculography (the measurement of the electrical signals of the eye) to detect movement of the eyes.
I looked about online and found the Spiker Shield by Backyard Brains, which is a board designed to interface with Arduino and measure EEG/EOG/ECG signals but it didn’t quite match my requirements – I wanted multiple channels and I wanted to work with an ARM processor. Luckily their design is open source so I took their basic analog design and built my own digital interface.
It is basically a high quality differential amplifier followed by some single ended amplifiers and filtering. The analogue signal is then fed into an STM32 ADC which will digitize the signal and feed it over USB to my computer.
There are three electrical connections to the body – the two differential inputs and a ground reference. These are connected via a normal headphone jack.
While each PCB only handles one differential channel, I designed it to be long and thin so multiple channels can be stacked.
So far I have soldered the analogue section and captured waveforms using the oscilloscope connected to test point TP103.
In these waveforms, a positive voltage indicates the eyes moving one way and a negative voltage indicates the other way (depending on how the electrodes are attached). So the two waveforms capture me moving my eyes quickly to one side and back to the center.
Because the signal is AC coupled between amplifier stages, we are unable to capture absolute positions and we only see a signal when the eyes are moving. This is something I may experiment with.
There is clearly a lot of 60Hz noise so I will probably need to add a digital filter to remove this.
Yes, there is one mistake on the PCB. I used the wrong footprint for the linear regulator AP2210. I resolved this by using a different linear regulator mounted upside-down – the L78L33 from the single capacitive pixel mini project.
Next step is solder up the STM32 and make it stream ADC samples over USB.