Assembly and Testing of the SMD-EMG Amplifier

I finally got around to assembling and testing the EMG amplifier circuit boards. After fixing a design mistake with the board, I was able to get solid readings out of all four boards. The design mistake was a fairly obscure one, but provided me with a valuable learning experience.

Schematic and Layout

For the amplifier components, I used a MAX4194 instrumentation amplifier and MAX44248 dual op-amp. A 50kΩ trimmer resistor (R1) is used to control the gain of the instrumentation amplifier. C1 is used as a DC blocking capacitor to prevent any DC offset from the instrumentation amplifier output reaching the second amplifier stage. One of the MAX44248 op-amps is configured as an inverting amplifier with -100x gain (-R5/R4) while the other is used to create a virtual ground at +2.5VDC for biasing the EMG signal to interface with a microcontroller.

A 2.5mm stereo jack was used to provide a compact connection for the electrodes. Lastly, I included a mini power switch and a header for +V, GND and SIG_OUT connections.

emg_pcb_schematic
EMG amplifier schematic in EagleCAD
emg_pcb_layout
Layout of EMG amplifier in EagleCAD

I Made an Oopsie…

When I first assembled and tested the circuit, I couldn’t get any signal at the output. I used my multimeter to verify that all connections were at the expected voltages. Without getting into too much detail, I had accidentally connected the reference electrode to GND rather than the REF pin of the instrumentation amplifier. Since I was using single supply, these two voltages are not the same thing (REF is connected to +2.5VDC). However, I had the reference electrode connected to GND in the breadboarded circuit without an issue, so I am still a bit perplexed as to why that worked in the first place.

Consequently, I had to do a little “mechanical modification” to the boards by drilling out via that connected the reference electrode to GND and redirected it to +2.5VDC using some enameled wire. This resulted in the mess you see below. Nonetheless, I was relieved to finally have a working circuit!

img_0529

Testing the Circuit

I used an Arduino Uno to read the analog voltage coming from the EMG amplifier PCB. I recently discovered the Arduino IDE has a handy plotter which comes in handy for quick and dirty visualization of signals. Below is the code I used for data acquisition. The output of the EMG amplifier was connected to analog pin 1.

int sensorPin = 1;
float sensorValue = 0;
float EMA_a = 0.05;
float EMA_S = 0; 
 
void setup() {
 Serial.begin(115200);
 EMA_S = 0;
}
 
void loop() {
 // Read sensor value
 sensorValue = analogRead(sensorPin);
 // Remove bias
 sensorValue = sensorValue - 511.5;
 // Take absolute value to make signal positive, then normalize
 sensorValue = 100*2.0*abs(sensorValue)/1023.0;

 // Filter signal
 EMA_S = (EMA_a*sensorValue) + ((1-EMA_a)*EMA_S);

 Serial.print(EMA_S);
 Serial.print(' ');
 Serial.println(sensorValue); 
 delay(10);
}

Below is a screen capture of the plotter while I flexed, relaxed and flexed my bicep.

emg_pcb_output

Now I just need to think of something cool to control! With four circuit boards, that allows controlling four degrees of freedom… the possibilities are endless!

CAD Files

Advertisements

2 thoughts on “Assembly and Testing of the SMD-EMG Amplifier

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s