Measuring muscle activation via electric potential, referred to as electromyography (EMG) , has traditionally been used for medical research and diagnosis of neuromuscular disorders. However, with the advent of ever shrinking yet more powerful microcontrollers and integrated circuits, EMG circuits and sensors have found their way into prosthetics, robotics and other control systems. Yet, EMG systems remain expensive and mostly outside the grasp of modern hobbyist.

This instructable will teach you how to make your own muscle sensor / EMG circuit to incorporate into your next project. Use it to control video games, robot arms, exoskeletons, etc.

Click on the video below for a demonstrations on how to hook up and use your EMG circuit board!

You can now also purchase  EMG sensors, kits, cables and electrodes at www.AdvancerTechnologies.com!
Muscle Sensor Kit (now also on SparkFun)
Muscle Sensor Electrodes

Note: This sensor is not intended for use in the diagnosis of disease or other conditions, or in the cure, mitigation treatment, or prevention of disease, in a man or other animals.

About Advancer Technologies 
Advancer Technologies is a company devoted to developing innovative game-changing biomedical and biomechanical technologies and applied sciences. Additionally, Advancer Technologies promotes all forms of interest and learning into biomedical technologies. To help culture and educate future great minds and concepts in the field, they frequently post informative instructions on some of their technologies. For more information, please visit www.AdvancerTechnologies.com .

Step 1: Materials

Click on the links to go to where you can buy items/order free samples.

Circuit Chips

3x TL072 IC Chip  - Free Samples
1x INA106 IC Chip  - Free Samples

Cables and Electrodes
1x EMG Cables   (set of 3)... Note: you could optionally connect the alligator clips directly to the electrodes.
3x EMG Electrodes  

2x 9V Battery
2x 9V battery clips  

• 2x 1.0 uF Tant 
• 1x 0.01 uF Ceramic Disc  
• 1x 1.0 uF Ceramic Disc   

• 3x 150 kOhm 1%  
• 2x 1 MOhm 1% 
• 2x 80.6 kOhm 1%  
• 6x 10 kOhm 1%
• 1x 100 kOhm Trimmer 
• 1x 1 kOhm 1%

• 2x 1N4148 Diode  
Jumper wires
• 3x Alligator clip cables

• 1x Oscilloscope
• 1x Multimeter
<p>How much do the meterials fot this cost in total? Is it cheaper than the pre-build myoware muscle sensors?</p>
Well it's not really apples to apples. The MyoWare sensor uses much more advanced circuitry, has built in protection against burning out the ICs, can be powered directly by an Arduino, and the embedded snaps eliminate cables. Electrode cables alone for this tutorial will cost you $5-15 depending on where you order it from. The electrical components cost about $20 from Digikey. However, it would cost you way more to build your own MyoWare than it is to purchase it. That's one reason we started selling the fully assembled versions instead of the kits with just the components packaged together... we were able to get the price of the fully assembled sensors well below the cost of the the component kits.&nbsp;<br> <br> So my two cents is... <ul> <li> <strong>If you want to explore how an EMG circuit works and intend on tweaking/playing around with the internal circuitry</strong>, then you would probably want to build your own using this tutorial. <li> <strong>If you just want a reliable sensor that requires little to no setup and you are more interested in its applications than the circuitry itself,</strong> you're much better off purchasing the MyoWare. </ul>
<p>what programs and code for arduino you used for the data acquisition and the visual representation of the emg signals?, thanks for your time and for your project (:</p>
Hi The sample code can be found on our website: http://www.advancertechnologies.com/p/muscle-sensor-v3.html
<p>Hello</p><p>It's amazing what you done </p><p>It's open the way to alot of projects to be established</p><p>Thanks alot for you and your team</p><p>By the way</p><p>Please, I want the circuit if I used the ad620 instead of ina106</p><p>Cause I haven't any about electronics and I can't find ina106 in my country</p><p>Thanks alot again .</p>
<p>hey, nice work. I just wanna know that I am using LM358 instead of TL072 and output i am getting is any random number even if I don't do anything. So i should use TL072 only for this or the problem is something else.</p>
<p>Most general op amps can be used instead of the TL072. Your issues probably lie elsewhere.</p>
Yup I got that as I tried it with TL072 but still I am getting any random number as my output! Thank you for the reply :)
<p>Sir,</p><p>Is the circuit going to work if I change the cut off frequencies of the HPF and the LPF to 20Hz and 150Hz respectively? I need the circuit to pick up signals only for muscle activity in fingers, which the doctors say, lies in the above specified range.</p>
The circuit works for fingers as is. If you want to add more filtering, I would recommend adding it prior to the rectification phase. I would not recommend modifying the LPF frequency as it is acting as an integration circuit not a LPF.
<p>Hi <a href="http://www.instructables.com/member/Gundanium" rel="nofollow">Gundanium</a> , the connection of pins are different ( not same ) in bread board and circuit diagram , which one is true ? </p><p>can i use INA128 in place of INA106 ? </p>
Which pins are you referring to?
please tell me , which one is correct ( Step 11: Connecting to a Microcontroller ) OR ( Step 13: EMG Circuit Schematic )<br><br>can i connect my circuit according to Step 11 ?
<p>I don't understand your question. Step 13 and 11 are the same just represented in a different format.</p>
<p> hi, can you please mail layout of the board (with Proteus), to fadwa.lasswed@gmail.com</p>
<p>Sorry but we don't publish our PCB layouts.</p>
<p>Sorry but we don't publish our PCB layouts.</p>
<p>Can you please mail PCB layout of the board, to rovardeakr@gmail.com.</p><p>What is special about EMG electrodes and cables?I find them very costly.</p><p>Is there any cheaper way to replace these electrodes and cables.</p><p>Where can I get AD8226 IC from? </p><p>Thanks alot. Excellent Tutorial. </p>
<p>Sorry but we don't publish our PCB layouts.</p>
<p>I will be needing more than 3 electrodes in my system. So naturally I will be needing more than 1 INA106. But it is exceeding my budget. So i wanted to know if there's a cheaper alternative to the INA106 IC?</p>
<p>AD8236 is not only cheaper but better for EMG applications.</p>
<p>Instead of using wires, is it possible to make this system wireless, especially the microcontroller? And how do i do it?</p>
You can't eliminate the wires going from the electrodes to the circuit but it should be possible to eliminate wires going from the circuit to the microcontroller. In simplest terms, you'll need to send the output through a ADC converter and then a Bluetooth or Wifi transmitter.
<p>Ok! Can you tell me how exactly to make the connection from the circuit to the controller wireless? Could you please provide me the instructions to do it?</p>
<p>You could use a <a href="https://www.adafruit.com/products/2471">Simblee</a> or something <a href="https://www.adafruit.com/products/2471">similar</a>. </p>
<p>can we have PCB schematic i would lie to print it also can i use ina 129 instead ina 106.</p><p>thanks </p>
<p>The schematic is on Step 13. INA129 looks like it would be suitable but since I have not used it, I cannot confirm this.</p>
<p>Hi excuse me, i only have the Ad620 instead of the INA i know i can change the resistors and make the G to the same as you are using. my question is can i use the tl074 intead the three of your tl072? thank you for you advise :)</p>
<p>Yes you can.</p>
<p>What type of electrodes work for this? Are there any good reusable ones that can work with it? Thanks</p>
<p>also are there any reusable electrodes that do not require moisture?</p>
<p>We recommend disposable adhesive dry gel electrodes for a couple reasons. </p><p>1) Adhesiveness helps eliminate electrode movement artifacts from your output signal. If you went with a dry contact reusable electrode, you have to pay particular attention to how well you secure it to the skin otherwise every time you move, you'll see large magnitude bumps in your output signal that aren't attributed to muscle activation.</p><p>2) Even with dry contact electrodes, it is recommended to do some amount of skin prep. Dry skin has a significantly high impedance/resistance than moist/wet skin which allows you to measure signals more cleanly with less attenuation.</p><p>3) For dry contact electrodes with no skin prep (aka moisture), you'll need an instrumentation amplifier with an input impedance over 10 GOhms. The <a href="http://www.advancertechnologies.com/p/myoware.html">INA106</a> used here only has an input impedance of 110 kOhms. We use an <a href="http://www.advancertechnologies.com/p/myoware.html">AD8236</a> for our <a href="http://www.advancertechnologies.com/p/myoware.html">MyoWare</a> sensor which has an impedance of 110 GOhm and should be suitable for dry contact no prep applications. Our <a href="http://www.advancertechnologies.com/p/myoware.html">Muscle Sensor v3</a> used an <a href="http://www.advancertechnologies.com/p/myoware.html">AD8226</a> which has an input impedance of 0.4 GOhm which like the INA106 isn't really suitable for those applications.</p>
<p>Hi, </p><p>when the cutoff frequency for high pass and low pass filter was calculated i got values of 106.1 and 1.97 respectively , i didnt understand as to why put a high pass filter first of cutoff frequency 106.1 which allows frequency above 106Hz and then employ a low pass filter with cut of frequency 1.97 HZ which allows frequency only below that!!</p><p>what is the whole point if u filter out it with high pass filter initially?</p><p>and also isn't the range for EMG signal 20-150Hz, please explain </p>
<p>Hi SushmaV!</p><p>This is a very old schematic (published in 2011). For a more recent and advanced one, I would suggest looking at the schematic used for our <a href="https://github.com/AdvancerTechnologies/MuscleSensorV3/blob/master/Documents/Muscle%20Sensor%20v3%20Schematic.pdf">Muscle Sensor v3.</a> Our new MyoWare sensor is even more advanced but we haven't published the schematic publicly yet (patent pending). </p><p>We set the HPF in this design to 106 because we found that was a good frequency for the INA106 for two reasons, 1) it removed the DC offset that can occur due to electrode polarization, and 2) it helped remove any latent 60Hz power line &quot;hum&quot; noise that the INA106 failed to remove. However, this does cut out a good deal of the EMG frequency range but since the rectification and integration phases that come next will completely remove frequency information this isn't as much as a drawback as it might seem on paper. We no longer use this in our MyoWare sensor.</p><p>As for the LPF, it actually isn't a LPF because the signal has been fully rectified by this point. It is actually an integration circuit with a cut off frequency around 2Hz. This phase smooths the rectified signal and produced the EMG &quot;envelope&quot;. We set it to 2Hz because we found this produced the best results w.r.t. signal smoothing and in most applications you won't get muscle activation faster than that (2Hz = 2 full muscle flex/relax cycles per second)</p>
<p>Hi. Can I use MAX4199 instead of INA106? and what adjustments should I make?</p><p>Also with TL072 can I use MAX44263. I can only use MAX products.</p><p>Please. Thanks</p>
Hi <br>I didn't find INA106 So cqn I use AD620 ?
Yes but make sure you set the gain to be equivalent to this circuit.
<p>Many thanks :)</p>
<p>Can we use homemade electrodes from nickel buttons to provide the input for sensor</p>
<p>Hi I'm using your circuit as part of a control mechanism for an exoskeleton. I have made the circuit however I'm getting errors when running the codes for processing and no readings on the graph specifically with the Line 60 in the bar graph processing code: println(Serial.list));. The error is &quot;Type strin[] of the last argument to method println(object...) doesn't exactly match the vararge parameter type. Cast to object[] to confirm the non vararge invocations or pass individual arguments of type object for vararge invocation&quot;</p>
<p>Can we use this circuit for ECG purpose of brain and heart ???</p><p>Please reply me fast</p><p>Thanks</p>
<p>I recently made this circuit on a breadboard. But the circuit does not show any output on the Arduino serial plotter when the given Arduino code is used. Can someone please help me out with this? I need to know what could have gone wrong?</p>
<p>Can we connect more than 3 EMG electrodes in this same setup?</p>
No this circuit is for one muscle (three electrodes). You'll need to duplicate the circuit for every set of electrodes or you can multiplex after the IA phase (would still need an IA per muscle aka set of electrodes).
<p>Oh alright! Thanks</p>
<p>I am trying to use the processing code but i keep getting the error &quot;the size of your sketch could not be determined&quot; , any advice? Sorry, I am new to coding.</p>
<p>Hi,</p><p>Code for this experiment can not found in the url which you gave a year ago.</p><p>Where can I find?</p>
Hi halaskar,<br><br>We moved all our code and documents to a GitHub repository.<br><br>https://github.com/AdvancerTechnologies/MuscleSensorV3

About This Instructable


621 favorites


Bio: Brian Kaminski Owner - Advancer Technologies Brian graduated from North Carolina State University with a BS in Biomedical Engineering with a concentration in Biomechanics in May ... More »
More by Gundanium: Bionic Wolverine Claws Bionic Iron Man Glove Bionic Iron Man Armor (w/ Sound Effects)
Add instructable to: