Introduction: EMG Biofeedback

Picture of EMG Biofeedback

This biofeedback setup uses an EMG sensor to represent muscle tension as a series of beeps and allows you to train your body to adjust muscle tension at will. In short, the more tense you are, the faster the beeps become, and the more relaxed, the slower. Using this device you can learn how to regulate your body to speed up and slow down the beeps; hence increasing and decreasing muscle tension. With some practice, you will have enough understanding of your body to be able to control muscle tension without use of the device. This is cool because it allows you to consciously control a part of the body you would not normally be able to otherwise sense or easily control.

I set mine up to monitor the muscles in my shoulder and neck that are responsible for tension headaches, but you can place them on just about any muscle group. I recommend experimenting with the placement of the sensors and seeing what is possible.

Step 1: Go Get Stuff

Picture of Go Get Stuff

You will need:
- An EMG sensor
- Electrode cables
- Electrodes
- An Arduino
- A +/- 5V regulated supply board***
- 3-Pin female header
- 9V battery snap
- 1/4" stereo jack
- Headphones with 1/4" plug
- European-style terminal strip
- Red, green, and black 22 awg solid core wire

***+/-5V is the bottom range for the sensor board. I found two 9V batteries wired in series worked better than this board. The single red Wire is +9V, the junction where the two batteries meet is ground, and the lone black wire is -9V. Alternately, you can get a +/-12v mini board from Futurlec. However, I have not tried this.

Step 2: EMG Board

Picture of EMG Board

Assembled the EMG board with the parts provided as labeled.

Note that it comes with 5-band resistors and those are read differently from the typical 4-band resistors.

Step 3: Prepare the Cables

Picture of Prepare the Cables

Take a razor blade or other sharp object and cut around the circumference of the center of the cables plug to expose a metal tip.

Repeat this for all three cables.

Step 4: Power Connector

Picture of Power Connector

Solder a red, green, and black wire to the 3-pin socket.

Make certain the black wire is in the center. The other two wire can be on either side.

When you are done, you may want to reinforce the connections with a bit of hot glue (or similar).

Step 5: Plug Things

Picture of Plug Things

Plug the three wires from the socket into the +/- 5V power supply such that green is going to -5V, black is going to ground, and red is going to +5V.

Also plug the 9V battery snap wires into the power-in connector. Make certain that the red wire is going to the pin labeled "VIN".

Step 6: Program the Arduino

Picture of Program the Arduino
Program the Arduino with the following code:


Step 7: Audio Jack

Picture of Audio Jack

Wire the two signal tabs together and then attach a long red wire to one of them.

Attach a long black wire to the terminal connected to the inner ground lug.

Step 8: Terminal Connection

Picture of Terminal Connection

Trim the European-style terminal strip down so that there are 3 pairs of connectors.

Plug the electrodes into one side.

Plug corresponding wires into the other side. I didn't have a white wire, so I used green.

Step 9: Plug In

Picture of Plug In

On the sensor board, plug the green/white wire into the header slot labeled "M.Mid"

Plug the red wire into slow labeled "M.End"

Plug the black wire into the slot labeled "Ref"

Step 10: Connect to Arduino

Picture of Connect to Arduino

Connect the slot labeled "Vout" on the sensor board to analog pin 0 on the Arduino.

Connect together ground on the two boards.

Step 11: Power

Picture of Power

Connect the 3-pin female header from the power board to the sensor board such that the green wire is aligned with -V.

Step 12: More Power

Picture of More Power

From the power board connect the +5V and ground connections to the corresponding pins on the Arduino.

***If you are using an alternate power supply greater than +5V, be sure to connect it to the voltage in jack on the Arduino instead.

Step 13: Connect Electrodes

Picture of Connect Electrodes

Snap the electrodes into the ends of the adapter cables.

Step 14: Attach Resistor

Picture of Attach Resistor

Attach a 20K resistor to the end of the long red wire affixed to the audio jack.

Increasing or decreasing the value will determine the volume of the beeps. I would not decrease it to less than 10K or it will be too loud and might harm your hearing.

Step 15: Plug in Jack

Picture of Plug in Jack

Plug the resistor that you just attached to the audio cable into pin 8 on the Arduino.

Plug the black wire into ground.

Step 16: Attach Electrodes

Picture of Attach Electrodes

Place electrodes along the muscle you want to monitor.

The black electrode is reference and should be placed in an area not affected by the muscles you are trying to measure.

The red should be placed at the end of the muscle near where it attaches to a tendon.

The white should be placed in the center of the muscle.

This is how I placed them on my shoulder to monitor tension. I got suitable results with this configuration.

Step 17: Plug It In

Picture of Plug It In

Plug in your battery to power it all up.

Step 18: Headphones

Picture of Headphones

Put on the headphones. Notice how you can adjust the length of the beep by tensing and relaxing your muscle.

Now, you can train yourself to produce a sound of a certain duration by concentrating on that muscle group.

