Introduction: Simple Dry Electrode EMG for Arduino

Electromyography is a technique used for recording the electrical activity of a muscle. In order for a muscle to move, it must receive an electrical signal from the brain via a motor neuron, with the frequency of nerve impulses controlling the force of contraction. This generates a potential difference on the surface of the skin (in the magnitude of 30micro - 50millivolts)* which the EMG circuit can pick up and amplify to around 1-2V, allowing it to be easily read on an analog pin of a microcontroller such as Arduino.

The simplest EMG circuit has 3 electrodes and can measure the electrical activity of one muscle. 2 electrodes are placed next to each other in the middle of the muscle, approx. 3-8cm apart, and the 3rd one is grounded and placed on a bone or held in hand and acts as a reference electrode. Typically, EMG electrodes are 'wet', consisting of a conductive gel sticker that is stuck on the muscle. and ensures a constant connection. Unfortunately, these electrodes can be a bit expensive, difficult to get, and usually not reusable. 'Dry' electrodes do not contain any gel and although they can produce more noisy signals and sometimes disconnect, they do are much more convenient and can be made from just a piece of metal and wire.

Materials Needed:

- At least 2-3 meters of wire, for electrodes and circuitry.

-Metal sheet (can use a drink can with the plastic coating removed)

-1x LM324n general use opamp IC

-1x 200 - 220Ω resistor

-3x 10kΩ resistors

-2x 100kΩ resistors

-2x 1MΩ resistors



-Microcontroller (Arduino)

-Tape (for sticking on the electrodes


-Soldering iron


-Oscilloscope (does not need to be big and expensive


Step 1: Making the Electrodes

1 - Cut 3 60-100cm pieces of wire and strip ends.

2 - Cut out 3 small pieces of metal sheet and solder one to the end of each wire.

3 - Optional: embed/stick 2 electrodes in a piece of plastic for more firm design.

Step 2: The Circuit

The circuit includes consists of a differential amplifier, to acquire and pre-amplify the signals, followed by a regular opamp, to further amplify the signals.

It also includes a potential divider (100k resistors at the bottom) to create reference "ground" for the opamps and electrodes between the +5V and 0V GND pins of an Arduino which are now used as the + and - voltages of the IC. This eliminates the need for a negative voltage rail and the extra circuitry/batteries associated with it, allowing the circuit to be powered directly from the Arduino voltage pins. It also eliminates any risk of damage to the microcontroller caused by accidentally feeding a negative voltage into its analog pins.

The differential amplifier amplifies the difference between two voltages. The two inputs are used for the 2 electrodes that are placed across the muscle. It includes high value resistors to ensure that the input impedance is also high and matches the skin impedance, allowing it to pick up signals from the muscles. It has a gain of 100.

Following on is a simple non-inverting amplifier with a gain of about 46. G = 1+10000/220 = 46. The output of this amplifier can be connected directly to an analog pin.

Filters: To simplify this design, no filters were included. This means that no capacitors are needed to build the circuit. This may make it susceptible to noise, especially from 50/60Hz mains signals. However, upon testing, I have found that such a circuit can function reasonably well and any external interference should not significantly affect the circuit's performance.

Warning: - reversing opamp polarity can fry the IC

Step 3: Attaching the Electrodes and Connecting Everything Up

Before placing the electrodes, wet the skin and wipe to clean and ensure better conductivity. Slightly moist skin will yield better results, as such any mild sweating under the electrode will act in your favor.

Place the 2 input electrodes on the muscle and the reference electrode on a nearby bone or simply hold it in your hand. Not all positions will yield good results; it may take some experimentation to determine the ideal positioning.

There should be 6 connections made to the circuit: 3 inputs, 2 power, and 1 output:

-2 input electrodes connected to the + and - input pins of the differential amplifier and the reference electrode to the reference "ground" voltage between the 2 resistors of the potential divider.

- +5V and GND microcontroller pins should be connected across the potential divider and the output of the circuit to an analog pin.

(N.B. the pen markings in the photos are not necessary)

Step 4: Enjoy!