Hackaday Prize Entry: Let Your Muscles Do The Work

Electromyography is a technique used to study and record the electrical signals generated when a muscle contracts. It’s used for medical diagnosis, rehab, kinesiological studies, and is the preferred method of control for robotic prosthetics and exoskeletons. There are a few companies out there with myoelectric products, and the use case for those products is flipping the slides on a PowerPoint presentation. Lucky for us, this project in the Hackaday Prize isn’t encumbered by such trivialities. It’s an open, expandable platform to turn muscle contractions into anything.

As you would expect, reading the electrical signals from muscles requires a little more technical expertise than plugging a cable into an Arduino. This project has opamps in spades, and is more than sensitive enough to serve as a useful sensor platform. Already this project is being used to monitor bruxism – inadvertent clenching or grinding of the jaw – and the results are great.

While it’s doubtful this device will ever be used in a medical context, it is a great little board to add muscle control to a robot arm, or build a very cool suit of power armor. All in all, a very cool entry for The Hackaday Prize.

6 thoughts on “Hackaday Prize Entry: Let Your Muscles Do The Work

  1. Read the thesis, a good write-up! Be aware that currently there is no patient isolation with this circuit. It is the electrode front-end amplifier. Battery power only unless you happen to have a medical grade isolated supply or converter. That includes the Arduino. I recall a post about an isolated FTDI usb to RS232 recently

    1. Thanks! I know there is no isolation, that’s one of the items in the todo list. In theory there is no need for it, because the EMG nodes are wireless and will be battery-powered. However, I would like to include some sort of isolation, to improve user security and allow other ways of powering the system.

      1. I was just being overly cautious. I read the part about isolation in your todo list. I was just concerned that someone would jump in and use your design as the basis of their own effort w/o suitable precautions.RTFM!

  2. Hi, cool project although there are some stuff that make the same.
    Check backyardbrains.com stuff.
    https://backyardbrains.com/experiments/muscleSpikerShield

    Actually I wrote the software for the following
    https://backyardbrains.com/experiments/RobotHand
    It uses dlib to perform some computer learning and identify signals.
    It also is opensourced and written in a sort of modular way so new kinds of analysis can be added easily to the code.

    Btw, if the guy that created this project wants some help I’d be happy to provide such.

    Cheers!

    1. Thanks! I’m aware of some of the EMG projects in the maker community, for example, Advancer Technologies have been developing muscle sensors for some time, and their latest iteration, the MyoWare, is very close to what I have designed. I didn’t know the devices of backyardbrains, they look good, although a little bit expensive in my opinion. For 20 bucks more than the 2 channel EMG system you can buy a Myo armband which features 8 EMG channels and a nine-axis IMU packed in a wireless device. Besides, I think the output of the backyardbrains devices is a rectified and smoothed signal, and my design outputs a raw EMG signal, which I think is more useful, for example to compute frequency-related features.

      With this project I’m trying to design something slightly different from the existing devices by creating a distributed system based on a wireless network of independent EMG nodes. In this way the cumbersome cables from the electrodes to the front-end amplifier are removed, as in the case of the Myo, but by making each EMG channel an independent wireless node, it is a more flexible system that allows multiple combinations of channel number and location.

      Do you have a link to your pattern recognition code implemented with dlib? I have implemented a very simple hand gesture classifier in Python using scikit-learn (it is documented in the project page), because I’m not that experienced with C++, but I would like to learn how to use dlib to be able to embed the classifier into a microcontroller.

      1. Hi!
        I see what you mean. It’s a good idea to get rid of the cables. :)
        I’m not sure if dlib will run on a microcontroller. There is not enough processing power. Besides that dlib is super picky with how you set it up so I guess that making it work for a microcontroller will be a bit time consuming and probably frustrating.
        here’s the source code in case you might want to fiddle with it. https://github.com/TimByB/HackerHand-Control

        best!

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.