You can also monitor the sensor readings by plugging the Arduino back into the computer and turning on the serial monitor. Make certain you unplug any external voltage sources to the Arduino before you try this.


awesomeness0400 (author)2017-09-04

Thanks for sharing this!

moshaharoni (author)2013-11-04

Hi !

I am a Physical Therapist - I would want to try and build a small EMG biofeedback unit for personal use. The last time I ever built electronics was 20 years ago- in elementry school :) However I would really like to try and construct this unit you just invented.
One question: Is it possible to change the unit so that it generates a visual output on a computer/cellphone-like screen for the muscle tension biofeedback insted of the audio output? If so, would it be complex? I would like to have visual graph of tension, not only based on a "On/Off" pattern but on a "volume" pattern as well.


elzurdo86 (author)moshaharoni2015-04-05

Yes you can Mosh, I am actually working on this project myself. If you want I can help you out. Regards

ocheadle (author)elzurdo862015-11-02

Did you ever finish the visual display for this elzurdo86? I am a speech therapist and would be interested to use this device with a visual output to give biofeedback of laryngeal tension (like an electroglottograph). Cheers

elzurdo86 (author)ocheadle2015-11-02

Ocheadle I kind of did. But not for that. We can discuss how can I help you via email.

balexander6 (author)2013-11-14

I've put the entire project together. What took the most time was waiting for parts to come available. However, now that it's together I am having trouble hearing the feedback. Is it supposed to come out in clear 'beeps'? Also, could there be an issue because I am using the Muscle Sensor v3 board? Thanks in advance for your help!

I'm including pictures of my components in place in case anyone can spot an error on my end. Thanks again.

ashra (author)2013-09-12

Thank you very much for this post. The EMG sensor linked to is now obsolete.

Is the current Muscle Sensor v3 a straightforward replacement for your instructions?

Thank you!

Patrick S (author)2013-08-05

Hey! Quick question, you said how you can use +-9V in the arduino's V-IN port, since the analog ports can only take 5V, but how can you read the voltage that is going in the V-IN port? Thanks.

hblockus (author)2012-07-01

Hey randofo-

amazing and inspiring project, thanks for the instructions!
a quick question: are you using dry electrodes or do they need an electrolyte paste to work?
thanks in advance for your reply.


randofo (author)hblockus2012-07-01

The electrodes have an adhesive layer that is conductive. They are good for only one to two uses, so if you go that route, you will need a bunch.

hblockus (author)randofo2012-07-03

thanks a lot for the helpful response.
got the electrodes sorted out in the meantime.
however, was wondering whether you dont have to include a notch-filter (50/60Hz) to circumvent interference from general power supply voltage?
thanks in advance again for your help.

randofo (author)hblockus2012-07-03

I didn't have that problem in my particular setup since it was all battery powered. Was getting noise from my pulse, but not that much. I wouldn't recommend wiring yourself to the wall.

hblockus (author)randofo2012-07-03

no wall-wiring for sure:)
but i am designing my setup after an old machine that a colleague has used some years ago and he employed an accu - like this the setup is def medically safe, but he still added a notch filter. i cant really see why..

Revanchist (author)hblockus2012-08-02

The 50/60 Hz noise is still present even if its battery powered... if you plug it into matlab through the mic input, and do a FFT you'll notice a huge spike in the 60 Hz (I'm in Canada) spectrum.

Even though its battery powered you still have risk of microshock... try looking for a similar chip to the ISO124 (its pretty easy to adapt) just put it at the end stage and the patient/user won't get any micro/macro shocks...

One thing I'm having trouble tho, I fininshed an ECG design (will upload soon) which is very very neat, but I can't seem to bring it up to the positive side of the voltage. I added the full wave rectifier, but if I understand correctly from the link in this tutorial, the wave is rectified but only the negative part is placed in the positive side, so the waveform itself is modified.... I'm trying to process the ECG information with an arduino as well but I can't seem to be able to do this... anyone have any ideas? Randofo?

I would appreciate this forever!

barrasundy (author)2012-03-16

This is a fantastic instructable randofo! Thank you, it was just what I was looking for.

I do have a couple of questions that I hope you wouldn't mind answering:
1. Is the EMG device audible without the headphones?
2. Is it sensitive to even the slightest muscle contraction?

Much appreciation in advance.

randofo (author)barrasundy2012-03-16

1. Nope
2. Not sure. Depends how slight you are hoping to sense.

elzurdo86 (author)2011-12-07

Does anyone know if this project this project has been used as a thesis project?

randofo (author)elzurdo862011-12-07

No it has not, but I'd suggest doing original research or taking it a step further should that be your intention.

elzurdo86 (author)randofo2011-12-08

I do have one question though , I have heard that with these kind of voltage there's a lot of noise that can be picked up, will these circuits is the noise minimized? .

randofo (author)elzurdo862011-12-08

I didn't design the board, but I seem to be getting a pretty solid signal. The one cool thing I found so far is that if the electrodes are placed in the right location, you can start picking up your pulse. I first mistook this for noise, but after a minute or so, it was very apparent that the fluctuations were regularly pulsing.

