MyoWare EMG Sensor Questions

Hey!

I try to set up a MyoWare to read facial muscle movement. Specifically the jaw muscles. I have some questions concerning this setup, and maybe here is someone who can help or have more experience using the MyoWare sensor.

My setup is the following: - Spark Core, powered by MacBook via USB at the moment - Power supply for the MyoWare via the Spark Core 3V output - AnalogRead of the sensor value via Spark Core - The CableShield is attached to the MyoWare Board - Cables attached to skin I use a serial monitor for debugging / displaying sensor values

The setup works, I got some good readings. Values roughly between 40 and 3000. E.g. when chewing gum, the values change correspondingly.

The following issues are reoccurring though: - After some time the MyoWare is not reacting anymore (values stay roughly the same, although the setup hasn't change) - Turning the sensor on / off doesn't help - The EMG cable is very very sensitive. Movement of the cable leads to high values.

My questions: - Is the MyoWare affected by turning it on off? E.g. restart of the Spark core leads to a loss of power in the MyoWare. Is it possible that this leads to some kind of crash? - Should the gain be increased for facial muscles? - Is there something like a MyoWare memory which can run full, or if a sensor value gets to high? - Whats the best way to power the MyoWare, should I rather use the battery shield? - Are facial muscles even possible to track?

Some help in this area would be much appreciated!

Thanks, Christoph

Are you using an USB power isolator? If not, I recommend not having your Macbook's power cord plugged in. These power cord cause a ton of electrical noise and impacts the quality of the signal being measured.

Which facial muscle are you targeting? Customers have used our sensors to monitor teeth grinding while sleeping and Adafruit has an example project on their site that uses eyebrow muscle to send tweets.

Can you post some pictures of how you've setup/wired the sensor? It's usually easier to spot issues this way.

I'm not using a power isolator. But thanks for the advice, I ordered one and will try it out.

I tried different locations on the head / jaw. I think the best results I've got was with the masseter muscle .

I'll post a picture when the USB-Isolator arrives.

Got the USB-Isolator and a new Particle Photon yesterday.

I could only do a quick test, but it seems as if the power supply via the isolator isn’t sufficient for the Photon… :confused:
It doesn’t restart after a flash and also the serial monitor stops after a few seconds. When connected directly to the MacBook it worked fine.

I’ll try another USB-cable this evening and post a picture of the setup.

The USB-Isolator doesn't work, the power consumption of the Photon is to high... but I got much better results now with the Photon itself. Don't know exactly the issue with the Spark Core, but I have it running on the Photon now for over an hour without problems.

I got a little further with my project. The Myoware seems to run stable now with the Photon.

Do you have any information on external static pick up?

I programmed the setup in my living room. The sensor values (noise) from the myoware were between 30-90. As soon as I switched to my bedroom and put the hardware on my night desk the noise values went up to over 2000. There is a power strip under my night desk. I believe it to be the cause. Is this possible. Anything I can do about it?

Make a Faraday cage?

Have you tried braiding the electrode cables? They act as antenna and are really good at picking up electronic noise (one reason we went to the embedded electrode sensor design). However, if the noise is common to both inputs then the MyoWare's circuitry will remove it.

Hi,

This topic is really interesting. I recently bought the complete EMG kit. For the first tries, I used the Myoware with the electrodes directly plugged on. It was working incredibly well!

Recently, for convenience, I tried to use the electrode cables. The filtered signal was excessively responsive going from zero to over without any progressiveness. When I looked at the raw output, instead of having a king of "white noise signal", I had a succession of low freq. RC charging/discharging-like responses.

I suspected that cables were acting as antennas but I don't see what kind of electrical hum can produce this kind of response.

Is there any way to improve the signal via cable other than adding a physical EMF-shield around the cables?

Thanks for your interest.

Regards

Dudule

See my comment directly above yours.

Are there any other solutions rather than just braiding the cables. I have the same setup the entire time and sometimes the sensors work fine and other times I can't get a single reliable reading. In those cases even touching the cable causes the output to rise?

Hi all, Im also using MyoWare as an input signal control in arduino. However, when the digital output is connected to a relay module, there are some fluctuations. My codes are as below. Any idea where the fluctuation com from?

void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
pinMode(30,OUTPUT);
}

void loop() {
// read the input on analog pin 0 and pin 1:
int sensorValue = analogRead(A3);
int var = analogRead(A1);

// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 3V):
float voltage = sensorValue* (3.0 / 1023.0);
float threshold = var* (7 /1023.0);
// print out the value you read:
Serial.print(voltage);
Serial.print(" ");
Serial.println(threshold);

if (voltage > threshold)
{
digitalWrite(30,1);
delay(100);
}
else
{
digitalWrite(30,0);
delay(100);
}

}

emg error.JPG

flujai: Hi all, Im also using MyoWare as an input signal control in arduino. However, when the digital output is connected to a relay module, there are some fluctuations. My codes are as below. Any idea where the fluctuation com from?

void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); pinMode(30,OUTPUT); }

void loop() { // read the input on analog pin 0 and pin 1: int sensorValue = analogRead(A3); int var = analogRead(A1);

// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 3V): float voltage = sensorValue* (3.0 / 1023.0); float threshold = var* (7 /1023.0); // print out the value you read: Serial.print(voltage); Serial.print(" "); Serial.println(threshold);

if (voltage > threshold) { digitalWrite(30,1); delay(100); } else { digitalWrite(30,0); delay(100); }

}

please make a separate post as this is a separate issue than the OP's issue

eoinclancy1: Are there any other solutions rather than just braiding the cables. I have the same setup the entire time and sometimes the sensors work fine and other times I can't get a single reliable reading. In those cases even touching the cable causes the output to rise?

Most of the time this is caused by how the electrodes were setup. EMG sensors are very sensitive to electrode placement, skin prep, and skin contact. I highly recommend reading through this great overview of how to properly setup EMG sensors especially the sections on skin prep and electrode placement.

Hello AdvencerTechnologies.

I have read the suggested EMG guide, but there is not a solution to the low quality EMG cable. Please read it.

Could you give us a solution to this problem?

Thank you

Dear Advancer Technologies, the question about the quality of the Myoware sensor cable and the artifact created when the cable is softly moved has been moved to the following page:

Could you take part to that topic?

Thank you.

Hi, for a project i need the emg sensor to read the value from forearm to run servo motors. I attached the electrodes at my forearm according to most of the electrodes placement described over internet and connect the electrodes cable to my sensor which connects its signal out pin to arduino uno's analog input pin. Further i used the analog read voltage program from arduino example sketch. After uploading the code it was supposed to give voltage output between 0-5v when muscle are flexed but it keeps fluctuating around 3 volts regardless of flexing or relaxing muscle. Infact i was getting same result even when the sensor was removed. I dont know what is wrong. It seems that sensor is not responding. Can anyone help me to identify the problem and solve it.

I am having the same exact issue with the GSR sensor, often getting huge deflections when the sensor is not even being used, so the circuit should be open and no change should be seen. Any help would be greatly appreciated.