My little sister is a CS student in college and has suddenly taken an interest in "Neuroprosthetics" and "Controlling robot hand with EMG" and wants to learn skills by building arduino projects. She wonders how to get into research in this field.

Her coursework so far has been what seemed to me a typical undergrad curriculum (data structure & algo, database, web-dev, C/Java, etc), without a particular specialization yet.

I recommended the following minimal "catch-up" self-study curriculum over the summer to get her ready for hands-on BCI/Neuroprosthetics research. Posting because I can't find any satisfactory one on the internet. Traditional BME undergrad education might be the closest one, but we can skip a lot of the background in:

  • circuits: High school AP Physics is enough, most EMG research scientists at Meta Reality Labs don't use much more than that anyways
  • bio-electricity: The sensor abstraction (measure small voltage generated by summing of action potential) is enough to start understanding the paper. No need to understand
  • neurobiology: Needed for brain-computer interface. But for EMG and peripheral interface, unnecessary
  • computer science/embedded programming: no need for a CS major

The only 3 background areas that need to catch up are then: light signal processing, machine learning, light computation neuroscience.

Self-study coursework

Math

  • Linear algebra
  • Calculus
  • Statistics and probabilities (e.g. expectation, variance, etc)

I assume this for all STEM undergrads.

(Digital) Signal Processing

If you work with any type of sensors, you should understand how the signals are transformed.

Assuming you don't want to do circuit designs, these are the basics for interpreting and cleaning signals.

This is a very deep field, I select the bare minimum for a foundation so you can build from here when reading papers/taking courses.

Learning goal:

  • Understand how to do "signal conditioning" on analog signals measured from your EMG sensors (e.g. low pass filtering, high pass filtering, etc)
  • Understand basic filters, e.g. savitzky-golay
  • Understand how to derive Kalman-Filter (basis of state of art before deep learning methods), see resource list
  • If you don't understand, seek resources/ask AI to help you

Neuromatch courses

They contain condensed materials catered toward students in neuroscience-adjacent fields.

  1. Machine learning
  • This is also a deep field and majority of the recent advances in the field not related to sensors come from this.
  • To get better at it, take Stanford CS231n. It's computer vision course but teaches very good fundamentals of deep learning
  1. Computational neuroscience
  • You only need up to dynamical systems (you'll know more than most EMG people). The goal is to familiarize youself with terms that come up in common jargons to cut through the noise.
  • If you get more interested in the brain (vs. the peripheral nervous system), then the UW computation neuroscience course will be more useful.

Self-study learning goals

Be able to read through and understand the SOTA EMG paper from Meta

Some tips on reading:

  • Give it a skim in the main sections or ask AI for a summary
  • Identify some things you've never heard of or understand (e.g. LSTM, convolutional blocks, RMS power, motor unit action potential, Gaussian filters). Make a list and the area of study they might relate to, this will prime you for more effective learning later.
  • Do your learnings -- you might start to recognize these concepts
  • Then come back and read through the different sections.
  • In the end, you should be able to identify different major components that enabled this work and understand some of the technical details.
  • This is a complicated paper with a lot of technical depth. Even if you understand the gist of it (don't need to understand the exact math) is good enough for now.

Hands-on project
In parallel or even before being able to understand the paper, you should be able to build the following minimal project:

  • Have cheap EMG sensors attached to your forearm muscles
    • Test yourself: why forearm muscles?
  • Record the signals through the Arduino ports.
    • Test yourself: which ports and why?
  • Visualize the signals as you make a fist.
    • Test yourself: what do you expect to see?
  • Program a classifier based on the signals to determine your hand state (e.g. fist or not)
    • Test yourself:
  • With more knowledge you can start improving it to detect finer and smaller gestures. But you'll eventually hit a wall (why?)