fstcfs (author)randofo2012-03-06

Cool instructable! I came across this while searching for guides on low-cost EMG builds for work/tinkering projects. I am currently studying to become a certified prosthetist and the current acadmeic focus includes EMG interfaces. Our instructor mentioned that when using EMG controlled prostheses for patients with a shoulder disarticulation the signal from the cardiac muscle can create electrode placement "problems" if the skeletal muscle can not generate enough potential. It's interesting to see the arduino in action in this way. Thanks for posting!

randofo (author)fstcfs2012-03-07

Funny you should mention it. In another project I am working on I was getting a lot of noise and could not figure out what it was. I finally decided to hook the circuit up to a physical output device and realized the noise was my heartbeat as the thing I was working on was twitching in synch with my heart. It was kind of cool to watch.

elzurdo86 (author)randofo2011-12-08

Yes, that is actually my intention but I will use some of your information on it, I will be posting my project as it develops. First I will make this one and for my thesis I will modify it to take it one step further . Thanks BTW great project.

elzurdo86 (author)2012-03-05

I am trying to power up the sensor without the use of the board, although I-m checking the video with the two 9v battery I don't fully understand how are they wired up. Could you give me a hand with this?

Revanchist (author)2011-12-16

This is truly an amazing project! I did an ECG for my bio instrumentation class... It was easy... Technically this emg can be converted to an ECG, as long as the response frequencies are modified... An ECG could read frequencies up to and around 500 Hz. The EMG on the other hand reads higher frequencies ranging from 50 Hz up to and around 5 KHz. (reference: Medical instrumentation - Application and design, 4th Ed. John G Webster, chapter 6, Chapter 6: biopotential amplifiers, page 270.)

One problem I saw at first glance was that the circuit provides no protection from micro shocks... Using a chip (iso124) would work as protection from common mode voltage to the patient/test subject.


Otherwise this project is really great! I want one... Maybe after finals :)

elzurdo86 (author)Revanchist2012-01-03

That's great thanks for sharing, I'm starting a project based on this one as well, I want to include a light display that can show the tension based on colors.

Revanchist (author)elzurdo862012-01-03

Oh I've seen something similar used on an EEG, someone made a "thinking cap" that given the state of the brain it would display different colors and locations... I don't have the link with me at the moment but once I get home I can send pass share the link.

elzurdo86 (author)Revanchist2012-01-03

That would be great, as soon as I have the first images I will be posting in a separated instructable

Revanchist (author)elzurdo862012-01-03

there you go:

its been really useful in my projects... good luck!

redtraceur (author)2011-12-03

Can the software or arduino code be download from somewhere??? i don't see it on the istructable XD

redtraceur (author)redtraceur2011-12-03

ok i already found the code sorry

Dantex (author)2011-11-03

Can it be modified to an ecg?

redtraceur (author)Dantex2011-12-03

it can be modified just bachanging some resistance values to get different cut frequecy on each amp, and also to add more electrode for reference actually like 8 more ore just add a larger cable and take: right hand, left foot and chest region. it won't be a precise but it also works

randofo (author)Dantex2011-11-03

Not that I know of, but I am not sure.

vincent7520 (author)2011-11-16

cool !

Franco0 (author)2011-11-04

What if... You mix that EMG with some electric/pneumatic servos/muscles, so you can control things? :D

mhassan9 (author)2011-11-04

nice man

Arbitror (author)2011-10-31

When I become a quadriplegic, I'm hooking up a keyboard to my neck and face now.

Arbitror (author)Arbitror2011-10-31

Why is there no edit button?
Anyways, what I meant to say was if I become a quadriplegic, I would totally have one of these made so when you tense your neck and face in different ways, it outputs letters like a usb keyboard. But it looks like mind control computer interfaces will be reliable enough in the soon future.

Lithium Rain (author)Arbitror2011-11-03

Haha, that was a worrying sentence before the clarification. :P

Arbitror (author)Lithium Rain2011-11-03

I posted it, then read it. Should have done the opposite!

BigShotUK (author)Arbitror2011-11-03

If you ever end up in that situation:

I've already told people that if something happens to me like happened to the guy in the video on that page that I want an eye writer and told them how to find the instructable for it.
I'm probably going to put it in writing too... just in case they forget.

dieseldude (author)2011-11-03

Looks like a useful project. Wonder if you would please add a detailed parts list with part numbers for the Arduino, EMG sensor, and electrodes. Also, some suppliers and their contact info. These are unusual items for most people to find. Rest of the stuff is quite common.

Thanks if you would,

randofo (author)dieseldude2011-11-03

There are links to all of these on Step 1

About This Instructable




Bio: My name is Randy and I am a Community Manager in these here parts. In a previously life I had founded and run the Instructables ... More »
More by randofo:Large Motor ProjectsRemove a Wheelchair Motor BrakeBuild a Robot
Add instructable to: