DIY Muscle Sensor / EMG Circuit for a Microcontroller

Picture of DIY Muscle Sensor / EMG Circuit for a Microcontroller
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!
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 .

Remove these adsRemove these ads by Signing Up
1-40 of 211Next »
kkops10 days ago

can u suggest any reuseable EMG electrodes that will work with this circuit?

kkops10 days ago

can u suggest any reuseable EMG electrodes that will work with this circuit?

jrosales57 months ago
How do you know in what part of the body put the three electrodes? For example how i put the electrodes for sense the fingers or my leg or other part of my body?

To enable the emg to detect the current that produce by the contraction
of muscle, basically u need at least 3 electrode which is, two of the
electrode must be positioned near to the skeletal muscle, and the other
electrode must be placed in neutral area. Neutral area means that no
muscle tissue on it. The last electrode was used to cancel the noise
that produced.

Gundanium (author)  jrosales57 months ago

That takes some knowledge in Anatomy. It'd consult with anatomical diagrams to figure out where the muscle you want to measure is located. Also, not every body is the same so it might take some trial and error to figure out the best location for the electrodes.

receiving a greeting hello, I'm working on a prosthetic leg, and I wonder if I can use their entire system for sensors and servos and if so to import the produto, thank you very much

mi correo

receiving a greeting hello, I'm working on a prosthetic leg, and I wonder if I can use their entire system for sensors and servos and if so to import the produto, thank you very much

oscar2562 months ago

What is voltage it receives the human body due to the electrodes and
amplifier circuit? Also is it safe to apply to people with pacemakers or

oscar2562 months ago

How much is the max amplification for biosignals it has the circuit? Reading a little, i see: G=110 for the INA106. G= -15 for the first opamp, G= -1 for the second opamp, and G=POT/1K for the last opamp. So the final gain is G=(1650)(POT/1K)??? is this correct?? And the max gain is G=165000????

NilayM3 months ago

Hi, I am working on an cost-effective EMG prosthetic as a high school project. I'm fairly new to diy electronic projects so I wanted an expert's take on the capabilities of the muscle sensor r3 kit. For my needs, I wanted to know if multiple kits(2 or 3) could be connected to the same arduino uno(I will probably be investing in an arduino mega soon, so is it possible in that too)? Also, with the data that the emg sensors collect, will I be able to use that to control a set of motors independent of a computer's presence. Unfortunately, I am in a time crunch and need answers very soon, so any response would be much appreciated. Thank you for your time and expertise.

Gundanium (author)  NilayM2 months ago
Hi Nilay, you can indeed use multiple sensors per microcontroller. However, you can't directly drive a motor with the sensors. You'll need to use a microcontroller or a servo control board to read the sensor data and control the motor accordingly.

thorshammer3 months ago

Hi, I was wondering if it was possible for me to replace the tantalum capacitors with ceramic ones

J_Aparecido3 months ago


I managed to assemble this project is operating normally ... like a hint, how can I increase the sensitivity of the circuit? For example, if I want to monitor variations in electrical potential without even having muscle contractions, or in a state of relaxation or strees would be an example.

I tried to increase or decrease the gain resistor between pins 5 and 6, but to no avail, however lost sensitivity.

I'm starting in the area of electronics, if someone give some hint where I can find information on, I thank you.

And sorry, my english is not very good, I am "writing" with the help of a translator ...

Thank you,

rudiclan4 months ago

Hello, I have a problem with the circuit. Sometimes everything works fine and sometimes there is no signal. I used a scope to measure each step an figured out that I have a high DC offset after the first ampification step (AD620 with gain of arround 110). The DC offset is about 800 to 1500mV but I see a oscillation when I use the muscle. Now the signal gets amplified by a factor of 15 and the opamp saturates (constant 8,x V). After the ac couple with the capacitor the signal gets zero. Is it possible to reduce the DC offset or decouple the signal before the second amplification step? Thank you!

dhivya134 months ago

Hi can i ask if this circuit can be used with Matlab software to display results?

KalRob6 months ago

This is great, does anyone have the PDF file of this? I can't download it. Also, what areas would you change/ replace to make this better? Thank you!

oscar2567 months ago

What is voltage it receives the human body due to the electrodes and amplifier circuit? Also is it safe to apply to people with pacemakers or prostheses?

AtlasGe7 months ago

dear Gundanium(it seems you are a gundam lover hummm?) i need your help!

i thought i've correctly drawn the .sch file(or at least made it looks like a right one)

also i've tried to turn it into a pcb design

but as i pressed the button 'PCB Quote', there is something wrong and I have nothing to do about it.

what is the signal layer and how to 'put' copper on it?

is it the right way i'm taking?

any kind help is apprecited!


jrosales57 months ago
Can i use the AD620?
Gundanium (author)  jrosales57 months ago

Yes, if you adjust the gain accordingly.

oscar2567 months ago

Hi, Can i make the program Muscle Mouse, without using the bluetooth
module in processing, to control the helicopter game just whit the
arduino? Or is necessary a bluetooh mouse?

Gundanium (author)  oscar2567 months ago
You would need to hack your Arduino to act as a mouse which is not a simple matter. If you want to go this route, you can read our Biofeedback Video Game Instructable. In it, we demonstrate how to hack the Arduino to act as a keyboard.

Also, using Bluetooth adds a layer of isolation between the user and the power grid. If you connect it to a computer via an Arduino and a USB cable, you'll want to add an isolation amplifier between the sensor output and the Arduino.

Is it possible to do through the processing, without hacking the arduino?

Gundanium (author)  oscar2567 months ago

Not that I'm aware of.

oscar2567 months ago

Why did you mention that the INA106 amplifies the signal from the electrodes with a G = 110, if the datashhet mentions that amp is only with G = 10?

Gundanium (author)  oscar2567 months ago
The gain equals 10 if you short pins 5 and 6 (G = 100kOhm/10kOhm = 10). However if you add a resistor between them, you can adjust the gain. (G = (100kOhm + resistor)/10kOhm). In this circuit we have a 1MOhm resistor between the pins thus the gain is (100kOhm + 1MOhm)/10kOhm = 110.

Look at page 6. There's an example of INA106 configured with an adjustable gain.

Ok, thanks so much

j135798 months ago

I want only the muscles electrode.
the link you gave also shows some IC with it.

I just want electrodes.

from where I will get it?

Gundanium (author)  j135797 months ago

We now sell electrode packs:

Gundanium (author)  j135798 months ago
j13579 Gundanium8 months ago

Thanks :)

j13579 Gundanium8 months ago

Thanks :)

oscar2567 months ago

I can change the 1uF ceramic capacitor for a 1uF tantalum one?

I can change the 80.6K resistor for a 82K resistor?

Gundanium (author)  oscar2567 months ago

Ceramic capacitor to tantalum: Yes

80.6k resistor to 82k resistor: Yes but it will change your output slightly.

oscar2568 months ago

What software you used to display the signal from the electrodes on the PC?

Gundanium (author)  oscar2568 months ago


sama12 Gundanium7 months ago

How do the Output of this sensor board looks like can you send or attach screenshots please

oscar2568 months ago

What software did you use to simulate the circuit? Because I have the proteus but does not have the INA106

Gundanium (author)  oscar2568 months ago
Eagle by CadSoft
sama12 Gundanium7 months ago

Where can I find this INA106 in Eagle? I m not able to find it.

1-40 of 211Next »