Capture and utility of neurophysical signals through non-invasive techniques can provide valuable insight into properties of the nervous system and physical response to external stimuli. Electrooculography (EOG) is an electrophysiologic test that measures the existing resting electric potential between the cornea and the retina. This project aims to utilize real-time processing of EOG signals from the area above the eye and translate captured features into controls for an input device, such as a laptop. This project addresses the design and fabrication of a circuit board with ideal amplification and filter values to capture EOG, software to process and classify features within the signal, and a headset to house the system in a consumer wearable device. The effectiveness of the system is evaluated by the ability to translate eye movements into mouse cursor movements. Future steps would include development of an API for developers to build their own applications with the devices and improvement of sensor circuits and classification models.
The design constraints included: lightweight, holds all components, adjustable, and has access outside of the housing compartment for charging and electrode placement. Other factors like comfort and cost were considered during the design process. Various iterations were tested modifying the size of the piece to conform to the average head size as well as testing the fit of the top plate to the housing unit.
For the prototype, the base was 3D printed out of PLA and an elastic backing was used for adjusting to different sized heads. Alternative backings were considered, the most notable being an adjustable loop backing. Material selection was determined based on being lightweight, cheap, and easy to fabricate small features within the piece. The top of the housing was designed to snap onto the base in an interference fit. Holes were formed within the base to feed wires to chargers and electrode locations. Additionally, a layer of foam between the forehead and the headset was placed as a means to conform with different forehead shapes and to provide further comfort to the user.


Multiple iterations of the headset design
Our current circuit utilizes gold-plated cup electrodes to measure the underlying signal. An analog filtering and amplifying circuit was developed to reference the study of Heo[1] with a few modifications.
The electrodes feed in a very small voltage signal (50 - 3500 uV) into an instrumentation amplifier (AD620) with a gain of 23.5 V/V. The output is then fed into a simple 1st order C-R high-pass filter with a cutoff frequency of 0.4 Hz, which is used to remove baseline drift from our measured waveform. Baseline drift indicates non-periodic DC-level fluctuations that are mostly unrelated to eye movement. This drift can be caused by several factors such as inconsistent electrode contact, EMG artifacts, changes in skin potential, etc.
After this drift removal stage, we pass the signal into a Twin-T notch filter with a resonant frequency of 61.2 Hz. This is to attenuate any 60 Hz components that may result from power-line interference. This is followed by a 2nd order Sallen-Key low-pass filter with a cutoff frequency of 48.2 Hz in order to attenuate higher frequency noise that's outside of the relevant EOG frequency band.
Finally, the signal is passed through a non-inverting amplifier circuit with a gain of 668 V/V. We then use a voltage divider to shift the signal from -5V->5V to a 0V->5V domain so that it can be read by the ESP-32's ADC, which has 12 bit resolution and a 200 Hz sampling frequency. The entire analog front-end provides an overall gain of approximately 7800 V/V and has a passband from 0.4 - 48.2 Hz.


EOG circuit diagram and manufactured PCB
The circuit on the headset outputs two voltage channels, horizontal and vertical, which are then outputted to the ESP-32 arduino-based microcontroller, which acts as an ADC (analog to digital converter). Using Bluetooth Classic communication, raw signals are sent to the receiving device, typically the user’s computer.
Using gRPC, the read-in voltage channels are sent to the main “server” process, which classifies the voltages to determine whether or not a voltage signal represents an eye movement, and if so in which direction. gRPC keeps a queue of the last 2-seconds worth of data, and classification takes a moving average + uses thresholds to decide if there was a movement / which direction.
The final component is the native app, which utilizes the classified eye movements to take an action. This would be a separate process that queries the classifier process for the classified result, and uses it to move a mouse, change a key on a keyboard, or any other application.
After testing the circuit design on a breadboard, we fabricated a PCB with necessary channels and a small form factor that would fit within a consumer headset. When testing the PCB, we discovered that we were able to accurately capture upward (characterized by a vertical spike in voltage), downward (downward spike), rightward (vertical spike), and horizontal (downward spike) movements. Unlike a traditional EOG system, we designed a derivative filter that captured when the movement was made, the speed of the movement, and in which direction, but not duration of the movement, which was the original intention for the system. A derivative filter limits our system’s signal processing and classification capabilities due to lack of variation between signals. A thresholding algorithm can capture the difference between a resting state and an upward or downward spike in a derivative filter. We were able to develop a mouse system that would move up, down, left, and right in increments of a certain amount of pixels based on the detection of movement in a direction, but no prolonged movement based on duration of held gaze.
Future plans include a redesign of the circuit to capture duration of gaze held rather than just derivative of movement. A redesign would also require a refactoring of signal processing and classification algorithms. Capturing duration of gaze held would allow us to develop a more optimized keyboard that allows users to type quickly while using the headset. A keyboard with a circular design that generates next letters based on frequency in relation to a typed letter would greatly improve usability of the headset. With the existing software infrastructure, it would be possible to develop an open source developer environment that would allow developers to leverage the device to build their own applications for the headset.