Atharv Kashyap‘s Status Report for 09/26/2026

I was sick this week and missed Wednesday’s class, as well as some targets our team had set between ourselves for the design proposal. This caused us to be a little rushed at the end of the week before slides and this report were due. I did not communicate this well enough to my team, so one thing I need to improve is communicating delays earlier instead of waiting until a deadline has passed.

My planned work also changed after our discussion with Prof. Byron Yu. He brought up several valid concerns regarding what were controlled and confounding variables in the experimentations we planned to build our model around. We realized that public SSVEP datasets were collected under specific experimental conditions that do not necessarily match our electrodes, hardware, display, or environment. Instead of relying on those results to validate our system, I developed an initial plan for collecting our own data as written below:

  1. Keep electrode placement, reference, viewing distance, screen brightness, lighting, sampling rate, and trial duration consistent. Here are some preliminary numbers. For our initial testing, we will use O1, Oz, O2, and POz over the visual cortex with the same reference and bias placement (earlobes) for every session. The display will be fixed at 60 Hz, approximately 60 cm from the user, with constant brightness and room lighting. EEG will be sampled at 250 Samples/sec and processed over 2–3 second windows. Each command will initially be tested over 30 randomized trials, split into blocks of 10 with short breaks to reduce fatigue. These values will remain fixed during testing so changes in classification performance can be attributed primarily to the EEG response rather than changes in the experimental setup.
  2. Use our three stimuli at 8.57, 12, and 15 Hz with the display fixed at 60 Hz. These numbers have changed since before. The reason was that studies showed SSVEP responses are strongest at the stimulus frequency and can also appear at its harmonics, so we wanted frequencies that were sufficiently separated without one being a simple harmonic of another. We also wanted frequencies that our 60 Hz display could reproduce exactly using integer frame periods. Our current set uses 7, 5, and 4 frames per cycle, giving 8.57, 12, and 15 Hz. This keeps all three targets in a commonly used SSVEP frequency range while avoiding direct harmonic overlap between our three fundamental frequencies.
  3. First test each frequency individually and verify that it appears in the measured EEG.
  4. Then collect randomized YES/NO/HELP trials in blocks with rest periods.

Finally, I completed a working stimulus renderer for YES/NO/HELP. It generates the three frame-locked frequencies, checks the display refresh rate (so it was not hardcoded to my Macbook, for example), logs the frame timing, and gives us an interface for both the presentation and later data collection.

Below is a screenshot of the interface:

AI, specifically Claude Opus, was used in its creation, as well as setting up the initial repo with README, pyproject, various pytests, and general documentation.

Schedule

I am behind schedule, in this course and my others, due to being sick and because the experimental approach changed this week. I completed my other  course’s labs early so I can dedicate more time to the project on Tuesday and Thursday’s dedicated lab time next week to catch up.

Deliverables for Next Week

I plan to implement and test the initial CCA classifier, help write the design report, and define quantitative requirements for classification/rejection and PCB testing. I will also finish documenting and testing the stimulus renderer so it is ready for our eventual EEG experiments. As a team, we plan to finish the schematic/design review, continue PCB layout and component choices, and move toward the first PCB fabrication order.

Felipe’s Status Report for 9/26/26

Progress and Accomplishments

This week I was focused on three primary things, getting initial parts ordered so we can start some testing, looking into possible headset 3D files so we can have a consistent frame for our electrodes, and looking into the DSP and software interface skeleton of the project.

For parts we wanted to get the electrodes ordered and out of the way. We ended up going with the supplier for OpenBCI which is Florida Research Instruments.

For the headset, I found the 3D File OpenBCI uses for their headset and am working to get it sized correctly. I am also working on designing a spring loaded mechanism that will ensure electrodes maintain full possible contact with the scalp.

Lastly for the DSP and software interface, I was focused on the microcontroller aspect specifically the ADC->ESP32->Computer interface. I found some solid options on how to do it, and plan to work on it further next week.

Next Week

The main goal of next week will be to finalize plans for the ADC->ESP32->Computer pipeline and start drafting an MVP we can use for testing.

Felipe’s Status Report for 9/19/2026

Tasks/Accomplishments

This week was focused on researching the workings of BCI and looking for what could be potentially suitable parts  for the project.  I mainly focused on how we could get reliable electrodes that we could use for the project while not blowing up our budget. I began by looking at parts and costs from OpenBCI. However many of the parts or kits present were too expensive. Through some further research I was able to find the company that sources some of the parts for Open BCI and they provided more affordable options.

A good part, of my focus was on understanding the different types of electrodes available. The main two being cup electrodes and dry brush electrodes. Cup electrodes are the classic type which require a conductive gel to work properly and is often used in medical applications.  Meanwhile dry brush electrodes are completely dry and have much easier setup. Technically the gold cups have a better chance for better signals but unless the dry brush completely fails we won’t use it.

The other major task this week was creating and sourcing the initial bill of materials for the analog acquisition hardware. I built a BOM with reference designator, value, manufacturer part number, unit cost, per-board quantity, total quantity, total cost, and purchasing link. I individually sourced the passive components, protection diodes, amplifiers, and trimmers rather than estimating a generic PCB cost. The current BOM contains parts such as the INA128UA instrumentation amplifier, OPA2227/OPA4227 op-amps, MMSD4448 protection diodes, precision resistors, filter capacitors, and adjustment potentiometers. For the quantities currently entered, the BOM totals approximately $228.35. This also gave us a much more concrete view of where the prototype budget is going and which components dominate cost.

More work needs to be done to see if replacements and cheaper options are available

Plans for Next Week

For next week we will be focused on drafting the first iteration of our PCBs and ordering parts, as well as trying again to contact professors with experience in the field.

On Schedule?

We are on schedule.