Bringing muscles into The Digital Age
Welcome to this week's FANTM Microupdate. We're going to dive into the backbone of FANTM: electromyography. Electromyography (EMG) is the measurement of electrical activity in your muscles; used to detect muscle movement and contraction with dedicated hardware and electrodes. Historically EMG has been important for diagnosing various medical conditions by watching for abnormal muscle activity, and the technology required to measure EMG has been around for a long time and isn't too complex. However, it has primarily been limited to the biomedical space where costs are determined by how much insurers will pay, blocking innovation and making it inaccessible to your everyday consumer. With the rise of hobbyist electronics and the lowering barriers to entry for custom electronics, that has begun to change. Numerous interesting demonstrations of EMG's application outside of the medical sphere have started to pop-up, and we believe it's one of the next major frontiers for computing and user interaction.
Before it can revolutionize user experience, the EMG signal has to be brought out from under your skin and to a computer. The process starts with three electrodes: one positive, one negative, and one reference. The positive and negative are placed inline with a muscle, while the reference tells the device what the baseline electrical signal is in your body so that it can ignore that from the EMG measurement. The electrodes are used to measure a signal that usually lives in the 0-10 mV range, i.e., pretty weak, and it is in the 10-500 Hz frequency band. If you're an avid follower of these posts or an electrical engineer, you might recall that power line noise in the US lives at 60 Hz, which falls squarely in the 10-500 Hz band and can be a real challenge to work around. So now you have a weak signal and three electrodes, but your computer can't natively read something that weak so you need to amplify it, a lot. We use an adjustable gain that usually falls in the range of 1000 V/V to 10000 V/V depending on how strong the signal for that particular electrode location is, and this gets the signal into a range that's acceptable for the particular computer reading the data. With a little more basic filtering and shifting, the signal is ready to be sent off to a computer for processing.
This is where the secret sauce of FANTM comes in. The problem isn't solved when the signal is digitized, all you have is a raw number representing how contracted a muscle is at a particular moment in time. Determining what constitutes an actual contraction, deducing which muscle is being contracted, and mapping the data to a useful action all require major software support. Even with emerging options for hobbyists to play around with EMG, we felt that there weren't any good options to do something greater with EMG for those who didn't want to start from scratch. We've already published open-source pre-release versions of Arduino firmware (that Arduino wrote a blog post about), a data processing middle layer, and a Python extension that let's anyone easily attach processed EMG data to whatever application they're building. It's all on our GitHub, and it allows for anyone with a FANTM DEVLPR to take EMG data, write an extra couple lines of code in their application, and make something happen without ever knowing anything about EMG. On top of that, we're starting to build Machine Learning models to tease out the subtler patterns in frequency behavior of your muscles and enable more fine tuned controls.
There are a lot of fun projects going on behind the scenes at FANTM, but they exist with one unifying goal: democratize access to EMG, enabling anyone to access this new frontier. EMG is one of the easiest to access biopotentials, and we already intuitively know how to use our muscles to manipulate things in the physical world. There is no reason our digital interactions can't be just as intuitive, and that's what we're building. Thanks for reading, and now more than ever it's important to get vaccinated, for the safety of yourself and your loved ones! 💉💪🤖