This project uses an EMG (Electromyography) sensor setup to detect muscle activity and classify hand gestures using machine learning. The hardware is based on the Upside Down Labs BioAmp ecosystem connected to an Arduino.
- Arduino R3
- Upside Down Labs Muscle BioAmp Shield buy
- BioAmp EXG Pill buy
- EMG electrodes buy
- Jumper wires buy
- USB Type A to B cable
- Computer running Python
Mostly same design, use this as the tutorial https://www.youtube.com/watch?v=zJ_Ei5tvHiQ
Align the pins of the Muscle BioAmp Shield with the Arduino headers and carefully mount it onto the Arduino.
Use jumper wires to connect the BioAmp EXG Pill to the shield.
| BioAmp Shield | BioAmp EXG Pill |
|---|---|
| VCC | VCC |
| GND | GND |
| CH1 / OUT | OUT |
Make sure all connections are secure and correctly aligned.
Place the EMG electrodes according to the following diagram:
- REF electrode acts as the reference signal
- CH VCC electrode connects to the positive muscle signal
- CH GND electrode connects to the negative muscle signal
Proper electrode placement is extremely important. Incorrect placement can result in noisy signals or complete detection failure.
- Clean the skin before attaching electrodes
- Place electrodes firmly on the muscle
- Avoid loose connections
- Keep wires stable to reduce motion noise
- Position the reference electrode on a less active area
Connect the Arduino to your computer using the USB cable. The board will power both the shield and the EXG module.
Before running the gesture detection model:
- Upload the signal visualization script
- Open the serial plotter or Python visualizer
- Flex your muscle and confirm that the EMG signal changes
If the signal looks flat or extremely noisy:
- Recheck electrode placement
- Verify jumper connections
- Ensure the electrodes have good skin contact


