Research Visit of Ryan Thackston

High Level BCI Framework Pipeline On November 22nd, I began taking initial measurements of human subjects to measure for a SSVEP. Two students studying under Prof. Schmidt were kind enough to give their time to assist in setting up the experiment and becoming subjects.

The light blinking is controlled by an Arduino micro-controller outside the shielded chamber. We have two different protocols for inducing the SSVEP:

1) Electrically shielded cables are connected to the Arduino and placed in an opening in the electromagnetic shielded chamber. The other end of the cable is connected to an LED inside the shielded chamber. This led to a small distortion in the signal and it was tested with an LED that has a short wire and an LED that has a long wire to find the amount of distortion in the OPM signal.

2) The LED is connected to the Arduino and placed outside. The LED is blinking into a fiber optic cable which is placed into the shielded chamber and should result in no electromagnetic distortion of the OPMs.

The subjects lay on their side, supporting their head on a cushion pillow and were instructed to relax their head and neck muscles as much as possible.The back of their head where the visual cortex of the brain is commonly measured was facing the back wall of the shielded chamber. High Level BCI Framework PipelineThe first OPM was placed 4 cm above the middle of the inion of the subjects skull. The other OPMs were were placed on the left, right, and top slots next to the initial sensor. The sensors were equidistantly about 1 cm from the subjects scalp. The LED and optical fiber cable were placed next to each other about 60cm from the subject.

For the first measurement, the subject was in the shielded chamber but not close enough to be measured by the OPMs. For the next measurement, the subject had the OPMs placed as per protocol and were instructed to gaze directly into the light source. These were naive subjects who had never done any work involving the measurement of a SSVEP.

A blinking frequency of 7Hz and 10Hz was also tested in each protocol. Four measurements were performed using an Optical Fiber Cable  and five performed using LEDs. A white LED and green LED was used. A trigger signal was also produced by the Arduino and was saved as the OPM channel, giving about 5.25 V signal when the the LED is on and 0V when the LED is off. The green LED had more unshielded wire in its connection and took in a larger current which likely led it to produce harmonics in the measurements.

The data from these initial results is being processed and it is not entirely clear yet if we have measured physiological processes in the brain.

This week I began working on the hardware side of setting up the BCI framework with Eric Elzenheimer. LEDs and Optical Fiber cables were ordered and arrived later that week. The main problem that needs to be solved in the shielded chamber is that any kind of electromagnetic fields can distort the magnetic field measurements on the brain and may even oversaturate the sensor. There are two solutions we have come up with in the shielded magnetic chamber:

1. Using an Arduino outside the shielded chamber to control the blinking frequencies, run a shielded cable into the shielded chamber and power and LED thought there. This is very easy to implement but still may give some kind of distortion to the magnetic field measurements.

2. Keep the Arduino and the LED outside the shielded chamber and have an optical fiber cable running through the shielded chamber. Have light from the blinking LED travel through the optical fiber cable into the shielded chamber and to the subject. This may be harder to implement because the light source to trigger the SSVEP may not be as bright but this will give no distortion in the shielded chamber.

High Level BCI Framework Pipeline This week I worked more on perfecting my processing pipeline for my BCI framework. I also had my first Science Slam this week and gave it in German. In the Science Slam talks, you give a 6 minute presentation on your progress in your thesis. 4 minutes are also given to questions by the audience.

Currently I'm working on programming the modules for the Brain-Computer Interface (BCI) framework in the Kiel Real-Time Applications Toolkit (KiRAT).

Magnetic sensors will be placed on the back of the head around the visual cortex and measure the magnetic fields of neurons firing. The subject will attentively look at an LED blinking 5 times a second. When the subject is attentively looking at the blinking LED, neurons in the visual cortex will also be firing off 5 times a second (or a multiple of 5 such as 10, 15, 20...etc). This is called a steady-state visually evoked potential (SSVEP). This firing in the visual cortex should be picked up by the magnetic sensors and through some processing, the SSVEP will be verified by the Brain-Computer Interface. When an it is verified that the visual cortex is also blinking 5 times a second (an SSVEP), a decision can be made. With several blinking LEDs in front of the subject ( 5 Hz, 7 Hz, 8.133 Hz, 9.4, 11 Hz), several actions can be made but the one LED that the subject is attentively focusing on will produce an SSVEP at the same rate the LED. If all LEDs are blinking but the subject isn't focusing on any of them, no action will be taken.

There will be 5 main modules for the BCI framework: - Preprocessing (to clean magnetic field signals and make easier for processing) - SSVEP Detector (detects if there is or isn't an SSVEP happening) - LED Control - controls the rate of blinking in each LED - Prompter - gives an audio message for the subject (Magnetic signals are not measured when on) - Main Control Unit (Saves data, performs actions based on the SSVEP detector, controls the LED Control & Prompter module, tells the SSVEP what LED frequency to look for)

The 5 modules have been programmed into KiRAT but are empty, right now I'm programming in the submodules. So for the preprocessing module, I'm programming in a highpass filter to remove drift noise from very low frequencies (100Hz). The SSVEP Detector and Main Control Unit modules will have other submodules with their own functionalities.

Previously last week, I had programmed in 5 modules: - Preprocessing - Steady-state visually evoked potential (SSVEP) detector - Main Control Unit (MCU) - Prompter - LED Control

These modules all have their own function and purpose but at the time did not do anything. This week I programmed in the high pass and low pass filters in the preprocessing module. The high pass filter will take in EEG and/or MEG data and remove low-frequency "drift noise" (<1Hz) while the low pass filter will remove unnecessary high-frequency signals (>50Hz) that cause a high computational load, are not usually used for neural data analysis, and includes the power line noise.

Previously I mentioned how SSVEPs are created when the subject has his full attention on a blinking visual stimulus (i.e. an LED blinking at 5 Hz). The SSVEPs are created in the back of the skull in the visual cortex where EEG and MEG signals measure the same high frequency power as the blinking LED (i.e. 5 Hz) and any multiples of that blinking LED (10 hz, 15 Hz, 20 Hz, ...etc.). The higher the frequency being measured the more likely it will be that there are multiple SSVEPs when multiple LEDs are being observed by the subject and may cause false positives in detecting one of several LEDs. To fix this issue, blinking LED frequencies will not be multiples of each other (if one LED is 5 Hz, another won't be 10 Hz) and only the first multiple of that frequency will be taken into account for detection (so 7 Hz and 14 Hz will be tested for in the Power Spectral Density).

My task for this week has been to create a rough sketch of a prototype BCI Framework program using MATLAB. The first prototype will have Optically Pumped Magnetometers (OPM) placed on the back of the subject's skull measuring just above the visual cortex. A single blinking LED will be placed about 60 cm away from the subject who will be instructed to stare at the LED in order to produce an SSVEP in the visual cortex which can be measured by the OPM sensors. The MATLAB rough sketch will have 3 states - Standby, Processing, and Question. The Standby state will start the framework, clean variables and store data. The Processing state will process the data given, and the Question state will be for when a question is being asked to the subject.

Off campus, I was invited by some friends in my dorm to a session of Das Schwarze Auge (DSA). DSA is a table top game like Dungeons & Dragons and I had a great time meeting people and making new friends.

Monday I began going to the Medical Signal Processing Lab. Bus 60S is a direct route to the Faculty of Engenieerign ("Technische Fakultät" in German) of Kiel University (CAU). The bus ride takes about 50 - 60 Min so I practiced my German on Duolingo.

My thesis project will be to make a Brain-Computer Interface (BCI) framework that uses Optically Pumped Magnetometers (OPMs) to detect Steady-State Visually Evoked Potentials (SSVEP) in the visual cortex caused by the user looking at a blinking LED. This week I did a literature review on SSVEP BCIs made in the past.


Ryan Thackston 

University of Houston
Houston, Texas, USA

Visiting period: October 2019 - February 2020

Topic: Brain computer interfaces using magnetic sensors

Supervisors: Christine Selhuber-Unkel, Gerhard Schmidt

Further Visiting Students



Prof. Dr. Eckhard Quandt

Kiel University
Institute for Materials Science


Internal server



Christian-Albrechts-Universität zu Kiel (CAU)

Christ.-Albrechts-Platz 4
D-24118 Kiel


University Hospital Schleswig-Holstein, Campus Kiel (UKSH)

Arnold-Heller-Straße 3
D-24105 Kiel


Fraunhofer Institute for Silicon Technology, Itzehoe (ISIT)

Fraunhoferstrasse 1
D-25524 Itzehoe  


IPN - Leibniz-Institut für die Pädagogik der Naturwissenschaften und Mathematik an der Universität Kiel

Olshausenstraße 62 
D-24118 Kiel

Cookies make it easier for us to provide you with our services. With the usage of our services you permit us to use cookies.