Granted, using our muscles to control things is the way that most of us are accustomed to doing it. We push buttons, pull levers, move joysticks... but what if we could take the buttons, levers and joysticks out of the equation? That's right, take the electrical signal straight from the muscle and put it into your device. Thanks to shrinking amplifier technology, we can now do exactly that!
Measuring muscle activity by detecting its electric potential, referred to as electromyography (EMG), has traditionally been used for medical research. However, with the advent of ever shrinking yet more powerful microcontrollers and integrated circuits, EMG circuits and sensors have found their way into all kinds of control systems.
This sensor will measure the filtered and rectified electrical activity of a muscle; outputting 0-Vs Volts depending the amount of activity in the selected muscle, where Vs signifies the voltage of the power source. It's that easy: stick on a few electrodes, read the voltage out and flex some muscles!
This kit comes with everything you need to start sensing muscle activity with your Arduino or controller of choice.
This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.
Skill Level: Noob - Some basic soldering is required, but it is limited to a just a few pins, basic through-hole soldering, and couple (if any) polarized components. A basic soldering iron is all you should need.
See all skill levels
If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.
Skill Level: Rookie - You will need a better fundamental understand of what code is, and how it works. You will be using beginner-level software and development tools like Arduino. You will be dealing directly with code, but numerous examples and libraries are available. Sensors or shields will communicate with serial or TTL.
See all skill levels
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
Skill Level: Noob - You don't need to reference a datasheet, but you will need to know basic power requirements.
See all skill levels
We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.
No reviews yet.
Is this sensor used for detection of eye movement??? Means for EOG ???
Oof. This is very cool but it is not safe. The AD8221 used for direct connection to the skin probes in this design does not protect against any faults. There should be a minimum of 1x 180k resistor on each pin (1 and 2) in series with the signal to guard against faults in the device or similar. (To avoid unintentional current going through user/patient.) My reason for saying 180k is the medical requirement at single fault of limiting current to 50uA. Assuming 9v is max potential available due to ground being applied to patient and a +/- 9v topology being used for batterys, 9v/50uA is 180k. (No need to split this in two since the single fault aspect is already taken care of in the event voltage is available on pin 1 or 4.)
I'd feel much safer if this was put in place. Without it I'd never connect this to myself or any child. Please consider a v4...
My son has a myoelectric left arm that has electrodes that don't need pads to be replaced. I'm building a bunch of stuff for him (like a ShapeOko CNC) to start building his own arms and other useful life enabling tools that are more cost effective. His current arm takes up $30k+ of my health benefits each year. The option to have an homebrew arm that doesn't require replacement pads would be a huge plus. Something to consider for the future.
You are an amazing father.
Keep us updated on your son's progress! I think it's awesome that people are taking the first steps toward developing their own solutions. For what it's worth, I personally think an open source approach could really accelerate the development of prostheses.
I'm sure you and your son are already aware of this community but the Open Prosthetics Project has some great resources.
Dan- I've done research regarding brain-mapping kinematics (interpreting desired body movement through an EEG) working towards developing prosthesis controlled by thought. If you're interested what I have to share, feel free to pm me at any time. With respect to fabrication, I have a commercial grade 3D printer as well as a CNC machine shop- both of which are at your disposal.
This is not a solicitation and I expect nothing in return from you.
Wow. I'm not even quite sure now to process that. That's incredible. I dont think there is a PM capability but feel free to reach out to me at danielmpries@gmail.com.
Hello Dan,
I am developing an Open Source Project to build a low cost MyoElectric arm. Take a look at the progress: http://www.youtube.com/watch?v=38SnocWQFkM
Let me know if you need any help.
Gustavo @ Brancante .com
That's pretty rad. Unfortunately we just got the bill for his latest arm so projects are going on hold for a while but I'll definitely be touch and following your progress.
Get a 3D Printer as well.
Have you seen this DIY prosthetic arm? http://www.thingiverse.com/thing:408641
It was featured on the Today show and only takes ~$250 in parts to build.
That's awesome. I'll have to look into that... and a 3D printer as well. Too bad 3D printers aren't covered by HSAs... yet. In all seriousness, if I can get my hands on a printer, I'll take this design into consideration.
http://www.kickstarter.com/projects/anthromod/3d-printed-robotic-hand/posts/578116
Check out this arm. Low cost and a kickstarter project, the arm is already completed.
Most EMG electrodes will work with the sensor. For a homebrew reusable electrode, check out the fabric electrode tutorial. Wish you and your son the best of luck. It's amazing how much those myoelectric arms cost.
You win my vote for best DIY project.
That sounds like an amazing project.
what is the value of c4 (capcitor in the low pass filter)??
I’m trying to get some output from the sensor version 3.0 (number 2913) but unfortunately the voltage level doesn’t change when I flex my muscle. Here’s what I did: I’ve setup the hardware as indicated in the pdf using the +9 and -9 volt batteries. I ran the AnalogVisualizationArduino file. Looping through the pins the voltage level stayed the same, between 360 and 400. This change is random, has no relation to my movements. I checked the power and output with a multimeter but here also the signal pin output stayed around 0.036V
Did I miss something basic here? Is there a tutorial to test my setup? Or is something wrong with the board, perhaps?
Thanks very much in advance for your help, best, Anja.
This is the same issue I am having. I went back and did some more testing - I havevoltages at every step except for the output so far. The power supply leads read ~18 volts, and I can get readings at the 3.5mm connector (you can read a voltage, I was seeing inbetween 380-60 mV on two of the four leads). So the unit gets power, the electrodes are providing signal, but there is just no output. I too followed the tutorial provided here, and there is just no output. Sometimes, if I jiggle things just right, I can get some varying voltage out of the outputs, but nothing more than 300 mV, which if Im not mistaken, is WAY low. (I was mistaken in my 1st post about expected outputs). Its almost as if the op-amps are in backwards or something.
Sparkfun, if you could look into this, it would be great. I'm really looking forward to using these and making stuff, all I need is functional boards and Im off!
I have purchased two of these sensors, but am having difficulty getting them to output a reading. I have both wired up individually as indicated in the user manual, and hooked them both up to a Arduino Uno, using the wiring diagram provided. When I run the example code provided on this page, I don't get any readout from the pin that they are connected to. As all pins are declared in the code, all of them provide a baseline reading, which don't change (and shouldn't if there is no sensor on those pins). However, even the pin that I do connect to the sensors only read a baseline value that doesn't change when I move the muscle. I checked that there is signal coming out of the sensor, and indeed there is. Using the gain, I can modulate the magnitude of the signal, but it doesn't respond to any muscle movements - i.e. the signal voltage stays the same regardless of muscle movement, but DOES change when the gain is adjusted. I have seen readings on my multimeter of as low as 61 mV to as high as 399 mV (which I believe is expected when using two 9V batteries).
So, what am I doing wrong? Are the sensors really sensitive to location? Is there a trick to how they should be placed? Is there a way to test for dead functionality? Any assistance that someone could provide in figuring this out would be greatly appreciated. Thanks in advance.
So I was able to get the sensor up and running (one of them). Couple lessons -
1st - Electrode place is SUPER important. I think the manufacturer could do a better job in the instructions of demonstrating/illustrating this. Once I got the electrodes in a good place, I was able to get a read out of it.
2nd - Push the electrode 3.5mm connector in really well. With the low profile on the board, its a bit of a hassle to get a good grip and push in, but there should be no silver of the connector showing. This will muck things up alot
3rd - It outputs a DC signal. This tripped me up a lot when I was trying to get readings. On AC, you will get minimal reads off it, switch over to DC, and you should get a nice signal response. (Hehe, read datasheets, its rectified!)
In order to do testing, I hooked it up, and put a multimeter on there to test the output. Along with PraTap123, I was able to get a read, but it definitely doesn't get up to +Vs, regardless of how much I tweak the pot, which is fine for now. I'm gonna get in touch with Advancer and see if we can track down the particular issue.
If you have issues, don't give up! It does take some working on, but they do work! Follow this link (http://www.advancertechnologies.com/p/tutorials.html) to the manufacturer website for nice tutorials and a demo that shows the sensor working. Note the electrode placement in the tutorial. This was my 1st indication that placement is more important than first thought
use the multimeter to test the output of muscle sensor. ON CRO we are not able to see the expected output.
i have the sensor soldered to wires connecting to arduino uno and have hooked up the electrodes to my bicep muscle, using the correct colored electrodes. when i check the serial monitor, my muscle readings range from 282-296 but are completely unaffected by the flexing of muscle and are changing quickly and randomly regardless of muscle flexing... any ideas?
This is a very nice little unit although it should have an adjustable integrator as it would be nice to look at surface EMG individual spike amplitudes to see how many motor units one is activating. With the electrodes positioned properly, the CMRR is amazing and got an incredibly clean signal on my Propscope. Was easily able to position the electrodes to pick up activity from the extensor indicis muscle and had a very clean waveform which entirely reflected extensor activity of my index finger from subtle movements to full movements.
This unit can be used as a crude EKG placing one of the active electrodes on the lateral lower left chest and the other over the sternum (in my case I was looking for relatively hairless areas). The ground electrode can be placed on the abdomen. The result is a clear but very low pass filtered EKG signal of which only the QRS is detectable. If one is just looking at heart rate, then this device is more than adequate. If one wants to record a full EKG, then one needs a much lower valued integration capacitor.
Having played around with recording surface EMG in the past, this device is very simple and provides a more than adequate integrated EMG signal for such applications as looking at leg movements during sleep. What it wasn't able to do was to provide an EOG. Put the two active electrodes around my left eye, one lateral and the other inferior with the ground electrode on my chin. Only signals picked up were facial muscle activity EMG's. Likely EOG could be picked up with this unit with a tweaking of capacitor values but it would likely be simpler to just build an EOG amplifier as the EOG is a fairly high voltage signal in relation to surface EMG waveforms.
Aside from the inability to adjust the integration time comstant (and hopefully the next version of this unit will have this feature), am quite happy with the unit and ordering more of them to monitor individual leg muscle activity while walking. My ambulatory physiologic monitor uses a 3-axis accelerometer to measure the acceleration of the monitor during walking but with 4 of these units could determine exactly what sequence of muscle activation is in the large muscle groups of one leg.
What sort of "resolution" can we get from this?
1 bit? Flexing/Not flexing? 2 bit? Full/Medium/Little/No flexing?
Or to put it in other terms, will I be able to distinguish between crumpling paper and squeezing diamonds from choal with my fist?
The output is an analog signal between 0 and the supply's voltage (so if you use +/-5V supply, the max output will be +5V). When you flex, the voltage increases. Flex harder and the voltage will increase further.
That's not really saying much. Obviously, the signal is analog. But let's say that you fix the sensors to your biceps. You have ~0V with your arm relaxed and out stretched. If the voltage maxes out on less than the small amounts of flexing needed to simply bend your elbow, you have (for all intents and purposes) a 1 bit resolution. If you need to lift two pounds to achieve max voltage, that would give a completely different scenario.
OK I see what you're getting at. Sorry, your "bit" reference made me think you thought the sensor was digital. The sensor actually has an adjustable gain so if you saturate the sensor with a slight muscle twitch, you can dial the gain down to the "resolution" you're after. Also, keep in mind you can contract the muscle without any joint motion so you can't really think of the muscle activity in terms of the joint being fully extended/fully flexed. Great question =)
I am so pumped to read about all of these applications. I am a doc that uses EMG for diagnosing nerve injury and works in a prosthetics clinic. This type of stuff is so cool and disruptive as Dan P mentions paying 30 k for an arm is pretty tough. These disposable pad are ok. Make sure you clean your area with alcohol to remove oils. You also want to try and place it over the "motor point" typically the beefiest part of a muscle where the neuromuscular junctions are densest. This is a brief primer on EMG in both diagnostic (I don't think this sensor is sensitive enough - we mostly use needles anyway) and kinematic uses. It has a lot of information in a condensed package. http://myweb.wwu.edu/~chalmers/EMGfundamentals.pdf
I appreciate the comments from the EEG neural interface researcher. I do similar work but in peripheral nerves. Good luck. Thanks, Sparkfun.
I'm using this sensor with a Arduino Nano board. I’ve setup the hardware as indicated in the user manual. The sensor reacts to muscle contraction, but I have a baseline offset shift and I'm not able to find the origin of this anomaly. Please help me to find a solution, it's very important. What I am doing wrong?
This would be great for the prosthetic arm I'd like to build for myself.
I'm from Argentina and i would like to know if you sell this product to my country. How can i buy and get it? Thanks!
They do ship to Argentina, just check out normally and put in your country.
If I get amputated I would buy this and stufff in Robotics
hi everyone!
I got a strange problem. When i'm providi voltage to the muscle sensor using voltage generator, i'm able to get the proper output. But, when i'm using batteries(philips 9V) instead of voltage generator i'm not able to get the proper output. So i tested weather am i providing the right voltage or not.. when i checked using multi meter i noticed the voltages are +9v and -9v. After giving the battery connections to the muscle sensor as mentioned in the user manual, interestingly i've noticed that all the voltage from one of the battery is drained and i really don't know what was happened. I tried the same thing with 2 more new batteries and again the same thing happened.
Someone please let me know what's the problem was.
Thanks in advance.
hi everyone, I got a doubt like can i give the o/p signal of muscle sensor kit to the computer and from there to xbee module (transmitter).. and again to xbee receiver which is connected to the arduino board.
Simply all i want to do is to control the appliances with wireless gestures..which could help the disabled persons..
Respected Sir/Madam,
When sensor is disconnected with board it provide proper variation in voltage range. As we connect it to board it provides constant 5 Volt at analog pin of board.
We have also tried with giving pull down to input of the board but resultant is same Please provide some solution for the same and please help us out as soon as possible
Thanks
I Get one of this sensor plz i want to know the cutoff frequency of the low pass filter as i cant see the value of the capacitor clearly (0.1 micron or what)???
Hello Sparkfun,
This is a really nice product and has great uses, Only if it works all the time. I spent a couple of days trying to get it working. It works for a while and all of a sudden it gets upset and sticks to the highest value. Any debugging techniques and useful tips to get it working will be great.
Thank you, A humble customer.
Anyone know how to use this?
Hello! I bought one set of these sensors and I have been testing them but to my disappointment I am only getting noisy output. I read through the comments and I found couple of people having the same problem. Hence, anyone please guide as to what am I doing wrong, because I have followed each given instruction on the manual but still no luck...
Hi, Aaron W I have got the same problem, no reading at the beginning, but now it works and the problem was only the wiring and electrodes problem, please try to get you electrodes leads properly into the EMG, that was my problem....
Hello,
Is there any study of relating the output signal of bicep to triceps using the muscle sensor v3 kit?
thanks for your reply
I only see one problem with this product.... And its been on since its first release in instructables.... There is no isolation chip to prevent feedback current back to the user. Since it plugs to a device(pc laptop video game name one) they're all connected to the wall. Thus current from that device may send a spike back and cause fibrillation to the user and thats a sure heart attack.... Since it seems to be open source, see into adding an iso124 in there.
Fibrillation via shock only happens when a current directly passes through the heart. The odds of this happening are reasonably small. That being said there are things you can do to reduce this risk even further: 1) electrodes should never be placed around the heart (this is EMG not ECG after all), 2) use batteries, 3) since the sensor is meant to be integrated into different applications/setups, isolation could be added as well. It's pretty common not to have isolation on an EMG setup.
That is exactly the right answer... but you can never be 100% sure, and what of those who wanna modify this and make it commercial? they should be aware of the risks.
Yeah a sure heart attack. How many hundred joules are we talking here? By your estimates, assuming a USB port, 5v, 500ma. Or are you assuming that the ground lead of the computer is connected to the hot side of the power outlet? I hear this does happen, though I'm not sure if I've heard of it going unnoticed for long. You bring up a good point. Spark fun should look in to this.
I'm not sure if your comment was sarcastic or not, but just in case it wasn't. A human heart gets fibrillation with as little as 10 - 50 uV, What I meant is that all wall powered electronics are prone to voltage spikes, with or without bridge rectifiers. These spikes, since there is no protection circuit (diode rectifiers or an isolation chip) can be fed back to the user and cause fibrillation. like I said, as little as 10 - 50 uV can cause this [bioinstrumentation and signals, webster] don't remember the actual page, this was when i was still in university (Biomedical and Electrical undergrad)
Is it possible to use these sensors for detecting voltage across the eyes. Or use them as EOG ? Please tell me ?
Depends.... look at the schematic, the filter/s is/are what determines the signal you'll be receiving... for an EMG you would need this band-pass filter (2 stage + buffers) for your muscles, you would have to see at what frequency it is that the ocular muscles transmit the signals. The filter is set for a range of around 2Hz to 110Hz, if they fall under that range then you would be able to. But another thing you would need to consider is the location (probably around the bags of the eyes)....
Another thing to take into consideration is the last stage (trimpot) depending at what voltage level is the signal you're trying to acquire you may need to change your trimpot for the gain...
Hope it helps
Do you guys know what is the sampling for this?
This sensor outputs an analog signal; thus, the sampling is dependent on the ADC you use not the sensor itself. If you use it with an Arduino, the sampling would be the sampling rate of the Arduino.
I want to control multiple servo motor using this sensor and Arduino uno controller, kindly suggest me how can i do it. I need ur support.
Send an email to techsupport@sparkfun. They can give you more detailed suggestions than are appropriate for the comments. Thanks!
I'm very interested in this circuit, don't like supply voltage with two batteries (9 V) because I will use USB port in my app. Is it possible to use just +5 V and -5 V for supply, or op amps will not work correctly? Thanks!
Check out the user manual - it actually lists +-5V as the typical value :) Note that if you're using the USB port, you'll have to split that into +5V and -5V. You can't use a typical 50/50 splitter as that results in+2.5V and -2.5V, which is too low for this application.
I want one, but it's out of stock, in Sep2, Will it Arrive?, Really o.o?
Hey I've been working with one and have a question! I have it attached to +-5V but just get a constant reading of ~830. Do I need to adjust the gain or something? Any ideas are appreciated. I know I have it hooked up to the proper power/ground/signal and the electrodes are connected well.
Had to make up a 50hz filter as it is very sensitive at these frequencies. Problem now is that the genuine 50hz signals are lost which make up quite a large portion of emg signals.
use batteries instead of a wall plug to power it up, and do your tests away from other electronics connected to the wall... also try to do a digital 50Hz filter.
Muscle Music: http://www.ksl.com/?nid=1017&sid=21920936
Has anyone had success with the sensor... after wiring it, it only seems to be outputting noise from the analog pin around 330~340. Anyone with some knowledge of the sensor please HELP! thanks
Can you explain me about the frequency of signal using this circuit..why use low pass filter...i really don't understand it..please help..thank you
I'd recommend reading up on electromyography. This will be the best way to start understanding the signals and exactly what this sensor does.
Hey guys, when are you hoping to have these back in stock? I need them for a finaly year university project ASAP!
Check the righthand column of the page, under pricing. We now display a (rough) ETA automatically, if we have any useful info.
Gain potensiometer vaule does not shown in sch ? Is this project open source ?
The schematic doesn't show it, but the user manual notes the Gain value as min: 0.01kOhm, typ: 50kOhm, max: 100kOhm. So I suspect it's a 100kOhm pot ;)
As a marathoner and a geek, there are a lot of interesting things I could do with this device. Just seeing how much energy is generated when running a marathon and record it would be cool. It would be especially interesting when muscles fatigue and theoretically generate less energy at the end of a race.
One problem I see in your good theory, is that motion artifact will probably ruin all your readings... Motion artifact for those who don't know is the movement created by the electrodes/electrode leads when in motion or movement. you will not get accurate readings if any. Unless you decide to use a lot of tape around the cables (and that would still bring out a lot of noise).
Will you have the Replacement Electrodes available separately soon?
Already planning on breaking them? :)
Of course. Always plan on consumables not lasting as long as indicated. Not to mention the hygienic issues of sharing contacts between users.
One of the many reasons why sparkfun is awesome. Where else are you supposed to find stuff like this.
Could this be used/modified to make a homebrew EKG?
An EKG connection is one of low resistance to the human body, close to the heart. A fault current much less than a milliamp can kill, if the frequency and phase are unlucky. No one should modify anything not designed for this purpose for this purpose!
That said, you can make a homebrew EKG, just design from the ground up for safety. You would want battery power and optical isolation for the human-contact circuit's interface to anything wall-powered. There are alternative instrumentation amplifiers in friendly DIP packages. You may also find some packaged circuits prewired for the EKG application.
I recommend trying out an AD620. The spec sheet has a simple example circuit for EKG applications.
I stopped making ECG this year. Too much work and not much gain/profit. This is the product. http://www.machealth.com.au/mms/tabid/660/ProductID/788/Default.aspx
Alternatively take a look at: http://www.stm32circle.com/projects/project.php?id=31
The TL084 opamp has a 3MHz gain-bandwidth product. The 150K resistors in the circuit are, for this topology, about 10X the value for which stability would be assured. Users should check IC2 pins 7 and 8 for signs of ringing or oscillations at about 1MHz. If so at pin 8, add a few pF in parallel with R11. If oscillation is seen at pin 7, try a few pF in parallel with R8 and R9, but check for non-linear oscillation due to interaction with the diodes.
Also, the TL084 only has proper specifications for +/- 5V or greater supplies.
This is super sweet! It'd be even more neat if you could adjust the gain grammatically. ... It would allow the software to 'auto adjust' for bad readings in self fitting applications. I'm still going to have some fun with this thing.